private void Input_MouseScroll(object sender, MouseScrollEventArgs e) { if (_hoveredControl != null) { Bubble(_hoveredControl, x => x.InvokeMouseScroll(e)); var hover = FindControl(e.X, e.Y); var mme = e.MouseMoveEvent; if (hover != _hoveredControl) { if (hover == null || !hover.HasParent(_hoveredControl)) { Bubble(_hoveredControl, x => x.InvokeMouseLeave(mme)); } } _hoveredControl = hover; if (_hoveredControl != null) { Bubble(_hoveredControl, x => x.InvokeMouseEnter(mme)); } } }
protected override void OnMouseScroll(MouseScrollEventArgs args) { VerticalScrollPosition -= args.Steps * ScrollSpeed; args.Handled = true; base.OnMouseScroll(args); }
public override UIElement OnMouseScroll(MouseScrollEventArgs mouse) { UIElement intercept; foreach (UIElement child in Children) if ((intercept = child.OnMouseScroll(mouse)) != null) return intercept; return base.OnMouseScroll(mouse); }
void InputDevice_MouseScroll(object sender, MouseScrollEventArgs e) { var hovered = ui.GetHoveredFrame(Game.Mouse.Position); if (hovered != null) { hovered.OnMouseWheel(e.WheelDelta); } }
private void OnMouseScroll(object sender, MouseScrollEventArgs mouse) { foreach (UIElement child in Children) { if (child.OnMouseScroll(mouse) != null) { break; } } }
protected override void OnMouseScroll(MouseScrollEventArgs args) { if (!IsActiveScreen) { return; } Manager.Player.SlotLeftInput = args.Steps > 0; Manager.Player.SlotRightInput = args.Steps < 0; args.Handled = true; }
public override UIElement OnMouseScroll(MouseScrollEventArgs mouse) { UIElement intercept = base.OnMouseScroll(mouse); if (intercept == this) { View.OnMouseScroll(new MouseScrollEventArgs(mouse.Position - Position, mouse.Delta, mouse.HeldKeys)); } return(intercept); }
private void OnMouseComponentScroll(object sender, MouseScrollEventArgs e) { foreach (var module in InputModules) { var input = module as IInputModule; if (input != null) { if (input.MouseScroll(GameTime, e)) break; } } }
private void OnMouseScroll(object sender, MouseScrollEventArgs args) { if (args.Delta > 0) { FocusLevel += 1; Camera += new Vector2(0, 32); } else if (args.Delta < 0) { FocusLevel -= 1; Camera -= new Vector2(0, 32); } }
public override bool MouseScroll(GameTime gameTime, MouseScrollEventArgs e) { var selected = Game.Client.HotbarSelection; selected += e.DeltaValue > 0 ? -1 : 1; if (selected < 0) { selected = 8; } if (selected > 8) { selected = 0; } Game.Client.HotbarSelection = selected; return(true); }
protected override bool OnMouseScroll(MouseScrollEventArgs e) { var nextOffset = _scrollOffset - e.WheelDelta; // Clamp the offset if (nextOffset > _scrollHeight - _pageHeight) { nextOffset = _scrollHeight - _pageHeight; } if (nextOffset < 0) { nextOffset = 0; } _scrollOffset = nextOffset; return(base.OnMouseScroll(e)); }
private void OnMouseComponentScroll(object sender, MouseScrollEventArgs e) { if (!IsActive) { return; } foreach (var module in InputModules) { if (!(module is IInputModule input)) { continue; } if (input.MouseScroll(GameTime, e)) { break; } } }
private static void flushEvents() { foreach (var evt in keyEventList) { switch (evt.Type) { case KeyEventType.Pressed: KeyPressed(evt.Type, evt.Key); break; case KeyEventType.Released: KeyReleased(evt.Type, evt.Key); break; case KeyEventType.Held: KeyHeld(evt.Type, evt.Key); break; } } foreach (var evt in buttonEventList) { switch (evt.Type) { case ButtonEventType.Pressed: ButtonPressed(evt.Type, evt.Button); break; case ButtonEventType.Released: ButtonReleased(evt.Type, evt.Button); break; case ButtonEventType.Clicked: ButtonClicked(evt.Type, evt.Button); break; case ButtonEventType.DoubleClicked: ButtonDoubleClicked(evt.Type, evt.Button); break; } } if (mouseMoveEvent.HasValue) { MouseMoveEventArgs args = mouseMoveEvent.Value; MouseMoved(args.Buttons, args.LastPoint, args.CurrPoint, args.IsDrag); } if (mouseScrollEvent.HasValue) { MouseScrollEventArgs args = mouseScrollEvent.Value; MouseScrolled(args.LastVal, args.CurrVal); } keyEventList.Clear(); buttonEventList.Clear(); mouseMoveEvent = null; mouseScrollEvent = null; }
public void OnMouseScroll(MouseScrollEventArgs mouse) { int sign = Math.Sign(mouse.Delta); int abs = Math.Abs(mouse.Delta); for (int i = 0; i < abs; i++) { if (sign < 0) { Zoom = Zoom * 0.999f; } else { Zoom = Zoom / 0.999f; } } if (Zoom > 4f) { Zoom = 4f; } }
public abstract UIElement OnMouseScroll(MouseScrollEventArgs mouse);
protected virtual void OnMouseScroll(MouseScrollEventArgs args) { }
/// <summary> /// Handling aller Eingaben, Mausbewegungen und Updaten aller Screens und Controls. /// </summary> /// <param name="gameTime"></param> public override void Update(GameTime gameTime) { if (Game.IsActive) { #region Mouse Interaction if (MouseEnabled) { MouseState mouse = Mouse.GetState(); // Mausposition anhand des Mouse Modes ermitteln Point mousePosition = mouse.Position; if (MouseMode == MouseMode.Captured) mousePosition = new Point( mousePosition.X - (GraphicsDevice.Viewport.Width / 2), mousePosition.Y - (GraphicsDevice.Viewport.Height / 2)); // Mouse Move if (mousePosition != lastMousePosition) { MouseEventArgs moveArgs = new MouseEventArgs() { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition, }; root.InternalMouseMove(moveArgs); if (!moveArgs.Handled && MouseMove != null) MouseMove(moveArgs); // Start Drag Handling if (mouse.LeftButton == ButtonState.Pressed && DraggingArgs == null) { DraggingArgs = new DragEventArgs() { GlobalPosition = mousePosition, LocalPosition = mousePosition, }; draggingId = null; root.InternalStartDrag(DraggingArgs); if (!DraggingArgs.Handled && StartDrag != null) StartDrag(DraggingArgs); } // Drop move if (mouse.LeftButton == ButtonState.Pressed && DraggingArgs != null && draggingId == null && DraggingArgs.Handled) { DragEventArgs args = new DragEventArgs() { GlobalPosition = mousePosition, LocalPosition = mousePosition, Content = DraggingArgs.Content, Icon = DraggingArgs.Icon, Sender = DraggingArgs.Sender }; root.InternalDropMove(args); if (!args.Handled && DropMove != null) DropMove(args); } } // Linke Maustaste if (mouse.LeftButton == ButtonState.Pressed) { if (!lastLeftMouseButtonPressed) { MouseEventArgs leftDownArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; // Linke Maustaste wurde neu gedrückt root.InternalLeftMouseDown(leftDownArgs); if (!leftDownArgs.Handled && LeftMouseDown != null) LeftMouseDown(leftDownArgs); } lastLeftMouseButtonPressed = true; } else { if (lastLeftMouseButtonPressed) { // Handle Drop if (DraggingArgs != null && DraggingArgs.Handled) { DragEventArgs args = new DragEventArgs() { GlobalPosition = mousePosition, LocalPosition = mousePosition, Content = DraggingArgs.Content, Icon = DraggingArgs.Icon, Sender = DraggingArgs.Sender }; root.InternalEndDrop(args); if (!args.Handled && EndDrop != null) EndDrop(args); } // Discard Dragging Infos DraggingArgs = null; draggingId = null; // Linke Maustaste wurde losgelassen MouseEventArgs leftClickArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; root.InternalLeftMouseClick(leftClickArgs); if (!leftClickArgs.Handled && LeftMouseClick != null) LeftMouseClick(leftClickArgs); if (lastLeftClick.HasValue && gameTime.TotalGameTime - lastLeftClick.Value < TimeSpan.FromMilliseconds(DoubleClickDelay)) { // Double Left Click MouseEventArgs leftDoubleClickArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; root.InternalLeftMouseDoubleClick(leftDoubleClickArgs); if (!leftDoubleClickArgs.Handled && LeftMouseDoubleClick != null) LeftMouseDoubleClick(leftDoubleClickArgs); lastLeftClick = null; } else { lastLeftClick = gameTime.TotalGameTime; } // Mouse Up MouseEventArgs leftUpArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; root.InternalLeftMouseUp(leftUpArgs); if (!leftUpArgs.Handled && LeftMouseUp != null) LeftMouseUp(leftUpArgs); } lastLeftMouseButtonPressed = false; } // Rechte Maustaste if (mouse.RightButton == ButtonState.Pressed) { if (!lastRightMouseButtonPressed) { // Rechte Maustaste neu gedrückt MouseEventArgs rightDownArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; root.InternalRightMouseDown(rightDownArgs); if (!rightDownArgs.Handled && RightMouseDown != null) RightMouseDown(rightDownArgs); } lastRightMouseButtonPressed = true; } else { if (lastRightMouseButtonPressed) { // Rechte Maustaste losgelassen MouseEventArgs rightClickArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; root.InternalRightMouseClick(rightClickArgs); if (!rightClickArgs.Handled && RightMouseClick != null) RightMouseClick(rightClickArgs); if (lastRightClick.HasValue && gameTime.TotalGameTime - lastRightClick.Value < TimeSpan.FromMilliseconds(DoubleClickDelay)) { // Double Left Click MouseEventArgs rightDoubleClickArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; root.InternalRightMouseDoubleClick(rightDoubleClickArgs); if (!rightDoubleClickArgs.Handled && RightMouseDoubleClick != null) RightMouseDoubleClick(rightDoubleClickArgs); lastRightClick = null; } else { lastRightClick = gameTime.TotalGameTime; } MouseEventArgs rightUpArgs = new MouseEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition }; root.InternalRightMouseUp(rightUpArgs); if (!rightUpArgs.Handled && RightMouseUp != null) RightMouseUp(rightUpArgs); } lastRightMouseButtonPressed = false; } // Mousewheel if (lastMouseWheelValue != mouse.ScrollWheelValue) { int diff = (mouse.ScrollWheelValue - lastMouseWheelValue); MouseScrollEventArgs scrollArgs = new MouseScrollEventArgs { MouseMode = MouseMode, GlobalPosition = mousePosition, LocalPosition = mousePosition, Steps = diff }; root.InternalMouseScroll(scrollArgs); if (!scrollArgs.Handled && MouseScroll != null) MouseScroll(scrollArgs); lastMouseWheelValue = mouse.ScrollWheelValue; } // Potentieller Positionsreset if (MouseMode == MouseMode.Free) { lastMousePosition = mouse.Position; } else if (mousePosition.X != 0 || mousePosition.Y != 0) { Mouse.SetPosition(GraphicsDevice.Viewport.Width / 2, GraphicsDevice.Viewport.Height / 2); } } #endregion #region Keyboard Interaction if (KeyboardEnabled) { KeyboardState keyboard = Keyboard.GetState(); bool shift = keyboard.IsKeyDown(Keys.LeftShift) | keyboard.IsKeyDown(Keys.RightShift); bool ctrl = keyboard.IsKeyDown(Keys.LeftControl) | keyboard.IsKeyDown(Keys.RightControl); bool alt = keyboard.IsKeyDown(Keys.LeftAlt) | keyboard.IsKeyDown(Keys.RightAlt); KeyEventArgs args; foreach (Keys key in Enum.GetValues(typeof(Keys))) { if (keyboard.IsKeyDown(key)) { if (!pressedKeys.ContainsKey(key)) { // Taste ist neu args = new KeyEventArgs() { Key = key, Shift = shift, Ctrl = ctrl, Alt = alt }; root.InternalKeyDown(args); if (!args.Handled) { if (KeyDown != null) KeyDown(args); } args = new KeyEventArgs() { Key = key, Shift = shift, Ctrl = ctrl, Alt = alt }; root.InternalKeyPress(args); pressedKeys.Add(key, gameTime.TotalGameTime.TotalMilliseconds + 500); // Spezialfall Tab-Taste (falls nicht verarbeitet wurde) if (key == Keys.Tab && !args.Handled) { if (shift) root.InternalTabbedBackward(); else root.InternalTabbedForward(); } } else { // Taste ist immernoch gedrückt if (pressedKeys[key] <= gameTime.TotalGameTime.TotalMilliseconds) { args = new KeyEventArgs() { Key = key, Shift = shift, Ctrl = ctrl, Alt = alt }; root.InternalKeyPress(args); if (!args.Handled) { if (KeyPress != null) KeyPress(args); } pressedKeys[key] = gameTime.TotalGameTime.TotalMilliseconds + 50; } } } else { if (pressedKeys.ContainsKey(key)) { // Taste losgelassen args = new KeyEventArgs() { Key = key, Shift = shift, Ctrl = ctrl, Alt = alt }; root.InternalKeyUp(args); pressedKeys.Remove(key); if (!args.Handled) { if (KeyUp != null) KeyUp(args); } } } } } #endregion #region Touchpanel Interaction if (TouchEnabled) { TouchCollection touchPoints = TouchPanel.GetState(); foreach (var touchPoint in touchPoints) { Point point = touchPoint.Position.ToPoint(); TouchEventArgs args = new TouchEventArgs() { TouchId = touchPoint.Id, GlobalPosition = point, LocalPosition = point }; switch (touchPoint.State) { case TouchLocationState.Pressed: root.InternalTouchDown(args); if (!args.Handled && TouchDown != null) TouchDown(args); break; case TouchLocationState.Moved: // Touch Move root.InternalTouchMove(args); if (!args.Handled && TouchMove != null) TouchMove(args); // Start Dragging if (DraggingArgs == null) { DraggingArgs = new DragEventArgs() { GlobalPosition = point, LocalPosition = point, }; draggingId = touchPoint.Id; root.InternalStartDrag(DraggingArgs); if (!DraggingArgs.Handled && StartDrag != null) StartDrag(DraggingArgs); } // Drop move if (DraggingArgs != null && draggingId == touchPoint.Id && DraggingArgs.Handled) { DragEventArgs moveArgs = new DragEventArgs() { GlobalPosition = point, LocalPosition = point, Content = DraggingArgs.Content, Icon = DraggingArgs.Icon, Sender = DraggingArgs.Sender }; root.InternalDropMove(moveArgs); if (!args.Handled && DropMove != null) DropMove(moveArgs); } break; case TouchLocationState.Released: // Handle Drop if (DraggingArgs != null && draggingId == touchPoint.Id && DraggingArgs.Handled) { DragEventArgs dropArgs = new DragEventArgs() { GlobalPosition = point, LocalPosition = point, Content = DraggingArgs.Content, Icon = DraggingArgs.Icon, Sender = DraggingArgs.Sender }; root.InternalEndDrop(dropArgs); if (!args.Handled && EndDrop != null) EndDrop(dropArgs); } // Discard Dragging Infos DraggingArgs = null; draggingId = null; // Linke Maustaste wurde losgelassen TouchEventArgs tapArgs = new TouchEventArgs { TouchId = touchPoint.Id, GlobalPosition = point, LocalPosition = point }; root.InternalTouchTap(tapArgs); if (!tapArgs.Handled && TouchTap != null) TouchTap(tapArgs); if (lastTouchTap.HasValue && gameTime.TotalGameTime - lastLeftClick.Value < TimeSpan.FromMilliseconds(DoubleClickDelay)) { // Double Tap TouchEventArgs doubleTapArgs = new TouchEventArgs { TouchId = touchPoint.Id, GlobalPosition = point, LocalPosition = point }; root.InternalTouchDoubleTap(doubleTapArgs); if (!doubleTapArgs.Handled && TouchDoubleTap != null) TouchDoubleTap(doubleTapArgs); lastTouchTap = null; } else { lastTouchTap = gameTime.TotalGameTime; } root.InternalTouchUp(args); if (!args.Handled && TouchUp != null) TouchUp(args); break; } } } #endregion } #region Recalculate Sizes if (root.HasInvalidDimensions()) { Point available = new Point(GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height); Point required = root.GetExpectedSize(available); root.SetActualSize(available); } root.Update(gameTime); #endregion #region Form anpassen string screentitle = ActiveScreen != null ? ActiveScreen.Title : string.Empty; string windowtitle = TitlePrefix + (string.IsNullOrEmpty(screentitle) ? "" : " - " + screentitle); if (Game.Window != null && Game.Window.Title != windowtitle) Game.Window.Title = windowtitle; #endregion }
public virtual bool MouseScroll(MouseScrollEventArgs e) { return(false); }
public void OnMouseScroll(MouseScrollEventArgs mouse) { }
public void FireMouseScroll(MouseScrollEventArgs e) { MouseScroll?.Invoke(this, e); }
public virtual bool MouseScroll(GameTime gameTime, MouseScrollEventArgs e) { return(false); }
protected override void OnMouseScroll(MouseScrollEventArgs args) { if (!IsActiveScreen) return; Manager.Player.SlotLeftInput = args.Steps > 0; Manager.Player.SlotRightInput = args.Steps < 0; args.Handled = true; }
internal bool InternalMouseScroll(MouseScrollEventArgs args) { // Ignorieren, falls nicht im Control-Bereich Point size = ActualSize; if (args.LocalPosition.X < 0 || args.LocalPosition.X >= size.X || args.LocalPosition.Y < 0 || args.LocalPosition.Y >= size.Y) return false; // Ignorieren, falls nicht gehovered if (!Visible) return false; // Ignorieren, falls ausgeschaltet if (!Enabled) return true; // Children first (Order by Z-Order) foreach (var child in Children.InZOrder()) { args.LocalPosition = CalculateLocalPosition(args.GlobalPosition, child); args.Bubbled = child.InternalMouseScroll(args) || args.Bubbled; if (args.Handled) break; } // Lokales Events if (!args.Handled) { args.LocalPosition = CalculateLocalPosition(args.GlobalPosition, this); OnMouseScroll(args); if (MouseScroll != null) MouseScroll(this, args); } return Background != null; }
public override bool MouseScroll(MouseScrollEventArgs e) { return(_currentScene?.MouseScroll(e) ?? false); }
public override UIElement OnMouseScroll(MouseScrollEventArgs mouse) { return(CheckIntercept(mouse.Position)); }
internal void InternalMouseScroll(MouseScrollEventArgs args) { // Ignorieren, falls nicht gehovered if (Hovered == TreeState.None || !Visible || !Enabled) return; // Children first (Order by Z-Order) foreach (var child in Children.InZOrder()) { args.LocalPosition = CalculateLocalPosition(args.GlobalPosition, child); child.InternalMouseScroll(args); if (args.Handled) break; } // Lokales Events if (!args.Handled) { args.LocalPosition = CalculateLocalPosition(args.GlobalPosition, this); OnMouseScroll(args); if (MouseScroll != null) MouseScroll(this, args); } }
public override UIElement OnMouseScroll(MouseScrollEventArgs mouse) { return(null); }
public override void OnMouseScroll(MouseScrollEventArgs args) { browser.MouseScroll((int)(args.Position.X - 10), (int)(args.Position.Y - 10), (int)args.OffsetX, (int)args.OffsetY); args.Handled = true; }
protected override void OnMouseScroll(MouseScrollEventArgs args) { VerticalScrollPosition -= args.Steps / 5; args.Handled = true; base.OnMouseScroll(args); }