/// <summary> /// describes functions to execute when any of the specified key-combinations are pressed/held/released /// </summary> public KBind(KCombo[] kCombos, string name = null, Func <bool> onPressEvent = null, Func <bool> onHoldEvent = null, Func <bool> onReleaseEvent = null, Func <bool> additionalRequirement = null, bool eventAlwaysTriggerable = false, EventBind pressFunc = null, EventBind holdFunc = null, EventBind releaseFunc = null) { keyCombinations = kCombos; Init(); Array.Sort(keyCombinations); Array.Reverse(keyCombinations); // put least complex key bind first, backwards from usual processing this.name = name; keyEvent.AddEvents(onPressEvent, onHoldEvent, onReleaseEvent, pressFunc, holdFunc, releaseFunc); if (additionalRequirement != null) { this.additionalRequirement = additionalRequirement; } this.alwaysTriggerable = eventAlwaysTriggerable; }
public HideEventModuleExpr(ParserRuleContext sourceNode, IEnumerable <PEvent> events, IPModuleExpr module) { SourceLocation = sourceNode; HideEvents = new EventSet(); HideEvents.AddEvents(events); ComponentModule = module; ModuleInfo = null; }
public override bool IsAssignableFrom(PLanguageType otherType) { if (otherType is PermissionType permission) { EventSet eventSet1 = new EventSet(); EventSet eventSet2 = new EventSet(); eventSet1.AddEvents(otherType.AllowedPermissions.Value); eventSet2.AddEvents(AllowedPermissions.Value); return eventSet1.IsSame(eventSet2); } return false; }