Пример #1
0
 public RawMouseWheelEventArgs(
     IInputDevice device,
     uint timestamp,
     IInputRoot root,
     Point position,
     Vector delta, ModifierKeys modifierKeys)
     : base(device, timestamp, root, RawMouseEventType.Wheel, position, modifierKeys)
 {
     Delta = delta;
 }
        /// <summary>
        /// Sets the owner of the keyboard navigation handler.
        /// </summary>
        /// <param name="owner">The owner.</param>
        /// <remarks>
        /// This method can only be called once, typically by the owner itself on creation.
        /// </remarks>
        public void SetOwner(IInputRoot owner)
        {
            Contract.Requires<ArgumentNullException>(owner != null);

            if (_owner != null)
            {
                throw new InvalidOperationException("AccessKeyHandler owner has already been set.");
            }

            _owner = owner;

            _owner.AddHandler(InputElement.KeyDownEvent, OnKeyDown);
        }
Пример #3
0
        /// <summary>
        /// Sets the owner of the access key handler.
        /// </summary>
        /// <param name="owner">The owner.</param>
        /// <remarks>
        /// This method can only be called once, typically by the owner itself on creation.
        /// </remarks>
        public void SetOwner(IInputRoot owner)
        {
            Contract.Requires<ArgumentNullException>(owner != null);

            if (_owner != null)
            {
                throw new InvalidOperationException("AccessKeyHandler owner has already been set.");
            }

            _owner = owner;

            _owner.AddHandler(InputElement.KeyDownEvent, OnPreviewKeyDown, RoutingStrategies.Tunnel);
            _owner.AddHandler(InputElement.KeyDownEvent, OnKeyDown, RoutingStrategies.Bubble);
            _owner.AddHandler(InputElement.KeyUpEvent, OnPreviewKeyUp, RoutingStrategies.Tunnel);
            _owner.AddHandler(InputElement.PointerPressedEvent, OnPreviewPointerPressed, RoutingStrategies.Tunnel);
        }
Пример #4
0
        public RawMouseEventArgs(
            IInputDevice device,
            uint timestamp,
            IInputRoot root,
            RawMouseEventType type,
            Point position, InputModifiers inputModifiers)
            : base(device, timestamp)
        {
            Contract.Requires<ArgumentNullException>(device != null);
            Contract.Requires<ArgumentNullException>(root != null);

            Root = root;
            Position = position;
            Type = type;
            InputModifiers = inputModifiers;
        }
Пример #5
0
 public void SetInputRoot(IInputRoot inputRoot)
 {
     _owner = inputRoot;
 }
Пример #6
0
 public void SetInputRoot(IInputRoot inputRoot)
 {
     InputRoot = inputRoot;
 }
Пример #7
0
        private IInputElement SetPointerOver(IPointerDevice device, IInputRoot root, IList<IInputElement> elements)
        {
            foreach (var control in _pointerOvers.Except(elements).ToList())
            {
                PointerEventArgs e = new PointerEventArgs
                {
                    RoutedEvent = InputElement.PointerLeaveEvent,
                    Device = device,
                    Source = control,
                };

                _pointerOvers.Remove(control);
                control.RaiseEvent(e);
            }

            foreach (var control in elements.Except(_pointerOvers))
            {
                PointerEventArgs e = new PointerEventArgs
                {
                    RoutedEvent = InputElement.PointerEnterEvent,
                    Device = device,
                    Source = control,
                };

                _pointerOvers.Add(control);
                control.RaiseEvent(e);
            }

            root.PointerOverElement = elements.FirstOrDefault() ?? root;
            return root.PointerOverElement;
        }
Пример #8
0
 public void SetInputRoot(IInputRoot inputRoot) => _inputRoot = inputRoot;
Пример #9
0
        private void MouseUp(IMouseDevice device, IInputRoot root, Point p, MouseButton button, InputModifiers inputModifiers)
        {
            var hit = HitTest(root, p);

            if (hit != null)
            {
                IInteractive source = GetSource(hit);

                if (source != null)
                {
                    source.RaiseEvent(new PointerReleasedEventArgs
                    {
                        Device = this,
                        RoutedEvent = InputElement.PointerReleasedEvent,
                        Source = source,
                        MouseButton = button,
                        InputModifiers = inputModifiers
                    });
                }
            }
        }
Пример #10
0
        private void ClearPointerOver(IPointerDevice device, IInputRoot root)
        {
            foreach (var control in _pointerOvers.ToList())
            {
                PointerEventArgs e = new PointerEventArgs
                {
                    RoutedEvent = InputElement.PointerLeaveEvent,
                    Device = device,
                    Source = control,
                };

                _pointerOvers.Remove(control);
                control.RaiseEvent(e);
            }

            root.PointerOverElement = null;
        }
Пример #11
0
 public void SetInputRoot(IInputRoot inputRoot) => _inputRoot = inputRoot;
