Esempio n. 1
0
 protected void RemoveAdorner(object sender, PointerEventArgs e)
 {
     if (this.adorner != null)
     {
         ((Panel)this.adorner.Parent).Children.Remove(this.adorner);
         this.adorner = null;
     }
 }
Esempio n. 2
0
        private void RootPointerMoved(object sender, PointerEventArgs e)
        {
            var modifiers = InputModifiers.Control | InputModifiers.Shift;

            if ((e.InputModifiers & modifiers) == modifiers)
            {
                var vm = (DevToolsViewModel)DataContext;
                vm.SelectControl((IControl)e.Source);
            }
        }
Esempio n. 3
0
        protected override void OnPointerMoved(PointerEventArgs e)
        {
            if (_lastPoint.HasValue)
            {
                var ev = new VectorEventArgs
                {
                    RoutedEvent = DragDeltaEvent,
                    Vector = e.GetPosition(this) - _lastPoint.Value,
                };

                RaiseEvent(ev);
            }
        }
Esempio n. 4
0
        protected void AddAdorner(object sender, PointerEventArgs e)
        {
            var node = (TreeNode)((Control)sender).DataContext;
            var layer = AdornerLayer.GetAdornerLayer(node.Control);

            if (layer != null)
            {
                this.adorner = new Rectangle
                {
                    Fill = new SolidColorBrush(0x80a0c5e8),
                    [AdornerLayer.AdornedElementProperty] = node.Control,
                };

                layer.Children.Add(this.adorner);
            }
        }
Esempio n. 5
0
 protected override void OnPointerMoved(PointerEventArgs e)
 {
     if (_presenter != null && e.Device.Captured == _presenter)
     {
         var point = e.GetPosition(_presenter);
         CaretIndex = SelectionEnd = _presenter.GetCaretIndex(point);
     }
 }
Esempio n. 6
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;
        }
Esempio n. 7
0
        private void ClearPointerOver(IPointerDevice device)
        {
            foreach (var control in this.pointerOvers.ToList())
            {
                PointerEventArgs e = new PointerEventArgs
                {
                    RoutedEvent = InputElement.PointerLeaveEvent,
                    Device = device,
                    OriginalSource = control,
                    Source = control,
                };

                this.pointerOvers.Remove(control);
                control.RaiseEvent(e);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Called before the <see cref="PointerMoved"/> event occurs.
 /// </summary>
 /// <param name="e">The event args.</param>
 protected virtual void OnPointerMoved(PointerEventArgs e)
 {
 }
Esempio n. 9
0
 /// <summary>
 /// Called before the <see cref="PointerEnter"/> event occurs.
 /// </summary>
 /// <param name="e">The event args.</param>
 protected virtual void OnPointerEnter(PointerEventArgs e)
 {
     IsPointerOver = true;
 }
Esempio n. 10
0
        /// <summary>
        /// Called when the pointer enters the <see cref="MenuItem"/>.
        /// </summary>
        /// <param name="e">The event args.</param>
        protected override void OnPointerEnter(PointerEventArgs e)
        {
            base.OnPointerEnter(e);

            var menu = this.Parent as Menu;

            if (menu != null)
            {
                if (menu.IsOpen)
                {
                    this.IsSubMenuOpen = true;
                }
            }
            else if (this.HasSubMenu && !this.IsSubMenuOpen)
            {
                this.submenuTimer = DispatcherTimer.Run(
                    () => this.IsSubMenuOpen = true,
                    TimeSpan.FromMilliseconds(400));
            }
        }
Esempio n. 11
0
        protected override void OnPointerReleased(PointerEventArgs e)
        {
            if (_lastPoint.HasValue)
            {
                e.Device.Capture(null);
                _lastPoint = null;

                var ev = new VectorEventArgs
                {
                    RoutedEvent = DragCompletedEvent,
                    Vector = (Vector)e.GetPosition(this),
                };

                RaiseEvent(ev);
            }
        }
Esempio n. 12
0
        /// <summary>
        /// Handle mouse double click to select word under the mouse.
        /// </summary>
        /// <param name="parent">the control hosting the html to set cursor and invalidate</param>
        /// <param name="e">mouse event args</param>
        public void HandleMouseDoubleClick(Control parent, PointerEventArgs e)
        {
            ArgChecker.AssertArgNotNull(parent, "parent");
            ArgChecker.AssertArgNotNull(e, "e");

            _htmlContainerInt.HandleMouseDoubleClick(new ControlAdapter(parent), Util.Convert(e.GetPosition(parent)));
        }
Esempio n. 13
0
        /// <summary>
        /// Handle mouse up to handle selection and link click.
        /// </summary>
        /// <param name="parent">the control hosting the html to invalidate</param>
        /// <param name="e">the mouse event args</param>
        public void HandleLeftMouseUp(Control parent, PointerEventArgs e)
        {
            ArgChecker.AssertArgNotNull(parent, "parent");
            ArgChecker.AssertArgNotNull(e, "e");

            var mouseEvent = new RMouseEvent(true);
            _htmlContainerInt.HandleMouseUp(new ControlAdapter(parent), Util.Convert(e.GetPosition(parent)), mouseEvent);
        }
Esempio n. 14
0
        private bool 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;
            }

            var e = new PointerEventArgs
            {
                Device = this,
                RoutedEvent = InputElement.PointerMovedEvent,
                Source = source,
                InputModifiers = inputModifiers
            };

            source.RaiseEvent(e);
            return e.Handled;
        }
