/// <summary> /// Mouses the pressed. /// </summary> /// <param name="key">The key.</param> private void MousePressed(MouseKey key) { this.strings.AppendLine(String.Format("Mouse Pressed: {0}", key.Key)); }
/// <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 (this.isMouseOver) { var relative = position - this.position; foreach (var control in this.Controls) { if (control.Visible) { if (control.IsPointInside(relative)) { if (control.Enabled) { control.OnInputMousePress(relative, key); } return; } } } this.isMouseDown[key.Key] = true; this.MouseDown(this, new MouseEventArgs(AlmiranteEngine.Time.Total, key)); } }
/// <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 (this.isMouseDown.ContainsKey(key.Key)) { if (this.isMouseDown[key.Key]) { this.MouseClick(this, new MouseEventArgs(AlmiranteEngine.Time.Total, key)); if (AlmiranteEngine.Time.Total - this.lastMouseUp <= (SystemInformation.DoubleClickTime / 1000.0f) && Math.Abs(this.lastMouseUpPosition.X - position.X) <= SystemInformation.DoubleClickSize.Width && Math.Abs(this.lastMouseUpPosition.Y - position.Y) <= SystemInformation.DoubleClickSize.Height && this.lastMouseKeyUp == key.Key) { this.lastMouseUp = 0.0; this.MouseDoubleClick(this, new MouseEventArgs(AlmiranteEngine.Time.Total, key)); } else { this.lastMouseKeyUp = key.Key; this.lastMouseUp = AlmiranteEngine.Time.Total; this.lastMouseUpPosition = position; } this.isMouseDown[key.Key] = false; this.MouseUp(this, new MouseEventArgs(AlmiranteEngine.Time.Total, key)); if (!this.IsPointInside(position)) { this.isMouseOver = false; this.MouseLeave(this, new EventArgs()); } } } var relative = position - this.position; foreach (var control in this.Controls) { control.OnInputMouseRelease(relative, key); } }
/// <summary> /// Listens for mouse button release events. /// </summary> /// <param name="key">Released key.</param> private void OnInputMouseReleased(MouseKey key) { if (!this.Transitioning) { this.Interface.OnInputMouseRelease(this.input.Mouse.Position, key); } }
/// <summary> /// Listens for mouse button press events. /// </summary> /// <param name="key">Pressed key.</param> private void OnInputMousePressed(MouseKey key) { if (!this.Transitioning) { var control = this.Interface.GetControlAt(this.input.Mouse.Position); if (control != null) { if (key.Key == MouseButton.Left) { if (control.CanFocus) { if (this.focus != control) { this.Focus(control); } } } control.OnInputMousePress(this.input.Mouse.Position - control.RealPosition, key); } } }
/// <summary> /// Initializes a new instance of the <see cref="MouseEventArgs"/> class. /// </summary> /// <param name="key">The key.</param> public MouseEventArgs(MouseKey key) : base() { this.Scroll = 0; this.Key = key; }
/// <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) { this.Scroll = 0; this.Key = key; }
/// <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) { this.Scroll = amount; this.Key = key; }