Example #1
0
        public override void OnEvent(EventContext EventCtx)
        {
            StateManager.StateResult StateRet = m_StateMgr.OnEvent(EventCtx);

            if (StateManager.StateResult.eDone == StateRet)
                PtApp.Get().CmdResolver.OnDone();
        }
        protected override EventResult OnMouseMove(EventContext Context)
        {
            Debug.Assert(Context != null);
            if (null == Context) return EventResult.eContinue;

            DMStateCommand cmd = m_ParentState.CommandExeCtx.Command as DMStateCommand;

            if (cmd != null)
                cmd.UpdateGraphics(Context.MouseWorldPoint);

            PtApp.GetActiveView().UpdateView();

            //SnapContext snapCtx = new SnapContext();
            //snapCtx.InitalizeSnapContext(Context.m_MousePoint);

            //SnapMatcher macher = new SnapMatcher(snapCtx);
            //PositionIntent itent = new PositionIntent();
            //macher.Match(Context.m_MousePoint, itent);

            //if (itent.IsValid())
            //    SetCursorShape(itent.GetCursorShape());
            //else
            //    SetCursorShape("Drawing.cur");

            return EventResult.eContinue;
        }
        public override void MouseWheel(EventContext Ctx)
        {
            Debug.Assert(Ctx != null);
            if (null == Ctx) return;

            int Delta = Ctx.Delta;
            if (0 == Delta) return;

            double dScale = 0;
            double mouseSpace = 120;
            if(Delta > 0) // Zoom in
            {
                dScale = 1 / (1 + (Delta / mouseSpace) * 0.2);
            }
            else // Delta < 0, Zoom out
            {
                dScale = 1 + (-Delta / mouseSpace) * 0.2;
            }

            double newDeviceToWorldScale = m_DeviceToWorld.GetAllScaling() / dScale;
            double minScale = PtApp.ActiveDocument.DataScheme.MinZoomScale;
            double maxScale = PtApp.ActiveDocument.DataScheme.MaxZoomScale;

            if (newDeviceToWorldScale < minScale)
                newDeviceToWorldScale = minScale;
            if (newDeviceToWorldScale > maxScale)
                newDeviceToWorldScale = maxScale;

            m_DeviceToWorld.SetScaling(newDeviceToWorldScale, Ctx.MouseWorldPoint);

            PtApp.ActiveView.UpdateView();
        }
 protected override EventResult OnMouseMove(EventContext Context)
 {
     SpacePointSelectState state = m_ParentState as SpacePointSelectState;
     if (state != null)
     {
         GePoint point = Context.MouseWorldPoint;
         state.OnMouseMove(point);
     }
     return EventResult.eContinue;
 }
 protected override EventResult OnLeftDoubleClick(EventContext Context)
 {
     SpacePointSelectState state = m_ParentState as SpacePointSelectState;
     if(state != null)
     {
         GePoint point = Context.MouseWorldPoint;
         state.OnLeftDoubleClick(point);
     }
     return EventResult.eDone;
 }
        protected override EventResult OnLeftDoubleClick(EventContext Context)
        {
            m_MousePoint = Context.MouseWorldPoint;

            DMStateCommand cmd = m_ParentState.CommandExeCtx.Command as DMStateCommand;

            if (cmd != null)
                cmd.ShowDialog();

            return EventResult.eDone;
        }
        public override void Drag(EventContext Ctx)
        {
            GePoint CurrentPoint = Ctx.MouseWorldPoint;

            Vector distance = CurrentPoint - m_DragLastPoint;
            m_Instance.MovePoints(distance, -1);

            m_DragLastPoint = (GePoint)CurrentPoint.Clone();

            m_Instance.Compute();
            UpdateView();
        }
        public override void Drag(EventContext Ctx)
        {
            Debug.Assert(Ctx != null);
            if (null == Ctx) return;

            GePoint CurrentPoint = Ctx.MouseWorldPoint;
            GePoint CircleCenter = m_Instance.CenterPoint;

            double NewRadius = CircleCenter.DistanceTo(CurrentPoint);

            m_Instance.SetRaduis(CurrentPoint);

            m_Instance.Compute();
            UpdateView();
        }
        public override void Drag(EventContext Ctx)
        {
            Debug.Assert(Ctx != null && m_DragLastPoint != null);
            if (null == Ctx || null == m_DragLastPoint) return;

            GePoint CurrentPoint = Ctx.MouseWorldPoint;

            Vector distance = CurrentPoint - m_DragLastPoint;

            m_Instance.MovePoints(distance, m_index);

            m_DragLastPoint = (GePoint)CurrentPoint.Clone();

            m_Instance.Compute();
            UpdateView();
        }
        public override void Drag(EventContext Ctx)
        {
            Debug.Assert(Ctx != null);
            if (null == Ctx) return;

            GePoint currentPoint = Ctx.MouseWorldPoint; //Ctx.MouseWorldPoint;
            if (currentPoint != null &&
                !currentPoint.IsEqualTo(m_LastPoint))
            {
                Matrix44 trans = Matrix44.Identity;
                trans.SetTranslation(m_LastPoint - currentPoint);
                m_DeviceToWorld.LeftMultiply(trans);

                // The last world point desn't change after panning.
                //m_LastPoint = currentPoint;

                PtApp.ActiveView.UpdateView();
            }
        }
