コード例 #1
0
ファイル: MindMapView.Mouse.cs プロジェクト: yfarm/Blumind
        //protected void DropTo(Topic topic, Topic target)
        //{
        //    if (topic != null && target != null)
        //    {
        //        topic.ParentTopic = target;
        //    }
        //}

        void CancelDrag()
        {
            if (MouseState == ChartMouseState.Drag)
            {
                HideDragBox();
                MouseState  = ChartMouseState.Normal;
                PressObject = HitTestResult.Empty;
                Cursor      = Cursors.Default;
            }
        }
コード例 #2
0
ファイル: MindMapView.Mouse.cs プロジェクト: yfarm/Blumind
        protected override void OnChartMouseUp(MouseEventArgs e)
        {
            base.OnChartMouseUp(e);

            ProcessChartMouseUp(e);

            MouseState   = ChartMouseState.Normal;
            IsMouseDown  = false;
            MouseDownPos = Point.Empty;
            PressObject  = HitTestResult.Empty;
            _ResetCursor();
        }
コード例 #3
0
ファイル: MindMapView.Mouse.cs プロジェクト: yfarm/Blumind
        protected override void OnMouseMethodChanged()
        {
            base.OnMouseMethodChanged();

            switch (MouseMethod)
            {
            case ChartMouseMethod.Scroll:
                MouseState = ChartMouseState.Scroll;
                break;

            case ChartMouseMethod.Select:
                MouseState = ChartMouseState.Select;
                break;
            }
        }
コード例 #4
0
ファイル: MindMapView.Mouse.cs プロジェクト: yfarm/Blumind
        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();
        }