1
0
Fork 0
mirror of https://github.com/hawkeye-stan/msfs-popout-panel-manager.git synced 2024-10-16 14:10:45 +00:00
msfs-popout-panel-manager/MainApp/ViewModel/PreferenceDrawerViewModel.cs
2024-03-03 00:02:21 -05:00

37 lines
1.5 KiB
C#

using MSFSPopoutPanelManager.Orchestration;
using Prism.Commands;
using System.Windows.Input;
namespace MSFSPopoutPanelManager.MainApp.ViewModel
{
public class PreferenceDrawerViewModel : BaseViewModel
{
private readonly KeyboardOrchestrator _keyboardOrchestrator;
public ICommand DetectStartPopOutKeyBindingCommand { get; }
public bool IsDetectingKeystroke { get; set; }
public PreferenceDrawerViewModel(SharedStorage sharedStorage, KeyboardOrchestrator keyboardOrchestrator) : base(sharedStorage)
{
_keyboardOrchestrator = keyboardOrchestrator;
DetectStartPopOutKeyBindingCommand = new DelegateCommand(OnDetectStartPopOutKeyBinding);
}
private void KeyboardOrchestrator_OnKeystrokeDetected(object sender, DetectKeystrokeEventArg e)
{
IsDetectingKeystroke = false;
AppSettingData.ApplicationSetting.KeyboardShortcutSetting.PopOutKeyboardBinding = e.KeyBinding;
_keyboardOrchestrator.OnKeystrokeDetected -= KeyboardOrchestrator_OnKeystrokeDetected;
_keyboardOrchestrator.EndGlobalKeyboardHook(KeyboardHookClientType.PreferenceConfigurationDetection);
}
private void OnDetectStartPopOutKeyBinding()
{
IsDetectingKeystroke = true;
_keyboardOrchestrator.OnKeystrokeDetected += KeyboardOrchestrator_OnKeystrokeDetected;
_keyboardOrchestrator.StartGlobalKeyboardHook(KeyboardHookClientType.PreferenceConfigurationDetection);
}
}
}