Esempio n. 1
0
 private void ClearTimer()
 {
     if (_hoverTimer != null)
     {
         _hoverTimer.Dispose();
         _hoverTimer = null;
     }
 }
Esempio n. 2
0
        private void HoverExpand(object sender, EventArgs args)
        {
            HoverTimer timer = (HoverTimer)sender;

            if (timer.Node != null)
            {
                timer.Node.Expand();
            }
            timer.Enabled = false;
        }
Esempio n. 3
0
        protected override void OnDragOver(DragEventArgs args)
        {
            base.OnDragOver(args);
            HoverAction newAction;
            TreeNode    newNode    = null;
            Point       localPoint = PointToClient(new Point(args.X, args.Y));

            if (localPoint.Y < HoverScrollMargin)
            {
                newAction = HoverAction.ScrollUp;
            }
            else if (localPoint.Y > (ClientSize.Height - HoverScrollMargin))
            {
                newAction = HoverAction.ScrollDown;
            }
            else
            {
                newAction = HoverAction.OverNode;
                newNode   = GetNodeAt(localPoint.X, localPoint.Y);
            }

            if (_hoverTimer != null)
            {
                if ((_hoverTimer.Action != newAction) || (_hoverTimer.Node != newNode))
                {
                    ClearTimer();
                }
                else
                {
                    return;                             // do not reset the timer if nothing has changed
                }
            }

            if ((newAction != HoverAction.OverNode) || (newNode != null))
            {
                _hoverTimer = new HoverTimer(newAction, newNode);
                switch (newAction)
                {
                case HoverAction.OverNode:
                    _hoverTimer.Interval = DragOverInterval;
                    _hoverTimer.Tick    += new EventHandler(HoverExpand);
                    break;

                case HoverAction.ScrollUp:
                case HoverAction.ScrollDown:
                    _hoverTimer.Interval = HoverScrollInterval;
                    _hoverTimer.Tick    += new EventHandler(HoverScroll);
                    break;
                }
                _hoverTimer.Enabled = true;
            }
        }
Esempio n. 4
0
        private void HoverScroll(object sender, EventArgs args)
        {
            HoverTimer timer = (HoverTimer)sender;

            if (timer.Action == HoverAction.ScrollUp)
            {
                ScrollTree(-2);
            }
            else
            {
                ScrollTree(2);
            }
        }