private static void OnPan(object sender, PanArgs args)
        {
            float deltaX, deltaY;

            Clutter.Event evnt = null;

            if (args.IsInterpolated)
            {
                ((PanAction)sender).GetInterpolatedDelta(out deltaX, out deltaY);
            }
            else
            {
                ((GestureAction)sender).GetMotionDelta(0, out deltaX, out deltaY);
                evnt = ((GestureAction)sender).GetLastEvent(0);
            }

            Console.WriteLine(String.Format("[{0}] panning dx:{1:0.##} dy:{2:0.##}",
                                            evnt == null ? "INTERPOLATED" : evnt.Type() == Clutter.EventType.Motion ? "MOTION" :
                                            evnt.Type() == Clutter.EventType.TouchUpdate ? "TOUCH UPDATE" :
                                            "?", deltaX, deltaY));

            args.RetVal = true;
        }
Exemple #2
0
        public static Event GetEvent(IntPtr raw)
        {
            if (raw == IntPtr.Zero)
            {
                return(null);
            }

            Event evnt = new Event(raw);

            switch (evnt.Type())
            {
            case EventType.KeyPress:
            case EventType.KeyRelease:
                return(new KeyEvent(raw));

            case EventType.ButtonPress:
            case EventType.ButtonRelease:
                return(new ButtonEvent(raw));

            case EventType.Motion:
                return(new MotionEvent(raw));

            case EventType.TouchBegin:
            case EventType.TouchCancel:
            case EventType.TouchEnd:
            case EventType.TouchUpdate:
                return(new TouchEvent(raw));

            case EventType.StageState:
                return(new StageStateEvent(raw));

            case EventType.Enter:
            case EventType.Leave:
                return(new CrossingEvent(raw));

            case EventType.Scroll:
                return(new ScrollEvent(raw));
            }
            return(evnt);
        }