public IKeyboardCommandTrigger OnEvent(IHotkey hotkey, KeyEvent keyEvent, string stateTree = KeyStateTrees.Default) { if (keyEvent == KeyEvent.Hit) { return(OnHit(hotkey, stateTree)); } var sequence = hotkey switch { ISequenceUnit sequenceUnit => new List <ICombination>() { sequenceUnit.ToCombination().ToCombination() }, ISequence seq => seq.ToList(), _ => throw new Exception("IHotkey should be ISequence or ISequenceUnit") }; var trigger = new KeyboardCommandTrigger(); var metaKey = Add(sequence, keyEvent, new KeyCommand(trigger.OnExecute) { CanExecute = trigger.OnCanExecute }, stateTree) as MetaKey; trigger._metaKey = metaKey; return(trigger); }
public IKeyboardCommandTrigger OnHit(IHotkey hotkey, string stateTree = KeyStateTrees.Default) { var trigger = new KeyboardCommandTrigger(); var token = Hit(hotkey, trigger.OnExecute, trigger.OnCanExecute, "", stateTree) as KeyCommandTokens; trigger._metaKey = token?.metaKey; return(trigger); }
public IKeyboardCommandTrigger Hit(ISequenceUnit sequenceUnit, string stateTree = KeyStateTrees.Default) { var combination = sequenceUnit.ToCombination(); var trigger = new KeyboardCommandTrigger(); var token = Hit(combination, trigger.OnExecute, trigger.OnCanExecute, "", stateTree) as KeyTokens; trigger._metaKey = token?.metaKey; return(trigger); }
private IKeyboardCommandTrigger Event(ISequenceUnit sequenceUnit, KeyEvent keyEvent, string stateTree = KeyStateTrees.Default) { var combination = sequenceUnit.ToCombination(); var trigger = new KeyboardCommandTrigger(); var metaKey = Add(combination, keyEvent, new KeyCommand(trigger.OnExecute) { CanExecute = trigger.OnCanExecute }, stateTree) as MetaKey; trigger._metaKey = metaKey; return(trigger); }
private IKeyboardCommandTrigger Event(ISequence sequence, KeyEvent keyEvent, string stateTree = KeyStateTrees.Default) { var seq = sequence as Sequence; var trigger = new KeyboardCommandTrigger(); var metaKey = Add(seq.ToList(), keyEvent, new KeyCommand(trigger.OnExecute) { CanExecute = trigger.OnCanExecute }, stateTree) as MetaKey; trigger._metaKey = metaKey; return(trigger); }