Ejemplo n.º 1
0
        /// <summary>
        /// Called on mouse move events.
        /// </summary>
        /// <param name="args">An instance that contains the event data.</param>
        protected override void OnMouseMoved(MouseMovedEventArgs args)
        {
            base.OnMouseMoved(args);
            if (args.Handled)
            {
                return;
            }

            if (ShowDynamicTooltips)
            {
                string tooltip = null;
                var    hitArgs = new HitTestArguments(new ScreenPoint(args.X, args.Y), MouseHitTolerance);
                foreach (var result in ActualModel.HitTest(hitArgs))
                {
                    var plotElement = result.Element as PlotElement;
                    if (plotElement != null && !String.IsNullOrEmpty(plotElement.ToolTip))
                    {
                        tooltip = String.IsNullOrEmpty(tooltip) ? plotElement.ToolTip : tooltip + Environment.NewLine + plotElement.ToolTip;
                    }
                }
                TooltipText = tooltip;
            }

            args.Handled = ActualController.HandleMouseMove(this,
                                                            args.ToOxyMouseEventArgs());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Invoked when an unhandled MouseMove 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.MouseEventArgs" /> that contains the event data.</param>
        protected override void OnPointerMoved(PointerEventArgs e)
        {
            base.OnPointerMoved(e);
            if (e.Handled)
            {
                return;
            }

            e.Handled = ActualController.HandleMouseMove(this, e.ToMouseEventArgs(this));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Invoked when an unhandled MouseMove 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.MouseEventArgs" /> that contains the event data.</param>
        protected override void OnPointerMoved(PointerEventArgs e)
        {
            base.OnPointerMoved(e);
            if (e.Handled)
            {
                return;
            }

            if (e.Pointer.Type == PointerType.Touch)
            {
                var point          = e.GetPosition(this).ToScreenPoint();
                var oldTouchPoints = TouchPositions.Values.ToArray();
                TouchPositions[e.Pointer.Id] = point;
                var newTouchPoints = TouchPositions.Values.ToArray();

                var touchEventArgs = new OxyTouchEventArgs(newTouchPoints, oldTouchPoints);

                e.Handled = ActualController.HandleTouchDelta(this, touchEventArgs);
            }
            else
            {
                e.Handled = ActualController.HandleMouseMove(this, e.ToMouseEventArgs(this));
            }
        }
Ejemplo n.º 4
0
        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);
        }