internal static IEnumerable <GestureDefinition> Parse( DSL.WhenElement.Value whenElement, DSL.IfDoubleTriggerButtonElement.Value ifDoubleTriggerButtonElement) { if (ifDoubleTriggerButtonElement.beforeElements.Count == 0 && ifDoubleTriggerButtonElement.doElements.Count == 0 && ifDoubleTriggerButtonElement.afterElements.Count == 0 ) { yield return(new IfButtonGestureDefinition(whenElement.func, ifDoubleTriggerButtonElement.button, null, null, null)); } else { foreach (var elm in ifDoubleTriggerButtonElement.beforeElements) { yield return(new IfButtonGestureDefinition(whenElement.func, ifDoubleTriggerButtonElement.button, elm.func, null, null)); } foreach (var elm in ifDoubleTriggerButtonElement.doElements) { yield return(new IfButtonGestureDefinition(whenElement.func, ifDoubleTriggerButtonElement.button, null, elm.func, null)); } foreach (var elm in ifDoubleTriggerButtonElement.afterElements) { yield return(new IfButtonGestureDefinition(whenElement.func, ifDoubleTriggerButtonElement.button, null, null, elm.func)); } } }
internal static IEnumerable <GestureDefinition> Parse( DSL.WhenElement.Value whenElement) { if (whenElement.onElements.Count == 0 && whenElement.ifSingleTriggerButtonElements.Count == 0 && whenElement.ifDoubleTriggerButtonElements.Count == 0) { yield return(new GestureDefinition(whenElement.func)); } else { foreach (var elm in whenElement.onElements) { foreach (var def in Parse(whenElement, elm)) { yield return(def); } } foreach (var elm in whenElement.ifSingleTriggerButtonElements) { foreach (var def in Parse(whenElement, elm)) { yield return(def); } } foreach (var elm in whenElement.ifDoubleTriggerButtonElements) { foreach (var def in Parse(whenElement, elm)) { yield return(def); } } } }
internal static IEnumerable <GestureDefinition> Parse( DSL.WhenElement.Value whenElement, DSL.IfSingleTriggerButtonElement.Value ifSingleTriggerButtonElement) { if (ifSingleTriggerButtonElement.doElements.Count == 0) { yield return(new IfButtonGestureDefinition(whenElement.func, ifSingleTriggerButtonElement.button, null, null, null)); } else { foreach (var doElement in ifSingleTriggerButtonElement.doElements) { yield return(new IfButtonGestureDefinition(whenElement.func, ifSingleTriggerButtonElement.button, null, doElement.func, null)); } } }
internal static IEnumerable <GestureDefinition> Parse( DSL.WhenElement.Value whenElement, DSL.OnElement.Value onElement, DSL.IfStrokeElement.Value ifStrokeElement) { var stroke = Helper.Convert(ifStrokeElement.moves); if (ifStrokeElement.doElements.Count == 0) { yield return(new OnButtonWithIfStrokeGestureDefinition(whenElement.func, onElement.button, stroke, null)); } else { foreach (var doElement in ifStrokeElement.doElements) { yield return(new OnButtonWithIfStrokeGestureDefinition(whenElement.func, onElement.button, stroke, doElement.func)); } } }