public static ShortcutKey.ShortcutKey ToShortcutKey(this ModkeySetting modkey) { ShortcutKey.ShortcutKey value; if (!shortcutkeysCache.TryGetValue(modkey, out value)) { value = new ShortcutKey.ShortcutKey(Key.C, modkey.ToKeys()); shortcutkeysCache.Add(modkey, value); } return(value); }
/// <summary> /// <see cref="ModkeySetting"/>のFlagを逆転させます。 /// </summary> /// <param name="key">逆転させるFlag</param> /// <returns>逆転させた結果の<see cref="System.Enum.HasFlag"/></returns> public bool ToggleModkeySetting(ModkeySetting key) { if (this.ModkeySetting.HasFlag(key)) { this.ModkeySetting -= key; return(false); } else { this.ModkeySetting += (int)key; return(true); } }
/// <summary> /// <see cref="ModkeySetting"/>のFlagを逆転させます。 /// </summary> /// <param name="key">逆転させるFlag</param> /// <returns>逆転させた結果の<see cref="System.Enum.HasFlag"/></returns> public bool ToggleModkeySetting(ModkeySetting key) { if (this.ModkeySetting.HasFlag(key)) { this.ModkeySetting -= key; return false; } else { this.ModkeySetting += (int)key; return true; } }
public static Key[] ToKeys(this ModkeySetting modkeySetting) { var list = new List <Key> { Key.LWin }; if (modkeySetting.HasFlag(ModkeySetting.Shift)) { list.Add(Key.LeftShift); } if (modkeySetting.HasFlag(ModkeySetting.Ctrl)) { list.Add(Key.LeftCtrl); } if (modkeySetting.HasFlag(ModkeySetting.Alt)) { list.Add(Key.LeftAlt); } return(list.ToArray()); }