コード例 #1
0
ファイル: TreeChartBox.cs プロジェクト: fire-eggs/GEDKeeper
        protected override void OnMouseDown(MouseEventArgs e)
        {
            fMouseX = e.X;
            fMouseY = e.Y;

            switch (fMode)
            {
            case ChartControlMode.ccmDefault:
                var mAct = GetMouseAction(e, MouseEvent.meDown);

                switch (mAct.Action)
                {
                case MouseAction.maSelect:
                    SelectBy(mAct.Person, true);
                    break;

                case MouseAction.maDrag:
                    Cursor = Cursors.SizeAll;
                    fMode  = ChartControlMode.ccmDragImage;
                    break;
                }
                break;

            case ChartControlMode.ccmDragImage:
                break;

            case ChartControlMode.ccmControlsVisible:
                fTreeControls.MouseDown(e.X, e.Y);
                break;
            }

            base.OnMouseDown(e);
        }
コード例 #2
0
ファイル: TreeChartBox.cs プロジェクト: m-kosina/GEDKeeper
        protected override void OnMouseMove(MouseEventArgs e)
        {
            switch (fMode)
            {
            case ChartControlMode.Default:
                TreeChartPerson mPers;
                MouseAction     mAct = GetMouseAction(e, MouseEvent.meMove, out mPers);

                if (mAct == MouseAction.Highlight)
                {
                    SetHighlight(mPers);
                }
                else
                {
                    SetHighlight(null);

                    ITreeControl ctl = fTreeControls.Contains(e.X, e.Y);

                    if (ctl != null)
                    {
                        fMode = ChartControlMode.ControlsVisible;
                        ctl.UpdateState();
                        ctl.Visible = true;
                        ctl.MouseMove(e.X, e.Y);
                        fActiveControl = ctl;

                        fToolTip.Show(ctl.Tip, this, e.X + Left, e.Y + Top, 1500);
                    }
                }
                break;

            case ChartControlMode.DragImage:
                Point pt = e.Location;
                AdjustScroll(-(pt.X - fMouseX), -(pt.Y - fMouseY));
                fMouseX = pt.X;
                fMouseY = pt.Y;
                break;

            case ChartControlMode.ControlsVisible:
                if (fActiveControl != null)
                {
                    if (!(fActiveControl.Contains(e.X, e.Y) || fActiveControl.MouseCaptured))
                    {
                        fMode = ChartControlMode.Default;
                        fActiveControl.Visible = false;
                        fToolTip.Hide(this);
                        fActiveControl = null;
                    }
                    else
                    {
                        fActiveControl.MouseMove(e.X, e.Y);
                    }
                }
                break;
            }

            base.OnMouseMove(e);
        }
コード例 #3
0
ファイル: TreeChartBox.cs プロジェクト: fire-eggs/GEDKeeper
        protected override void OnMouseMove(MouseEventArgs e)
        {
            switch (fMode)
            {
            case ChartControlMode.ccmDefault:
                var mAct = GetMouseAction(e, MouseEvent.meMove);

                if (mAct.Action == MouseAction.maHighlight)
                {
                    SetHighlight(mAct.Person);
                }
                else
                {
                    SetHighlight(null);

                    ITreeControl ctl = fTreeControls.Contains(e.X, e.Y);

                    if (ctl != null)
                    {
                        fMode       = ChartControlMode.ccmControlsVisible;
                        ctl.Visible = true;
                        ctl.MouseMove(e.X, e.Y);
                        fActiveControl = ctl;

                        var pt = new Point(e.X + Left, e.Y + Top);
                        fToolTip.Show(ctl.Tip, this, pt, 1500);
                    }
                }
                break;

            case ChartControlMode.ccmDragImage:
                AdjustScroll(-(e.X - fMouseX), -(e.Y - fMouseY));
                fMouseX = e.X;
                fMouseY = e.Y;
                break;

            case ChartControlMode.ccmControlsVisible:
                if (fActiveControl != null)
                {
                    if (!(fActiveControl.Contains(e.X, e.Y) || fActiveControl.MouseCaptured))
                    {
                        fMode = ChartControlMode.ccmDefault;
                        fActiveControl.Visible = false;
                        fToolTip.Hide(this);
                        fActiveControl = null;
                    }
                    else
                    {
                        fActiveControl.MouseMove(e.X, e.Y);
                    }
                }
                break;
            }

            base.OnMouseMove(e);
        }
