forked from Mirror/Ryujinx
76671d63d4
* Restructure `Ryujinx.Ava` * Stylistic consistency * Update Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/UserSelector.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Windows/SettingsWindow.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Windows/SettingsWindow.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Fix redundancies * Remove redunancies * Add back elses Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
52 lines
No EOL
1.7 KiB
C#
52 lines
No EOL
1.7 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Input;
|
|
using System;
|
|
using System.Windows.Input;
|
|
|
|
namespace Ryujinx.Ava.UI.Helpers
|
|
{
|
|
public class HotKeyControl : ContentControl, ICommandSource
|
|
{
|
|
public static readonly StyledProperty<object> CommandParameterProperty =
|
|
AvaloniaProperty.Register<HotKeyControl, object>(nameof(CommandParameter));
|
|
|
|
public static readonly DirectProperty<HotKeyControl, ICommand> CommandProperty =
|
|
AvaloniaProperty.RegisterDirect<HotKeyControl, ICommand>(nameof(Command),
|
|
control => control.Command, (control, command) => control.Command = command, enableDataValidation: true);
|
|
|
|
public static readonly StyledProperty<KeyGesture> HotKeyProperty = HotKeyManager.HotKeyProperty.AddOwner<Button>();
|
|
|
|
private ICommand _command;
|
|
private bool _commandCanExecute;
|
|
|
|
public ICommand Command
|
|
{
|
|
get { return _command; }
|
|
set { SetAndRaise(CommandProperty, ref _command, value); }
|
|
}
|
|
|
|
public KeyGesture HotKey
|
|
{
|
|
get { return GetValue(HotKeyProperty); }
|
|
set { SetValue(HotKeyProperty, value); }
|
|
}
|
|
|
|
public object CommandParameter
|
|
{
|
|
get { return GetValue(CommandParameterProperty); }
|
|
set { SetValue(CommandParameterProperty, value); }
|
|
}
|
|
|
|
public void CanExecuteChanged(object sender, EventArgs e)
|
|
{
|
|
var canExecute = Command == null || Command.CanExecute(CommandParameter);
|
|
|
|
if (canExecute != _commandCanExecute)
|
|
{
|
|
_commandCanExecute = canExecute;
|
|
UpdateIsEffectivelyEnabled();
|
|
}
|
|
}
|
|
}
|
|
} |