Example #11
0
        protected override EventResult OnMouseMove(EventContext Ctx)
        {
            Debug.Assert(Ctx != null);
            if (null == Ctx) return EventResult.eContinue;

            GePoint currentPoint = Ctx.MouseWorldPoint; //Ctx.MouseWorldPoint;
            if (m_bIsDragging
                && currentPoint != null
                && !currentPoint.IsEqualTo(m_LastPoint))
            {
                Matrix44 trans = Matrix44.Identity;
                Vector dir = new Vector(m_LastPoint, currentPoint);
                Vector rotateAxis = UnitVector.kZAxis.Vector.Cross(dir);

                PtApp.ActiveView.DeviceToWorldMatrix.SetRotate(
                    30 * FRMath.MathUtil.PI / 180
                    , rotateAxis.UnitVector, PtApp.ActiveView.ViewCenter);

                m_LastPoint = Ctx.MouseWorldPoint;

                PtApp.ActiveView.UpdateView();
            }
            return EventResult.eContinue;
        }
Example #12
0
        protected override EventResult OnLeftButtionDown(EventContext Context)
        {
            m_bIsDragging = true;
            // manipulator start drag

            // Move the selections from preview set to selected set.
            SelectionSet SelectedSet = PtApp.ActiveView.SelectionMgr.GetSelectedSelectionSet();
            SelectedSet.Clear();
            SelectedSet.Union(PtApp.ActiveView.SelectionMgr.GetPreviewSelectionSet());
            PtApp.ActiveView.SelectionMgr.GetPreviewSelectionSet().Clear();

            // We just support drag a selection
            FRList<Selection> Selections = SelectedSet.Selections;
            if(Selections.Count == 1)
            {
                if (Selections[0].GetManipulator() != null)
                {
                    SetCursorShape(Selections[0].GetManipulator().GetCursorShape());
                    Selections[0].GetManipulator().StartDrag(Context);
                }
            }

            return EventResult.eContinue;
        }
        public override void Drag(EventContext Ctx)
        {
            Debug.Assert(Ctx != null && m_DragLastPoint != null);
            if (null == Ctx || null == m_DragLastPoint) return;

            GePoint CurrentPoint = Ctx.MouseWorldPoint;

            SnapContext snapCtx = SnapContext.InitalizeSnapContextFromPreSelection(CurrentPoint);

            SnapMatcher macher = new SnapMatcher(snapCtx);
            m_Intent = new PositionIntent();
            m_Intent.SetPoint(CurrentPoint);
            macher.Match(CurrentPoint, m_Intent);

            GePoint NewCenter = null;
            if (m_Intent.IsValid())
            {
                m_CursorShape = m_Intent.GetCursorShape();

                NewCenter = m_Intent.GetPoint();
            }
            else
            {
                m_CursorShape = "Move.cur";

                GePoint OldCenter = m_Instance.CenterPoint;
                NewCenter = OldCenter
                    + (CurrentPoint - m_DragLastPoint);
            }

            m_Instance.SetCenter(NewCenter);

            m_DragLastPoint = (GePoint)CurrentPoint.Clone();

            m_Instance.Compute();
            UpdateView();
        }
Example #14
0
 public virtual void StartDrag(EventContext Ctx)
 {
 }
Example #15
0
 public virtual void MouseWheel(EventContext Ctx)
 {
 }
Example #16
0
 public virtual void EndDrag(EventContext Ctx)
 {
 }
Example #17
0
        private void SetMouseContext(MouseEventArgs e, EventContext MouseContext)
        {
            Debug.Assert(MouseContext != null);

            GePoint mouseDevicePoint = new GePoint(e.X, e.Y);
            MouseContext.SetMouseDevicePoint(mouseDevicePoint);
            //MouseContext.m_MousePoint = DeviceToWorld(mouseDevicePoint); // new GePoint(e.X, e.Y);

            MouseButtons button = e.Button;
            if (button == MouseButtons.Left)
                MouseContext.SetButtonType(EventContext.ButtonType.eLeft);
            else if (button == MouseButtons.Right)
                MouseContext.SetButtonType(EventContext.ButtonType.eRight);
            else if (button == MouseButtons.Middle)
                MouseContext.SetButtonType(EventContext.ButtonType.eMiddle);
            else
                MouseContext.SetButtonType(EventContext.ButtonType.eNone);
        }
