/// <summary>
 /// Initialisiert eine neue Geste-Element Verknüpfung
 /// </summary>
 /// <param name="element">Das UIElement auf welchem die Geste ausgeführt wid</param>
 /// <param name="gesture">Die Geste</param>
 /// <param name="callback">Die Methode die aufgerufen wird, wenn die Geste entdeckt wurde</param>
 public GestureHandler(UIElement element, GestureBase gesture, GestureCallbackHandler callback)
 {
     Element  = element;
     Gesture  = gesture;
     Callback = callback;
     IsActive = true;
 }
Beispiel #2
0
 /// <summary>
 /// Initialisiert neue GestureValidationEventArgs
 /// </summary>
 /// <param name="hasvalidated">Wurde die Geste bereits validiert?</param>
 /// <param name="isvalid">Wurde die Geste erkannt?</param>
 /// <param name="ui">Das UIElement, auf dem diese Geste validiert werden soll/wurde</param>
 /// <param name="points">Die Berührungspunkte, die für diese Geste betrachtet werden/wurden</param>
 /// <param name="gesture">Die Geste, die dieses Event aufgerufen hat.</param>
 public GestureValidationEventArgs(bool hasvalidated, bool isvalid, UIElement ui, TouchGroup points, GestureBase gesture)
 {
     HasValidated = hasvalidated;
     IsValid      = isvalid;
     Element      = ui;
     Points       = points;
     Gesture      = gesture;
 }
        /// <summary>
        /// Registriert eine Geste für ein UIElement und erstellt somit einen passenden GestureHandler
        /// </summary>
        /// <param name="element">Das UIElement, welches die Geste erhalten soll</param>
        /// <param name="gesture">Die Geste</param>
        /// <param name="callback">Die Methode, die aufgerufen werden soll, wenn die Geste erkannt wurde</param>
        /// <returns>Der GestureHandler für diese Verknüpfung</returns>
        public GestureHandler AddGesture(UIElement element, GestureBase gesture, GestureHandler.GestureCallbackHandler callback)
        {
            GestureHandler newgesture = new GestureHandler(element, gesture, callback);

            if (!RegisteredGestures.Contains(newgesture))
            {
                RegisteredGestures.Add(newgesture);
            }
            return(newgesture);
        }
Beispiel #4
0
 /// <summary>
 /// Registriert eine Geste, verwendet dafür aber nicht das "GestureElement", sondern
 /// ein anderes, explizit angegebenes.
 /// </summary>
 /// <param name="identifier">Interner Bezeichner für die Geste</param>
 /// <param name="gesture">Die Geste selbst</param>
 /// <param name="callback">Die Methoden, die bei erkennen der Geste ausgeführt werden soll</param>
 /// <param name="element">Das UIELement für die Geste</param>
 public virtual void AddGesture(string identifier, UIElement element, GestureBase gesture,
                                GestureHandler.GestureCallbackHandler callback)
 {
     Gestures.Add(identifier,
                  Surface.GestureManager.AddGesture(element, gesture, callback));
 }
Beispiel #5
0
 /// <summary>
 /// Fügt eine Geste zu den registrierten Gesten hinzu.
 /// Als UIElement für die Geste wird dabei das "GestureELement" gewählt.
 /// </summary>
 /// <param name="identifier">Interner Bezeichner für die Geste</param>
 /// <param name="gesture">Die Geste selbst</param>
 /// <param name="callback">Die Methoden, die bei erkennen der Geste ausgeführt werden soll</param>
 public virtual void AddGesture(string identifier, GestureBase gesture,
                                GestureHandler.GestureCallbackHandler callback)
 {
     AddGesture(identifier, GestureElement, gesture, callback);
 }
Beispiel #6
0
        ////TODO: Remove this after implementing full factory
        private static bool ContainsPipe(this EventPublisher<IUserChangedEvent> publisher, GestureBase gesture)
        {
            if (publisher._pipelines.Contains(gesture))
            {
                return true;
            }
            else
            {
                foreach (EventPublisher<IUserChangedEvent> pub in publisher._pipelines)
                {
                    return pub.ContainsPipe(gesture);
                }
            }

            return false;
        }
Beispiel #7
0
        ////TODO: Remove this after implementing full factory
        private static Filter<IUserChangedEvent> GetParentFilter(this EventPublisher<IUserChangedEvent> publisher,
                                                                 GestureBase gesture)
        {
            foreach (Filter<IUserChangedEvent> parentFilter in publisher._pipelines)
            {
                if (parentFilter.ContainsPipe(gesture))
                {
                    return parentFilter;
                }
            }

            return null;
        }
Beispiel #8
0
        ////TODO: Remove this after implementing full factory
        public static void RemoveGesture(this User user, GestureBase gesture)
        {
            if (gesture == null)
            {
                throw new ArgumentNullException("gesture");
            }

            var filter = user.GetParentFilter(gesture);

            user.DetachPipeline(filter);
            ////TODO: Destroy all pipes
            gesture = null;
        }