Exemple #1
0
        /// <summary>
        ///     Called when a mouse button is pressed.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <param name="key">The key.</param>
        internal void OnInputMousePress(Vector2 position, MouseKey key)
        {
            if (isMouseOver)
            {
                var relative = position - this.position;
                foreach (var control in Controls)
                {
                    if (control.Visible)
                    {
                        if (control.IsPointInside(relative))
                        {
                            if (control.Enabled)
                            {
                                control.OnInputMousePress(relative, key);
                            }
                            return;
                        }
                    }
                }

                isMouseDown[key.Key] = true;
                MouseDown(this, new MouseEventArgs(Manager.Time.Total, key));
            }
        }
Exemple #2
0
        /// <summary>
        ///     Called when a mouse button is released.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <param name="key">The key.</param>
        internal void OnInputMouseRelease(Vector2 position, MouseKey key)
        {
            if (isMouseDown.ContainsKey(key.Key))
            {
                if (isMouseDown[key.Key])
                {
                    MouseClick(this, new MouseEventArgs(Manager.Time.Total, key));

                    if (Manager.Time.Total - lastMouseUp <= SystemInformation.DoubleClickTime/1000.0f &&
                        Math.Abs(lastMouseUpPosition.X - position.X) <= SystemInformation.DoubleClickSize.Width &&
                        Math.Abs(lastMouseUpPosition.Y - position.Y) <= SystemInformation.DoubleClickSize.Height &&
                        lastMouseKeyUp == key.Key)
                    {
                        lastMouseUp = 0.0;
                        MouseDoubleClick(this, new MouseEventArgs(Manager.Time.Total, key));
                    }
                    else
                    {
                        lastMouseKeyUp = key.Key;
                        lastMouseUp = Manager.Time.Total;
                        lastMouseUpPosition = position;
                    }

                    isMouseDown[key.Key] = false;
                    MouseUp(this, new MouseEventArgs(Manager.Time.Total, key));

                    if (!IsPointInside(position))
                    {
                        isMouseOver = false;
                        MouseLeave(this, new EventArgs());
                    }
                }
            }

            var relative = position - this.position;
            foreach (var control in Controls)
            {
                control.OnInputMouseRelease(relative, key);
            }
        }
Exemple #3
0
 /// <summary>
 ///     Listens for mouse button release events.
 /// </summary>
 /// <param name="key">Released key.</param>
 private void OnInputMouseReleased(MouseKey key)
 {
     if (!Transitioning)
     {
         Interface.OnInputMouseRelease(input.Mouse.Position, key);
     }
 }
Exemple #4
0
 /// <summary>
 ///     Listens for mouse button press events.
 /// </summary>
 /// <param name="key">Pressed key.</param>
 private void OnInputMousePressed(MouseKey key)
 {
     if (!Transitioning)
     {
         var control = Interface.GetControlAt(input.Mouse.Position);
         if (control != null)
         {
             if (key.Key == MouseButton.Left)
             {
                 if (control.CanFocus)
                 {
                     if (focus != control)
                     {
                         Focus(control);
                     }
                 }
             }
             control.OnInputMousePress(input.Mouse.Position - control.RealPosition, key);
         }
     }
 }
Exemple #5
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="MouseEventArgs" /> class.
 /// </summary>
 /// <param name="key">The key.</param>
 public MouseEventArgs(MouseKey key)
 {
     Scroll = 0;
     Key = key;
 }
Exemple #6
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="MouseEventArgs" /> class.
 /// </summary>
 /// <param name="time">The time.</param>
 /// <param name="key">The key.</param>
 public MouseEventArgs(double time, MouseKey key)
     : base(time)
 {
     Scroll = 0;
     Key = key;
 }
Exemple #7
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="MouseEventArgs" /> class.
 /// </summary>
 /// <param name="time">The time.</param>
 /// <param name="key">The key.</param>
 /// <param name="amount">The amount.</param>
 public MouseEventArgs(double time, MouseKey key, int amount)
     : base(time)
 {
     Scroll = amount;
     Key = key;
 }