private bool HandleMouseButton(WindowMouseEvent e) { Client.Position.Width = Client.CurrentLeft; if (e.MousePosition.Y > Position.Bottom - TextHeight) { int thumbOffset = (Position.Width - 3 * TextHeight) * scrollPosition / ScrollSize; // Mouse down occured within the scrollbar. if (e.MousePosition.X < Position.Left + TextHeight) { // Mouse down occured on left button. SetScrollPosition(scrollPosition - 10); } else if (e.MousePosition.X < Position.Left + TextHeight + thumbOffset) { // Mouse down occured on left gutter. SetScrollPosition(scrollPosition - 100); } else if (e.MousePosition.X > Position.Right - TextHeight) { // Mouse down occured on right button. SetScrollPosition(scrollPosition + 10); } else if (e.MousePosition.X > Position.Left + 2 * TextHeight + thumbOffset) { // Mouse down occured on right gutter. SetScrollPosition(scrollPosition + 100); } capturedForDragging = true; return(true); } return(false); }
private bool HandleMouseButton(WindowMouseEvent e) { Client.Position.Height = Client.CurrentTop; if (e.MousePosition.X > Position.Right - TextHeight) { int thumbOffset = (Position.Height - 3 * TextHeight) * scrollPosition / ScrollSize; // Mouse down occured within the scrollbar. if (e.MousePosition.Y < Position.Top + TextHeight) { // Mouse down occured on top button. SetScrollPosition(scrollPosition - 10); } else if (e.MousePosition.Y < Position.Top + TextHeight + thumbOffset) { // Mouse down occured on top gutter. SetScrollPosition(scrollPosition - 100); } else if (e.MousePosition.Y > Position.Bottom - TextHeight) { // Mouse down occured on bottom button. SetScrollPosition(scrollPosition + 10); } else if (e.MousePosition.Y > Position.Top + 2 * TextHeight + thumbOffset) { // Mouse down occured on bottom gutter. SetScrollPosition(scrollPosition + 100); } capturedForDragging = true; return(true); } return(false); }
internal override bool HandleUserInput(WindowMouseEvent e) { if (base.HandleUserInput(e)) { return(true); } return(true); }
internal override bool HandleMouseUp(WindowMouseEvent e) { if (Dragging) { Dragging = false; } return(base.HandleMouseUp(e)); }
internal override bool HandleMouseMove(WindowMouseEvent e) { if (capturedForDragging) { SetScrollPosition(scrollPosition + e.Movement.Y); return(true); } return(base.HandleMouseMove(e)); }
internal override bool HandleMouseScroll(WindowMouseEvent e) { if (e.MouseWheelDelta != 0) { SetScrollPosition(scrollPosition - e.MouseWheelDelta); return(true); } return(base.HandleMouseScroll(e)); }
internal override bool HandleMouseScroll(WindowMouseEvent e) { foreach (var control in controls.Where(c => c.Position.Contains(e.MousePosition))) { if (control.HandleMouseScroll(e)) { return(true); } } return(base.HandleMouseScroll(e)); }
internal override bool HandleMouseMove(WindowMouseEvent e) { if (UserInput.IsMouseLeftButtonDown && Dragging && UserInput.MouseMovedUp) { SetScrollPosition(ScrollPosition - (int)(DragThumbOffset * UserInput.MouseSpeedY)); } if (UserInput.IsMouseLeftButtonDown && Dragging && UserInput.MouseMovedDown) { SetScrollPosition(ScrollPosition + (int)(DragThumbOffset * UserInput.MouseSpeedY)); } return(base.HandleMouseMove(e)); }
internal override bool HandleUserInput(WindowMouseEvent e) { if (UserInput.IsMouseLeftButtonDown) { Client.Position.Height = Client.CurrentTop; if (e.MouseDownPosition.X > Position.Right - TextHeight) { var thumbOffset = (int)((float)(Position.Height - 3 * TextHeight) * (float)ScrollPosition / (float)ScrollSize); // Mouse down occured within the scrollbar. if (!Dragging && e.MouseDownPosition.Y < Position.Top + TextHeight) { // Mouse down occured on top button. SetScrollPosition(ScrollPosition - 10); } else if (!Dragging && e.MouseDownPosition.Y < Position.Top + TextHeight + thumbOffset) { // Mouse down occured on top gutter. SetScrollPosition(ScrollPosition - 100); } else if (!Dragging && e.MouseDownPosition.Y > Position.Bottom - TextHeight) { // Mouse down occured on bottom button. SetScrollPosition(ScrollPosition + 10); } else if (!Dragging && e.MouseDownPosition.Y > Position.Top + 2 * TextHeight + thumbOffset) { // Mouse down occured on bottom gutter. SetScrollPosition(ScrollPosition + 100); } else if (e.MouseDownPosition.Y > Position.Top + TextHeight + thumbOffset && e.MouseDownPosition.Y < Position.Top + 2 * TextHeight + thumbOffset && !Dragging) { Dragging = true; DragThumbOffset = e.MousePosition.Y - (Position.Top + TextHeight + thumbOffset); } return(true); } } if (UserInput.IsMouseWheelChanged) { SetScrollPosition(ScrollPosition - UserInput.MouseWheelChange); } return(base.HandleUserInput(e)); }
internal override bool HandleMouseMove(WindowMouseEvent e) { if (base.HandleMouseMove(e)) { return(true); } if (UserInput.IsMouseLeftButtonDown && !Dragging && (DragWindowOffset != DragInvalid) && ((MathHelper.Distance(e.MouseScreenPosition.X, e.MouseDownScreenPosition.X) > WindowManager.DragMinimumDistance) || (MathHelper.Distance(e.MouseScreenPosition.Y, e.MouseDownScreenPosition.Y) > WindowManager.DragMinimumDistance))) { Dragging = true; } else if (UserInput.IsMouseLeftButtonDown && Dragging) { Window.MoveTo(e.MouseScreenPosition.X - DragWindowOffset.X, e.MouseScreenPosition.Y - DragWindowOffset.Y); } return(true); }
internal override bool HandleUserInput(WindowMouseEvent e) { if (UserInput.IsMouseLeftButtonDown) { Client.Position.Width = Client.CurrentLeft; if (e.MouseDownPosition.Y > Position.Bottom - TextHeight) { var thumbOffset = (int)((float)(Position.Width - 3 * TextHeight) * (float)ScrollPosition / (float)ScrollSize); // Mouse down occured within the scrollbar. if (!Dragging && e.MouseDownPosition.X < Position.Left + TextHeight) { // Mouse down occured on left button. SetScrollPosition(ScrollPosition - 10); } else if (!Dragging && e.MouseDownPosition.X < Position.Left + TextHeight + thumbOffset) { // Mouse down occured on left gutter. SetScrollPosition(ScrollPosition - 100); } else if (!Dragging && e.MouseDownPosition.X > Position.Right - TextHeight) { // Mouse down occured on right button. SetScrollPosition(ScrollPosition + 10); } else if (!Dragging && e.MouseDownPosition.X > Position.Left + 2 * TextHeight + thumbOffset) { // Mouse down occured on right gutter. SetScrollPosition(ScrollPosition + 100); } else if (e.MouseDownPosition.X > Position.Left + TextHeight + thumbOffset && e.MouseDownPosition.X < Position.Left + 2 * TextHeight + thumbOffset && !Dragging) { // Mouse down occured on the thumb Dragging = true; DragThumbOffset = e.MousePosition.X - (Position.Left + TextHeight + thumbOffset); } return(true); } } return(base.HandleUserInput(e)); }
internal override bool HandleMouseDown(WindowMouseEvent e) { DragWindowOffset = DragInvalid; if (base.HandleMouseDown(e)) { return(true); } // prevent from dragging when clicking on vertical scrollbar if (MathHelper.Distance(base.RemainingWidth, e.MousePosition.X) < 20) { return(false); } // prevent from dragging when clicking on horizontal scrollbar if (MathHelper.Distance(base.RemainingHeight, e.MousePosition.Y) < 20) { return(false); } DragWindowOffset = new Point(e.MouseDownScreenPosition.X - Window.Location.X, e.MouseDownScreenPosition.Y - Window.Location.Y); return(true); }
internal virtual void MouseClick(WindowMouseEvent e) { OnClick?.Invoke(this, new MouseClickEventArgs(e.MousePosition - position.Location, e.KeyModifiers)); }
internal virtual bool HandleMouseReleased(WindowMouseEvent e) { return(false); }
internal virtual bool HandleMouseScroll(WindowMouseEvent e) { return(false); }
internal virtual bool HandleMouseClicked(WindowMouseEvent e) { MouseClick(e); return(false); }
internal virtual bool HandleUserInput(WindowMouseEvent e) { return(false); }
internal override bool HandleMouseReleased(WindowMouseEvent e) { capturedForDragging = false; return(base.HandleMouseReleased(e)); }
internal virtual void MouseClick(WindowMouseEvent e) { OnClick(new Point(e.MouseDownPosition.X - Position.X, e.MouseDownPosition.Y - Position.Y)); }
internal override bool HandleMousePressed(WindowMouseEvent e) { return(HandleMouseButton(e) || base.HandleMousePressed(e)); }