コード例 #1
0
 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));
         }
     }
 }
コード例 #2
0
 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);
             }
         }
     }
 }
コード例 #3
0
 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));
         }
     }
 }
コード例 #4
0
        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));
                }
            }
        }