Files
C4IT-F4SD-Client/FasdDesktopUi/Basics/UserControls/FooterButton.xaml.cs
Meik 0b52999b1d feat: expand cockpit integrations and support workflows
Add Phoenix remote desktop, action connector, documentation engine, and gamification support. Refactor support-case processing and search/action UI, and update installer assets and dependencies.
2026-07-13 11:16:53 +02:00

85 lines
2.9 KiB
C#

using C4IT.MultiLanguage;
using F4SD_AdaptableIcon;
using FasdDesktopUi.Basics.Converter;
using FasdDesktopUi.Basics.Helper;
using FasdDesktopUi.Basics.UiActions;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace FasdDesktopUi.Basics.UserControls
{
public partial class FooterButton : UserControl
{
public string LabelText
{
get { return (string)GetValue(LabelTextProperty); }
set { SetValue(LabelTextProperty, value); }
}
public static readonly DependencyProperty LabelTextProperty =
DependencyProperty.Register(nameof(LabelText), typeof(string), typeof(FooterButton), new PropertyMetadata(string.Empty));
public cUiQuickAction QuickAction
{
get { return (cUiQuickAction)GetValue(QuickActionProperty); }
set { SetValue(QuickActionProperty, value); }
}
public static readonly DependencyProperty QuickActionProperty =
DependencyProperty.Register(nameof(QuickAction), typeof(cUiQuickAction), typeof(FooterButton), new PropertyMetadata(null, new PropertyChangedCallback(HandleQuickActionChanged)));
private static void HandleQuickActionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (!(d is FooterButton button))
return;
button.UpdateButtonProperties();
}
private void UpdateButtonProperties()
{
MainGrid.Visibility = QuickAction is null ? Visibility.Collapsed : Visibility.Visible;
string tooltip = QuickAction != null ? null : cMultiLanguageSupport.GetItem("RemoteConnection.Button.Disabled");
SetEnableButton(QuickAction != null && QuickAction.DisplayType == Enums.enumActionDisplayType.enabled, tooltip);
IconData iconData = IconDataConverter.Convert(QuickAction.QuickActionConfig.Icon);
IconHelper.SetIconValue(ButtonIcon, iconData);
}
public FooterButton()
{
InitializeComponent();
}
private async void Button_Click(object sender, InputEventArgs e)
{
if (QuickAction is null)
return;
SetEnableButton(false);
cUiActionBase.RaiseEvent(QuickAction, this, this);
SetEnableButton(true);
}
internal void SetEnableButton(bool isEnabled, string tooltip = null)
{
if (isEnabled)
{
MainBorder.SetResourceReference(StyleProperty, "Menu.MainCategory");
MainBorder.ClearValue(OpacityProperty);
}
else
{
MainBorder.SetResourceReference(StyleProperty, "Menu.MainCategory.NoHover");
MainBorder.Opacity = 0.5;
}
MainBorder.ToolTip = tooltip;
}
}
}