Пример #12
0
        private bool MouseUp(IMouseDevice device, IInputRoot root, Point p, MouseButton button, InputModifiers inputModifiers)
        {
            var hit = HitTest(root, p);

            if (hit != null)
            {
                var source = GetSource(hit);
                var e = new PointerReleasedEventArgs
                {
                    Device = this,
                    RoutedEvent = InputElement.PointerReleasedEvent,
                    Source = source,
                    MouseButton = button,
                    InputModifiers = inputModifiers
                };

                source?.RaiseEvent(e);
                return e.Handled;
            }

            return false;
        }
Пример #13
0
 private void LeaveWindow(IMouseDevice device, IInputRoot root)
 {
     ClearPointerOver(this, root);
 }
Пример #14
0
 public void SetInputRoot(IInputRoot inputRoot)
 {
     _owner = inputRoot;
 }
Пример #15
0
        private IInputElement SetPointerOver(IPointerDevice device, IInputRoot root, Point p)
        {
            var elements = root.GetInputElementsAt(p).ToList();

            return(SetPointerOver(device, root, elements));
        }
Пример #16
0
 private DragDropEffects DragEnter(IInputRoot inputRoot, Point point, IDataObject data, DragDropEffects effects, KeyModifiers modifiers)
 {
     _lastTarget = GetTarget(inputRoot, point);
     return(RaiseDragEvent(_lastTarget, inputRoot, point, DragDrop.DragEnterEvent, effects, data, modifiers));
 }
Пример #17
0
 public void SetInputRoot(IInputRoot inputRoot)
 {
 }
Пример #18
0
 private void LeaveWindow(IMouseDevice device, IInputRoot root)
 {
     ClearPointerOver(this, root);
 }
Пример #19
0
        private bool MouseWheel(IMouseDevice device, IInputRoot root, Point p, Vector delta, InputModifiers inputModifiers)
        {
            var hit = HitTest(root, p);

            if (hit != null)
            {
                var source = GetSource(hit);
                var e = new PointerWheelEventArgs
                {
                    Device = this,
                    RoutedEvent = InputElement.PointerWheelChangedEvent,
                    Source = source,
                    Delta = delta,
                    InputModifiers = inputModifiers
                };

                source?.RaiseEvent(e);
                return e.Handled;
            }

            return false;
        }
Пример #20
0
        private void MouseMove(IMouseDevice device, IInputRoot root, Point p, InputModifiers inputModifiers)
        {
            IInputElement source;

            if (Captured == null)
            {
                source = SetPointerOver(this, root, p);
            }
            else
            {
                var elements = Captured.GetSelfAndVisualAncestors().OfType<IInputElement>().ToList();
                SetPointerOver(this, root, elements);
                source = Captured;
            }

            source.RaiseEvent(new PointerEventArgs
            {
                Device = this,
                RoutedEvent = InputElement.PointerMovedEvent,
                Source = source,
                InputModifiers = inputModifiers
            });
        }
Пример #21
0
 void ITopLevelImpl.SetInputRoot(IInputRoot inputRoot)
 {
     base.SetInputRoot(inputRoot);
     _keyboardHelper.UpdateKeyboardState(inputRoot);
 }
Пример #22
0
        private void MouseWheel(IMouseDevice device, IInputRoot root, Point p, Vector delta, InputModifiers inputModifiers)
        {
            var hit = HitTest(root, p);

            if (hit != null)
            {
                IInteractive source = GetSource(hit);

                if (source != null)
                {
                    source.RaiseEvent(new PointerWheelEventArgs
                    {
                        Device = this,
                        RoutedEvent = InputElement.PointerWheelChangedEvent,
                        Source = source,
                        Delta = delta,
                        InputModifiers = inputModifiers
                    });
                }
            }
        }
Пример #23
0
 public void SetInputRoot(IInputRoot inputRoot) => _tl.SetInputRoot(inputRoot);
Пример #24
0
 private IInputElement SetPointerOver(IPointerDevice device, IInputRoot root, Point p)
 {
     var elements = root.GetInputElementsAt(p).ToList();
     return SetPointerOver(device, root, elements);
 }
Пример #25
0
 public void SetInputRoot(IInputRoot inputRoot)
 {
     InputRoot = inputRoot;
 }
Пример #26
0
 public void SetInputRoot(IInputRoot inputRoot) => _tl.SetInputRoot(inputRoot);
Пример #27
0
 public void SetInputRoot(IInputRoot inputRoot)
 {
     _owner = inputRoot;
     CreateDropTarget();
 }
Пример #28
0
 void ITopLevelImpl.SetInputRoot(IInputRoot inputRoot) => _inputRoot = inputRoot;
Пример #29
0
 public void SetInputRoot(IInputRoot inputRoot)
 {
     InputRoot = inputRoot;
     _inputBackend.SetInputRoot(inputRoot);
 }