示例#1
0
        public override void Run(Window window)
        {
            Log.Debug("window id is " + window.Handle.ToString());
            Rect square = window.GetInnerSquare();

            Log.Debug(square.ToString());

            Rectangle redSquare = new Rectangle(window)
            {
                Color    = Color.Red,
                Geometry = square
            };

            redSquare.Show();

            double degrees = 0;

            RotaryEventHandler handler = (args) =>
            {
                if (args.IsClockwise)
                {
                    degrees += 10;
                }
                else
                {
                    degrees -= 10;
                }

                if (degrees < 0)
                {
                    degrees = 360;
                }
                else if (degrees > 360)
                {
                    degrees = 0;
                }

                Rect    rect = redSquare.Geometry;
                EvasMap map  = new EvasMap(4);
                map.PopulatePoints(redSquare, 0);
                map.Rotate(degrees, rect.X + rect.Width / 2, rect.Y + rect.Height / 2);
                redSquare.EvasMap      = map;
                redSquare.IsMapEnabled = true;
            };

            RotaryEventManager.Rotated += handler;

            window.BackButtonPressed += (s, e) =>
            {
                RotaryEventManager.Rotated -= handler;
                Log.Debug("handler is Removed!!!!!!!");
            };
        }
示例#2
0
 /// <summary>
 /// Removes a handler on a specific EvasObject for the Rotary event.
 /// </summary>
 /// <param name="obj">Target EvasObject.</param>
 /// <param name="handler">Event handler for Rotary event.</param>
 /// <since_tizen> preview </since_tizen>
 public static void RemoveRotaryEventHandler(this EvasObject obj, RotaryEventHandler handler)
 {
     if (s_rotaryObjectEventHandlers.ContainsKey(obj))
     {
         s_rotaryObjectEventHandlers[obj] -= handler;
         if (s_rotaryObjectEventHandlers[obj] == null)
         {
             DisableRotaryEventHandler(obj, false);
             s_rotaryObjectEventHandlers.Remove(obj);
         }
     }
 }
示例#3
0
        /// <summary>
        /// Adds a handler for the Rotary event on a specific EvasObject.
        /// </summary>
        /// <param name="obj">Target EvasObject.</param>
        /// <param name="handler">Event handler for the Rotary event.</param>
        /// <since_tizen> preview </since_tizen>
        public static void AddRotaryEventHandler(this EvasObject obj, RotaryEventHandler handler)
        {
            EnableRotaryEventHandler(obj);

            if (s_rotaryObjectEventHandlers.ContainsKey(obj))
            {
                s_rotaryObjectEventHandlers[obj] += handler;
            }
            else
            {
                s_rotaryObjectEventHandlers[obj] = handler;
            }
        }