コード例 #4
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            Point scrPt = GetScrollRelativeLocation(e.Location);

            switch (fMode)
            {
            case ChartControlMode.ccmDefault:
                TreeChartPerson mPers;
                MouseAction     mAct = GetMouseAction(e, MouseEvent.meUp, out mPers);

                switch (mAct)
                {
                case MouseAction.maNone:
                    break;

                case MouseAction.maProperties:
                    SelectBy(mPers, false);
                    if (fSelected == mPers && fSelected.Rec != null)
                    {
                        DoPersonProperties(new MouseEventArgs(e.Buttons, Keys.None, e.Location));
                    }
                    break;

                case MouseAction.maExpand:
                    DoRootChanged(mPers);
                    GenChart(mPers.Rec, TreeChartKind.ckBoth, true);
                    break;

                case MouseAction.maPersonExpand:
                    ToggleCollapse(mPers);
                    break;

                case MouseAction.maInfo:
                    DoInfoRequest(mPers);
                    break;
                }
                break;

            case ChartControlMode.ccmDragImage:
                Cursor = Cursors.Default;
                fMode  = ChartControlMode.ccmDefault;
                break;

            case ChartControlMode.ccmControlsVisible:
                fTreeControls.MouseUp(scrPt.X, scrPt.Y);
                break;
            }

            e.Handled = true;
            base.OnMouseUp(e);
        }
コード例 #5
0
ファイル: TreeChartBox.cs プロジェクト: m-kosina/GEDKeeper
        protected override void OnMouseUp(MouseEventArgs e)
        {
            switch (fMode)
            {
            case ChartControlMode.Default:
                TreeChartPerson mPers;
                MouseAction     mAct = GetMouseAction(e, MouseEvent.meUp, out mPers);

                switch (mAct)
                {
                case MouseAction.None:
                    break;

                case MouseAction.Properties:
                    SelectBy(mPers, false);
                    if (fSelected == mPers && fSelected.Rec != null)
                    {
                        DoPersonProperties(new MouseEventArgs(e.Button, 1, e.X, e.Y, 0));
                    }
                    break;

                case MouseAction.Expand:
                    DoRootChanged(mPers);
                    GenChart(mPers.Rec, TreeChartKind.ckBoth, true);
                    break;

                case MouseAction.PersonExpand:
                    ToggleCollapse(mPers);
                    break;

                case MouseAction.Info:
                    DoInfoRequest(mPers);
                    break;
                }
                break;

            case ChartControlMode.DragImage:
                Cursor = Cursors.Default;
                fMode  = ChartControlMode.Default;
                break;

            case ChartControlMode.ControlsVisible:
                fTreeControls.MouseUp(e.X, e.Y);
                break;
            }

            base.OnMouseUp(e);
        }
コード例 #6
0
ファイル: TreeChartBox.cs プロジェクト: PQYPLZXHGF/GEDKeeper
        protected override void OnMouseUp(MouseEventArgs e)
        {
            switch (fMode)
            {
            case ChartControlMode.ccmDefault:
                var mAct = GetMouseAction(e, MouseEvent.meUp);

                switch (mAct.Action)
                {
                case MouseAction.maNone:
                    break;

                case MouseAction.maProperties:
                    SelectBy(mAct.Person, false);
                    if (fSelected == mAct.Person && fSelected.Rec != null)
                    {
                        DoPersonProperties(new MouseEventArgs(e.Button, 1, e.X, e.Y, 0));
                    }
                    break;

                case MouseAction.maExpand:
                    DoRootChanged(mAct.Person);
                    GenChart(mAct.Person.Rec, TreeChartKind.ckBoth, true);
                    break;

                case MouseAction.maPersonExpand:
                    ToggleCollapse(mAct.Person);
                    break;
                }
                break;

            case ChartControlMode.ccmDragImage:
                Cursor = Cursors.Default;
                fMode  = ChartControlMode.ccmDefault;
                break;

            case ChartControlMode.ccmControlsVisible:
                fTreeControls.MouseUp(e.X, e.Y);
                break;
            }

            base.OnMouseUp(e);
        }
