/// <summary> /// Called when the mouse button is pressed. /// </summary> /// <param name="args">An instance that contains the event data.</param> protected override void OnButtonPressed(ButtonEventArgs args) { base.OnButtonPressed(args); if (args.Handled) { return; } args.Handled = ActualController.HandleMouseDown(this, args.ToOxyMouseDownEventArgs()); }
/// <summary> /// Invoked when an unhandled MouseDown attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. /// </summary> /// <param name="e">The <see cref="T:System.Windows.Input.MouseButtonEventArgs" /> that contains the event data. This event data reports details about the mouse button that was pressed and the handled state.</param> protected override void OnPointerPressed(PointerPressedEventArgs e) { base.OnPointerPressed(e); if (e.Handled) { return; } Focus(); MouseDevice.Instance.Capture(this); // store the mouse down point, check it when mouse button is released to determine if the context menu should be shown mouseDownPoint = e.GetPosition(this).ToScreenPoint(); e.Handled = ActualController.HandleMouseDown(this, e.ToMouseDownEventArgs(this)); }
/// <summary> /// Invoked when an unhandled MouseDown attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. /// </summary> /// <param name="e">The <see cref="T:System.Windows.Input.MouseButtonEventArgs" /> that contains the event data. This event data reports details about the mouse button that was pressed and the handled state.</param> protected override void OnPointerPressed(PointerPressedEventArgs e) { base.OnPointerPressed(e); if (e.Handled) { return; } Focus(); e.Pointer.Capture(this); if (e.Pointer.Type == PointerType.Touch) { var position = e.GetPosition(this).ToScreenPoint(); var touchEventArgs = new OxyTouchEventArgs() { ModifierKeys = e.KeyModifiers.ToModifierKeys(), Position = position, DeltaTranslation = new ScreenVector(0, 0), DeltaScale = new ScreenVector(1, 1), }; TouchPositions[e.Pointer.Id] = position; if (TouchPositions.Count == 1) { e.Handled = ActualController.HandleTouchStarted(this, touchEventArgs); } } else { // store the mouse down point, check it when mouse button is released to determine if the context menu should be shown mouseDownPoint = e.GetPosition(this).ToScreenPoint(); e.Handled = ActualController.HandleMouseDown(this, e.ToMouseDownEventArgs(this)); } }
protected override bool OnMouse(SciterElement se, SciterXBehaviors.MOUSE_PARAMS prms) { switch (prms.cmd) { case SciterXBehaviors.MOUSE_EVENTS.MOUSE_ENTER: ActualController.HandleMouseEnter(this, new OxyMouseEventArgs { Position = new ScreenPoint(prms.pos.X, prms.pos.Y), ModifierKeys = prms.alt_state.GetModifiers() }); break; case SciterXBehaviors.MOUSE_EVENTS.MOUSE_LEAVE: ActualController.HandleMouseLeave(this, new OxyMouseEventArgs { Position = new ScreenPoint(prms.pos.X, prms.pos.Y), ModifierKeys = prms.alt_state.GetModifiers() }); break; case SciterXBehaviors.MOUSE_EVENTS.MOUSE_MOVE: ActualController.HandleMouseMove(this, new OxyMouseEventArgs { Position = new ScreenPoint(prms.pos.X, prms.pos.Y), ModifierKeys = prms.alt_state.GetModifiers() }); break; case SciterXBehaviors.MOUSE_EVENTS.MOUSE_DCLICK: case SciterXBehaviors.MOUSE_EVENTS.MOUSE_DOWN: OxyMouseButton button = OxyMouseButton.None; switch (prms.button_state) { case (uint)SciterXBehaviors.MOUSE_BUTTONS.MAIN_MOUSE_BUTTON: button = OxyMouseButton.Left; break; case (uint)SciterXBehaviors.MOUSE_BUTTONS.PROP_MOUSE_BUTTON: button = OxyMouseButton.Right; break; case (uint)SciterXBehaviors.MOUSE_BUTTONS.MIDDLE_MOUSE_BUTTON: button = OxyMouseButton.Middle; break; } ActualController.HandleMouseDown(this, new OxyMouseDownEventArgs { ChangedButton = button, ClickCount = prms.cmd == SciterXBehaviors.MOUSE_EVENTS.MOUSE_DCLICK ? 2 : 1, Position = new ScreenPoint(prms.pos.X, prms.pos.Y), ModifierKeys = prms.alt_state.GetModifiers() }); break; case SciterXBehaviors.MOUSE_EVENTS.MOUSE_UP: ActualController.HandleMouseUp(this, new OxyMouseEventArgs { Position = new ScreenPoint(prms.pos.X, prms.pos.Y), ModifierKeys = prms.alt_state.GetModifiers() }); break; case SciterXBehaviors.MOUSE_EVENTS.MOUSE_WHEEL: ActualController.HandleMouseWheel(this, new OxyMouseWheelEventArgs { Delta = (prms.button_state == 1 ? 1 : -1) * SystemInformation.MouseWheelScrollDelta, Position = new ScreenPoint(prms.pos.X, prms.pos.Y), ModifierKeys = prms.alt_state.GetModifiers() }); break; } return(false); }