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; } } }