Esempio n. 15
0
 protected override void OnPointerReleased(PointerEventArgs e)
 {
     if (_presenter != null && e.Device.Captured == _presenter)
     {
         e.Device.Capture(null);
     }
 }
Esempio n. 16
0
        /// <inheritdoc/>
        protected override void OnPointerReleased(PointerEventArgs e)
        {
            base.OnPointerReleased(e);

            e.Device.Capture(null);
            this.Classes.Remove(":pressed");
            e.Handled = true;

            if (this.ClickMode == ClickMode.Release && this.Classes.Contains(":pointerover"))
            {
                this.RaiseClickEvent();
            }
        }
Esempio n. 17
0
 protected override void OnPointerMoved(PointerEventArgs e)
 {
     if (e.Device.Captured == this.presenter)
     {
         var point = e.GetPosition(this.presenter);
         this.CaretIndex = this.SelectionEnd = this.presenter.GetCaretIndex(point);
     }
 }
Esempio n. 18
0
        /// <summary>
        /// Called when the pointer leaves the <see cref="MenuItem"/>.
        /// </summary>
        /// <param name="e">The event args.</param>
        protected override void OnPointerLeave(PointerEventArgs e)
        {
            base.OnPointerLeave(e);

            if (this.submenuTimer != null)
            {
                this.submenuTimer.Dispose();
                this.submenuTimer = null;
            }
        }
Esempio n. 19
0
        /// <summary>
        /// Called when the pointer leaves a control with an attached tooltip.
        /// </summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event args.</param>
        private static void ControlPointerLeave(object sender, PointerEventArgs e)
        {
            var control = (Control)sender;

            if (control == current)
            {
                if (popup != null && popup.IsVisible)
                {
                    popup.Hide();
                }

                show.OnNext(null);
            }
        }
Esempio n. 20
0
 /// <summary>
 /// Called when the pointer enters a control with an attached tooltip.
 /// </summary>
 /// <param name="sender">The event sender.</param>
 /// <param name="e">The event args.</param>
 private static void ControlPointerEnter(object sender, PointerEventArgs e)
 {
     current = (Control)sender;
     show.OnNext(current);
 }
Esempio n. 21
0
 /// <summary>
 /// Handles pointer presses in the window.
 /// </summary>
 /// <param name="sender">The event sender.</param>
 /// <param name="e">The event args.</param>
 protected virtual void OnPreviewPointerPressed(object sender, PointerEventArgs e)
 {
     if (this.showingAccessKeys)
     {
         this.owner.ShowAccessKeys = false;
     }
 }
Esempio n. 22
0
 /// <summary>
 /// Called before the <see cref="PointerLeave"/> event occurs.
 /// </summary>
 /// <param name="e">The event args.</param>
 protected virtual void OnPointerLeave(PointerEventArgs e)
 {
     IsPointerOver = false;
 }
Esempio n. 23
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;
        }
Esempio n. 24
0
 /// <summary>
 /// Called before the <see cref="PointerReleased"/> event occurs.
 /// </summary>
 /// <param name="e">The event args.</param>
 protected virtual void OnPointerReleased(PointerEventArgs e)
 {
 }
Esempio n. 25
0
        private void SetPointerOver(IPointerDevice device, IInputElement element, Point p)
        {
            IEnumerable<IInputElement> hits = element.GetInputElementsAt(p);

            foreach (var control in this.pointerOvers.Except(hits).ToList())
            {
                PointerEventArgs e = new PointerEventArgs
                {
                    RoutedEvent = InputElement.PointerLeaveEvent,
                    Device = device,
                    OriginalSource = control,
                    Source = control,
                };

                this.pointerOvers.Remove(control);
                control.RaiseEvent(e);
            }

            foreach (var control in hits.Except(this.pointerOvers))
            {
                PointerEventArgs e = new PointerEventArgs
                {
                    RoutedEvent = InputElement.PointerEnterEvent,
                    Device = device,
                    OriginalSource = control,
                    Source = control,
                };

                this.pointerOvers.Add(control);
                control.RaiseEvent(e);
            }
        }