コード例 #7
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            Point pt = new Point(e.Location);

            fMouseX = pt.X;
            fMouseY = pt.Y;

            Point scrPt = GetScrollRelativeLocation(e.Location);

            switch (fMode)
            {
            case ChartControlMode.ccmDefault:
                TreeChartPerson mPers;
                MouseAction     mAct = GetMouseAction(e, MouseEvent.meDown, out mPers);

                switch (mAct)
                {
                case MouseAction.maSelect:
                    SelectBy(mPers, true);
                    break;

                case MouseAction.maDrag:
                    Cursor = Cursors.Move;         // SizeAll;
                    fMode  = ChartControlMode.ccmDragImage;
                    break;
                }
                break;

            case ChartControlMode.ccmDragImage:
                break;

            case ChartControlMode.ccmControlsVisible:
                fTreeControls.MouseDown(scrPt.X, scrPt.Y);
                break;
            }

            e.Handled = true;
            base.OnMouseDown(e);
        }
コード例 #8
0
ファイル: TreeChartBox.cs プロジェクト: m-kosina/GEDKeeper
        protected override void OnMouseDown(MouseEventArgs e)
        {
            Point pt = e.Location;

            fMouseX = pt.X;
            fMouseY = pt.Y;

            switch (fMode)
            {
            case ChartControlMode.Default:
                TreeChartPerson mPers;
                MouseAction     mAct = GetMouseAction(e, MouseEvent.meDown, out mPers);

                switch (mAct)
                {
                case MouseAction.Select:
                    SelectBy(mPers, true);
                    break;

                case MouseAction.Drag:
                    Cursor = Cursors.SizeAll;
                    fMode  = ChartControlMode.DragImage;
                    break;
                }
                break;

            case ChartControlMode.DragImage:
                break;

            case ChartControlMode.ControlsVisible:
                fTreeControls.MouseDown(pt.X, pt.Y);
                break;
            }

            base.OnMouseDown(e);
        }
コード例 #9
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            //Point ctPt = new Point((int)e.Location.X, (int)e.Location.Y);
            Point scrPt = GetScrollRelativeLocation(e.Location);

            switch (fMode)
            {
            case ChartControlMode.ccmDefault:
                TreeChartPerson mPers;
                MouseAction     mAct = GetMouseAction(e, MouseEvent.meMove, out mPers);

                if (mAct == MouseAction.maHighlight)
                {
                    SetHighlight(mPers);
                }
                else
                {
                    SetHighlight(null);

                    ITreeControl ctl = fTreeControls.Contains(scrPt.X, scrPt.Y);

                    if (ctl != null)
                    {
                        fMode       = ChartControlMode.ccmControlsVisible;
                        ctl.Visible = true;
                        ctl.MouseMove(scrPt.X, scrPt.Y);
                        fActiveControl = ctl;

                        //pt = new Point(pt.X + Left, pt.Y + Top);
                        //fToolTip.Show(ctl.Tip, this, pt, 1500);
                        ToolTip = ctl.Tip;
                    }
                }
                break;

            case ChartControlMode.ccmDragImage:
                Point pt = new Point(e.Location);
                AdjustScroll(-(pt.X - fMouseX), -(pt.Y - fMouseY));
                fMouseX = pt.X;
                fMouseY = pt.Y;
                break;

            case ChartControlMode.ccmControlsVisible:
                if (fActiveControl != null)
                {
                    if (!(fActiveControl.Contains(scrPt.X, scrPt.Y) || fActiveControl.MouseCaptured))
                    {
                        fMode = ChartControlMode.ccmDefault;
                        fActiveControl.Visible = false;
                        //fToolTip.Hide(this);
                        ToolTip        = "";
                        fActiveControl = null;
                    }
                    else
                    {
                        fActiveControl.MouseMove(scrPt.X, scrPt.Y);
                    }
                }
                break;
            }

            e.Handled = true;
            base.OnMouseMove(e);
        }