Example #18
0
        private void OnMouseUp(object sender, MouseEventArgs e)
        {
            EventContext MouseContext = new EventContext();

            SetMouseContext(e, MouseContext);

            if (e.Button == MouseButtons.Left)
                MouseContext.Type = EventContext.EventType.eLeftButtonUp;
            else if (e.Button == MouseButtons.Middle)
                MouseContext.Type = EventContext.EventType.eMiddleButtonUp;

            PtApp.Get().OnEvent(MouseContext);
        }
Example #19
0
        private void OnMouseDoubleClick(object sender, MouseEventArgs e)
        {
            EventContext MouseContext = new EventContext();

            SetMouseContext(e, MouseContext);

            if (e.Button == MouseButtons.Left)
            {
                MouseContext.Type = EventContext.EventType.eLeftDoubleClick;
            }
            else if (e.Button == MouseButtons.Right)
            {
                MouseContext.Type = EventContext.EventType.eRightDoubleClick;
            }

            PtApp.Get().OnEvent(MouseContext);
        }
Example #20
0
 protected override EventResult OnLeftButtionDown(EventContext Ctx)
 {
     m_LastPoint = Ctx.MouseWorldPoint;
     m_bIsDragging = true;
     return EventResult.eContinue;
 }
Example #21
0
 protected override EventResult OnLeftButtionUp(EventContext Ctx)
 {
     m_bIsDragging = false;
     return EventResult.eContinue;
 }
        public override void StartDrag(EventContext Ctx)
        {
            Debug.Assert(Ctx != null);
            if (null == Ctx) return;

            m_DragStartPoint = (GePoint)Ctx.MouseWorldPoint.Clone();
            m_DragLastPoint = (GePoint)Ctx.MouseWorldPoint.Clone();
        }
        public override void EndDrag(EventContext Ctx)
        {
            SymbolConstraint symConst = null;
            int pointIndex = 0;
            if (m_Intent != null && m_Intent.IsValid())
            {
                if (m_Intent.GetGeometryConstraint() != null)
                {
                    SymbolPointConstraint pointConst = m_Intent.GetGeometryConstraint() as SymbolPointConstraint;

                    if (pointConst != null)
                    {
                        symConst = pointConst.GetSymbolConstraint();
                        if (symConst != null)
                        {
                            if (m_Instance.GetFragment().IsFirstPriorToSecond(m_Instance, symConst))
                            {
                                symConst = null; // There is circle if we create forward.
                            }
                        }

                        // We don't need to delete the temporary symbol point constraint
                        // Suppose the GM can collect it.
                    }
                }
            }

            // Change the data model in request
            CircleCenterMoveRequest req = new CircleCenterMoveRequest(
                m_Instance,
                m_Instance.GetCenterPoint().Point,
                symConst,
                pointIndex);

            req.Execute();

            m_Node.CanBeSelected = true;
        }
Example #24
0
        private void OnMouseMove(object sender, MouseEventArgs e)
        {
            EventContext MouseContext = new EventContext();

            SetMouseContext(e, MouseContext);

            MouseContext.Type = EventContext.EventType.eMouseMove;
            PtApp.Get().OnEvent(MouseContext);
        }
        public override void StartDrag(EventContext Ctx)
        {
            Debug.Assert(Ctx != null);
            if (null == Ctx) return;

            m_DragStartPoint = (GePoint)Ctx.MouseWorldPoint.Clone();
            m_DragLastPoint = (GePoint)Ctx.MouseWorldPoint.Clone();

            m_Node.CanBeSelected = false;

            m_Intent = null;
        }
        protected override EventResult OnLeftButtionClick(EventContext Context)
        {
            m_MousePoint = Context.MouseWorldPoint;

            return EventResult.eDone;
        }
        public override void StartDrag(EventContext Ctx)
        {
            //if (Ctx.MouseWorldPoint != null)
            //    m_LastPoint = Ctx.MouseWorldPoint;

            if (Ctx.MouseDevicePoint != null)
                m_LastPoint = Ctx.MouseWorldPoint;
        }
Example #28
0
        public void OnMouseWheel(object sender, MouseEventArgs e)
        {
            EventContext MouseContext = new EventContext();

            SetMouseContext(e, MouseContext);

            MouseContext.Type = EventContext.EventType.eMouseWheel;
            MouseContext.Delta = e.Delta;

            PtApp.Get().OnEvent(MouseContext);
        }
Example #29
0
        private void OnMouseClick(object sender, MouseEventArgs e)
        {
            EventContext MouseContext = new EventContext();

            SetMouseContext(e, MouseContext);

            if (e.Button == MouseButtons.Left)
                MouseContext.Type = EventContext.EventType.eLeftButtionClick;
            else
                MouseContext.Type = EventContext.EventType.eRightButtonClick;

            PtApp.Get().OnEvent(MouseContext);
        }
Example #30
0
        protected override EventResult OnMouseWheel(EventContext Context)
        {
            PtApp.GetActiveView().GetTranslationManipulator().MouseWheel(Context);

            return EventResult.eContinue;
        }