public void InitializeButtonState(Mubox.Configuration.KeySettingCollection keySettings, Predicate <Mubox.Configuration.KeySetting> filterCallback, Action <Mubox.Configuration.KeySetting> enableCallback, Action <Mubox.Configuration.KeySetting> disableCallback) { this.KeySettings = keySettings; this.FilterCallback = filterCallback; this.EnableCallback = enableCallback; this.DisableCallback = disableCallback; ProcessFrameworkElementTree(this, (Action <FrameworkElement>) delegate(FrameworkElement frameworkElement) { try { System.Windows.Controls.Primitives.ToggleButton toggleButton = frameworkElement as System.Windows.Controls.Primitives.ToggleButton; if (toggleButton != null) { Mubox.Configuration.KeySetting keySetting; toggleButton.IsChecked = KeySettings.TryGetKeySetting((Win32.VK)Enum.Parse(typeof(Win32.VK), toggleButton.Tag as string, true), out keySetting) && FilterCallback(keySetting); } } catch (Exception ex) { Debug.WriteLine(ex.Message); Debug.WriteLine(ex.StackTrace); } }); }
private void ToggleButton_Unchecked(object sender, RoutedEventArgs e) { try { WinAPI.VK vk = (WinAPI.VK)Enum.Parse(typeof(WinAPI.VK), (e.OriginalSource as System.Windows.Controls.Primitives.ToggleButton).Tag as string, true); Mubox.Configuration.KeySetting keySetting; if (KeySettings.TryGetKeySetting(vk, out keySetting)) { this.DisableCallback(keySetting); } } catch (Exception ex) { ex.Log(); } }
private void ToggleButton_Checked(object sender, RoutedEventArgs e) { try { Win32.VK vk = (Win32.VK)Enum.Parse(typeof(Win32.VK), (e.OriginalSource as System.Windows.Controls.Primitives.ToggleButton).Tag as string, true); Mubox.Configuration.KeySetting keySetting; if (!KeySettings.TryGetKeySetting(vk, out keySetting)) { keySetting = KeySettings.CreateNew(vk); } this.EnableCallback(keySetting); } catch (Exception ex) { Debug.WriteLine(ex.Message); Debug.WriteLine(ex.StackTrace); } }