Exemple #1
0
        void _ResetCursor()
        {
            ChartMouseMethod mouseMethod = MouseMethod;

            if (Helper.TestModifierKeys(Keys.Shift))
            {
                if (mouseMethod == ChartMouseMethod.Select)
                {
                    mouseMethod = ChartMouseMethod.Scroll;
                }
            }

            Cursor cur;

            if (!FormatPainter.Default.IsEmpty)
            {
                cur = StyleBrushCursor;
            }
            else if (mouseMethod == ChartMouseMethod.Scroll)
            {
                cur = ScrollCursor;
            }
            else
            {
                if (HoverObject.Widget != null && HoverObject.Widget.Cursor != null)
                {
                    cur = HoverObject.Widget.Cursor;
                }
                else
                {
                    cur = Cursors.Default;
                }
            }

            if (cur != Cursor)
            {
                Cursor = cur;
            }
        }
Exemple #2
0
        protected override void OnChartMouseMove(MouseEventArgs e)
        {
            base.OnChartMouseMove(e);

            // if the Shift is press, maybe is hover hyperlink, or reverse MouseMethod
            ChartMouseMethod mouseMethod = MouseMethod;

            if (Helper.TestModifierKeys(Keys.Shift))
            {
                if (mouseMethod == ChartMouseMethod.Select)
                {
                    mouseMethod = ChartMouseMethod.Scroll;
                }
            }

            if (MouseState == ChartMouseState.Drag)
            {
                CurrentDragMethod = Helper.TestModifierKeys(Keys.Control) ? DragTopicsMethod.Copy : DragTopicsMethod.Move;
                //bool canDrop = TestDrop(PressObject.Topic, HitTest(e.X, e.Y).Topic);
                //ShowDragBox(PressObject.Topic, e.X, e.Y, canDrop);
                bool canDrag = TestDragDrop(DragBox.Topics, HitTest(e.X, e.Y).Topic, CurrentDragMethod);
                ShowDragBox(DragBox.Topics, e.X, e.Y, canDrag, CurrentDragMethod);
            }
            else if (mouseMethod == ChartMouseMethod.Scroll)
            {
                if (MouseMethod == mouseMethod)
                {
                    MouseState = ChartMouseState.Scroll;
                }

                if (e.Button == MouseButtons.Left)
                {
                    Scroll(LastMousePos.X - e.X, LastMousePos.Y - e.Y);
                    LastMousePos.X = e.X;
                    LastMousePos.Y = e.Y;
                }
            }
            else if (IsMouseDown)
            {
                if (PressObject.IsEmpty) // select
                {
                    if (e.Button == MouseButtons.Left)
                    {
                        MouseState = ChartMouseState.Select;
                    }
                }
                else if (MouseState != ChartMouseState.Drag)
                {
                    // test drag
                    if (Math.Abs(MouseDownPos.X - e.X) > SystemInformation.DragSize.Width ||
                        Math.Abs(MouseDownPos.Y - e.Y) > SystemInformation.DragSize.Height)
                    {
                        DragBox.Start(MouseDownPos, SelectedTopics);
                        MouseState = ChartMouseState.Drag;
                    }
                }
            }

            if (!EditMode && MouseState == ChartMouseState.Normal)
            {
                HoverObject = HitTest(e.X, e.Y);
            }

            _ResetCursor();
        }
Exemple #3
0
        protected override void OnChartMouseDown(MouseEventArgs e)
        {
            base.OnChartMouseDown(e);

            if (!ChartBox.Focused)
            {
                ChartBox.Focus();
            }

            IsMouseDown  = true;
            MouseDownPos = new Point(e.X, e.Y);
            PressObject  = HitTest(e.X, e.Y);
            LastMousePos = MouseDownPos;

            if (EditMode)
            {
                EndEdit(true);
            }

            ToolTipLayer.HideAllToolTips();

            // if the Shift is press, maybe is hover hyperlink, or reverse MouseMethod
            ChartMouseMethod mouseMethod = MouseMethod;

            if (Helper.TestModifierKeys(Keys.Shift))
            {
                if (mouseMethod == ChartMouseMethod.Select)
                {
                    mouseMethod = ChartMouseMethod.Scroll;
                }
            }

            //
            if (mouseMethod == ChartMouseMethod.Scroll)
            {
                _ResetCursor();
            }
            else if (mouseMethod == ChartMouseMethod.Select)
            {
                if (PressObject.Topic != null)
                {
                    if (PressObject.IsFoldingButton)
                    {
                        PressObject.Topic.Toggle();
                    }
                    else if (PressObject.Widget != null)
                    {
                        if (!PressObject.Widget.Selected)
                        {
                            Select(PressObject.Widget, !Helper.TestModifierKeys(Keys.Control));
                        }
                        else if (Helper.TestModifierKeys(Keys.Control))
                        {
                            Unselect(PressObject.Widget);
                        }
                    }
                    else
                    {
                        if (!PressObject.Topic.Selected)
                        {
                            Select(PressObject.Topic, !Helper.TestModifierKeys(Keys.Control));
                            //SelectTopic(PressObject.Topic, !Helper.TestModifierKeys(Keys.Control));
                        }
                        else if (Helper.TestModifierKeys(Keys.Control))
                        {
                            Unselect(PressObject.Topic);
                        }
                    }
                }
                else if (e.Button == MouseButtons.Left)
                {
                    if (!Helper.TestModifierKeys(Keys.Control))
                    {
                        ClearSelection();
                    }
                    EnterSelectMode();
                }
            }
        }