public void MultiKeyGesture_Matches(bool expected, int secMaxDelay, int millisecondsTimeout) { //NOTE: do not test modifiers, because they are taken from Keyboard.Modifiers static property. var g = new MultiKeyGesture(new Gesture[] { new Gesture(Key.T), new Gesture(Key.E), new Gesture(Key.S), new Gesture(Key.T), }, TimeSpan.FromSeconds(secMaxDelay)); var e1 = BuildKeyEventArgs(Key.T); var e2 = BuildKeyEventArgs(Key.E); var e3 = BuildKeyEventArgs(Key.S); var e4 = BuildKeyEventArgs(Key.T); var r1 = g.Matches(null, e1); var r2 = g.Matches(null, e2); var r3 = g.Matches(null, e3); Thread.Sleep(millisecondsTimeout); var r4 = g.Matches(null, e4); Assert.IsTrue(e1.Handled); Assert.IsFalse(r1); Assert.IsTrue(e2.Handled); Assert.IsFalse(r2); Assert.IsTrue(e3.Handled); Assert.IsFalse(r3); Assert.AreNotEqual(expected, e4.Handled); Assert.AreEqual(expected, r4); }
public void MultiKeyGesture_constructor_ArgumentNullException_onlyInvalidGestures() { var l = new List <Gesture>() { new Gesture(Key.None, ModifierKeys.None) }; var g = new MultiKeyGesture(l); }
protected override void Configure() { _container.Instance <SimpleContainer>(_container); _container.Singleton <IWindowManager, WindowManager>(key: nameof(WindowManager)) .Singleton <IEventAggregator, EventAggregator>(key: nameof(EventAggregator)) .Singleton <IDialogServiceEx, DialogService>(key: nameof(DialogService)) .Singleton <ILogService, LogService>(key: nameof(LogService)); _container.Singleton <ShellViewModel>(key: nameof(ShellViewModel)) .PerRequest <DragDropViewModel>(key: nameof(DragDropViewModel)) .Singleton <MainViewModel>(key: nameof(MainViewModel)) .Singleton <SettingViewModel>(key: nameof(SettingViewModel)) .Singleton <ConductorViewModel>(key: nameof(ConductorViewModel)) .Singleton <SampleViewModel>(key: nameof(SampleViewModel)) .Singleton <WinMsgViewModel>(key: nameof(WinMsgViewModel)); // Key Bindings Convertion /*********************************************************************************************/ Func <DependencyObject, string, System.Windows.Interactivity.TriggerBase> defaultCreateTrigger = Parser.CreateTrigger; Parser.CreateTrigger = (target, triggerText) => { if (triggerText == null) { return(defaultCreateTrigger(target, null)); } string triggerDetail = triggerText.Replace("[", string.Empty).Replace("]", string.Empty); string[] splits = triggerDetail.Split((char[])null, StringSplitOptions.RemoveEmptyEntries); switch (splits[0]) { case "Key": Key key = (Key)Enum.Parse(typeof(Key), splits[1], true); return(new KeyTrigger { Key = key }); case "Gesture": MultiKeyGesture mkg = (MultiKeyGesture) new MultiKeyGestureConverter().ConvertFrom(splits[1]); return(new KeyTrigger { Modifiers = mkg.KeySequences[0].Modifiers, Key = mkg.KeySequences[0].Keys[0] }); default: break; } return(defaultCreateTrigger(target, triggerText)); }; MessageBinder.SpecialValues.Add("$sender", ctx => ctx.Source); /*********************************************************************************************/ }
public void CanConvertToStringTest() { var s = new MultiKeyGestureSerializer(); var g = new MultiKeyGesture(new[] { new Gesture(Key.None, ModifierKeys.Control), new Gesture(Key.T), new Gesture(Key.E), new Gesture(Key.S), new Gesture(Key.T), }); Assert.IsTrue(s.CanConvertToString(g, null)); }
public void ConvertToStringTest() { var s = new MultiKeyGestureSerializer(); var g = new MultiKeyGesture(new[] { new Gesture(Key.None, ModifierKeys.Control), new Gesture(Key.T), new Gesture(Key.E), new Gesture(Key.S), new Gesture(Key.T), }); var res = s.ConvertToString(g, null); Assert.AreEqual("Control T E S T".ToLowerInvariant(), res.ToLowerInvariant()); }
private bool ValidateBasicKeyInput(Key key) { if (key == Key.None) { return(false); } if (!IsValidGestureKey(key)) { return(false); } if (MultiKeyGesture.IsModifierKey(key)) { return(false); } return(true); }
private static void InitializeMenus(ObjectModelRoot root) { var menus = (ISEMenuItemCollection)root.CurrentPowerShellTab.AddOnsMenu.Submenus; //Add MenuItem(FormatDocument) { const string name = "Format Document"; var gesture = new MultiKeyGesture(new[] { new KeyGesture(Key.K, ModifierKeys.Control), new KeyGesture(Key.D, ModifierKeys.Control), }, "Ctrl+K, Ctrl+D"); var scriptBlock = ScriptBlock.Create("Format-CurrentDocument -Range Document"); var item = menus.SingleOrDefault(p => p.DisplayName == name); if (item != null) { menus.Remove(item); } menus.Add(name, scriptBlock, gesture); } //typeof(PowerShellTab).GetProperty("StatusText").SetValue(root.CurrentPowerShellTab, "TestTest"); //TODO:Support RangeFormatter //Add MenuItem(FormatDocument) { const string name = "Format Selection"; var gesture = new MultiKeyGesture(new[] { new KeyGesture(Key.K, ModifierKeys.Control), new KeyGesture(Key.F, ModifierKeys.Control), }, "Ctrl+K, Ctrl+F"); var scriptBlock = ScriptBlock.Create("Format-CurrentDocument -Range Selection"); var item = menus.SingleOrDefault(p => p.DisplayName == name); if (item != null) { menus.Remove(item); } menus.Add(name, scriptBlock, gesture); } }
public void ShouldConvertGestureToString() { MultiKeyGesture gesture = new MultiKeyGesture(new[] { Key.A, Key.B, Key.C }, ModifierKeys.Control, "My Display String"); MultiKeyGestureConverter converter = (MultiKeyGestureConverter)TypeDescriptor.GetConverter(gesture); Assert.IsTrue(converter.CanConvertTo(typeof(string))); string s = converter.ConvertTo(gesture, typeof(string)) as string; Assert.IsNotNull(s); Assert.AreEqual("Ctrl+A, Ctrl+B, Ctrl+C:My Display String", s); gesture = new MultiKeyGesture(new[] { Key.A, Key.B, Key.C }, ModifierKeys.Control, ""); s = converter.ConvertTo(gesture, typeof(string)) as string; Assert.IsNotNull(s); Assert.AreEqual("Ctrl+A, Ctrl+B, Ctrl+C", s); gesture = new MultiKeyGesture(new[] { Key.A, Key.B, Key.C }, ModifierKeys.None, ""); s = converter.ConvertTo(gesture, typeof(string)) as string; Assert.IsNotNull(s); Assert.AreEqual("A, B, C", s); gesture = new MultiKeyGesture(new[] { Key.A }, ModifierKeys.None, ""); s = converter.ConvertTo(gesture, typeof(string)) as string; Assert.IsNotNull(s); Assert.AreEqual("A", s); gesture = new MultiKeyGesture(new[] { Key.None }, ModifierKeys.None, ""); s = converter.ConvertTo(gesture, typeof(string)) as string; Assert.IsNotNull(s); Assert.AreEqual("", s); gesture = new MultiKeyGesture(new[] { Key.A, Key.B, Key.C }, ModifierKeys.Control | ModifierKeys.Shift, ""); s = converter.ConvertTo(gesture, typeof(string)) as string; Assert.IsNotNull(s); Assert.AreEqual("Ctrl+Shift+A, Ctrl+Shift+B, Ctrl+Shift+C", s); }
public CommandGestureScopeMapping(GestureScope scope, CommandDefinition command, MultiKeyGesture gesture) : this(command, new GestureScopeMapping(scope, gesture)) { }
public void ShouldConvertGestureFromString() { MultiKeyGestureConverter converter = (MultiKeyGestureConverter)TypeDescriptor.GetConverter(typeof(MultiKeyGesture)); string s = ""; Assert.IsTrue(converter.CanConvertFrom(typeof(string))); MultiKeyGesture gesture = converter.ConvertFrom(s) as MultiKeyGesture; Assert.IsNotNull(gesture); Assert.IsNotNull(gesture.Keys); Assert.AreEqual(ModifierKeys.None, gesture.Modifiers); Assert.AreEqual(Key.None, gesture.Key); Assert.AreEqual(1, gesture.Keys.Count); Assert.AreEqual(Key.None, gesture.Keys[0]); Assert.AreEqual("", gesture.DisplayString); s = "A"; gesture = converter.ConvertFrom(s) as MultiKeyGesture; Assert.IsNotNull(gesture); Assert.IsNotNull(gesture.Keys); Assert.AreEqual(ModifierKeys.None, gesture.Modifiers); Assert.AreEqual(Key.None, gesture.Key); Assert.AreEqual(1, gesture.Keys.Count); Assert.AreEqual(Key.A, gesture.Keys[0]); Assert.AreEqual("A", gesture.DisplayString); s = "A,B,C"; gesture = converter.ConvertFrom(s) as MultiKeyGesture; Assert.IsNotNull(gesture); Assert.IsNotNull(gesture.Keys); Assert.AreEqual(ModifierKeys.None, gesture.Modifiers); Assert.AreEqual(Key.None, gesture.Key); Assert.AreEqual(3, gesture.Keys.Count); Assert.AreEqual(Key.A, gesture.Keys[0]); Assert.AreEqual(Key.B, gesture.Keys[1]); Assert.AreEqual(Key.C, gesture.Keys[2]); Assert.AreEqual("A, B, C", gesture.DisplayString); s = "Ctrl+A, Ctrl+B,Ctrl+C"; gesture = converter.ConvertFrom(s) as MultiKeyGesture; Assert.IsNotNull(gesture); Assert.IsNotNull(gesture.Keys); Assert.AreEqual(ModifierKeys.Control, gesture.Modifiers); Assert.AreEqual(Key.None, gesture.Key); Assert.AreEqual(3, gesture.Keys.Count); Assert.AreEqual(Key.A, gesture.Keys[0]); Assert.AreEqual(Key.B, gesture.Keys[1]); Assert.AreEqual(Key.C, gesture.Keys[2]); Assert.AreEqual("Ctrl+A, Ctrl+B, Ctrl+C", gesture.DisplayString); s = "Ctrl+A, Ctrl+B, Ctrl+C:My Display String"; gesture = converter.ConvertFrom(s) as MultiKeyGesture; Assert.IsNotNull(gesture); Assert.IsNotNull(gesture.Keys); Assert.AreEqual(ModifierKeys.Control, gesture.Modifiers); Assert.AreEqual(Key.None, gesture.Key); Assert.AreEqual(3, gesture.Keys.Count); Assert.AreEqual(Key.A, gesture.Keys[0]); Assert.AreEqual(Key.B, gesture.Keys[1]); Assert.AreEqual(Key.C, gesture.Keys[2]); Assert.AreEqual("My Display String", gesture.DisplayString); s = "Ctrl+Shift+A, Ctrl+Shift+B, Ctrl+Shift+C:My Display String"; gesture = converter.ConvertFrom(s) as MultiKeyGesture; Assert.IsNotNull(gesture); Assert.IsNotNull(gesture.Keys); Assert.AreEqual(ModifierKeys.Control | ModifierKeys.Shift, gesture.Modifiers); Assert.AreEqual(Key.None, gesture.Key); Assert.AreEqual(3, gesture.Keys.Count); Assert.AreEqual(Key.A, gesture.Keys[0]); Assert.AreEqual(Key.B, gesture.Keys[1]); Assert.AreEqual(Key.C, gesture.Keys[2]); Assert.AreEqual("My Display String", gesture.DisplayString); }
public void LoadFromTest_wasNotEmpty() { var gestureInitial = new KeyGesture(Key.T, ModifierKeys.Control); var gestureAfter = new MultiKeyGesture(new[] { new Gesture(Key.None, ModifierKeys.Control), new Gesture(Key.T) }); var m = new Manager(); var key = "Test"; var c = new Configs() { new Config() { Name = "Test.Help", Gesture = new KeyGesture(Key.F1) }, new Config() { Name = "Test.Fullscreen", Gesture = new KeyGesture(Key.F11) }, new Config() { Name = key, Gesture = gestureInitial } }; m.LoadFrom(c, ManagerUpdateMode.Full); int pc = 0; m.PropertyChanged += (sender, args) => { if (args.PropertyName == "Item[]") { ++pc; } }; var c1 = new Configs() { new Config() { Name = "Test.NotExisting", Gesture = new KeyGesture(Key.F12) }, new Config() { Name = key, Gesture = gestureAfter } }; m.LoadFrom(c1, ManagerUpdateMode.OnlyUpdateExisting); Assert.IsNull(m["Test.NotExisting"]); Assert.AreEqual(3, m.Configs.Count); Assert.AreEqual(1, pc); Assert.AreEqual(m[key], gestureAfter); foreach (var config in m.Configs) { Assert.IsTrue(config.IsLocked); } }
public void MultiKeyGesture_constructor_ArgumentNullException_empty() { var g = new MultiKeyGesture(new List <Gesture>()); }
public void MultiKeyGesture_constructor_ArgumentNullException_null() { var g = new MultiKeyGesture(null); }