예제 #1
0
        protected CocoStudio.Model.PointF GetVectorByKey(Gdk.Key key)
        {
            CocoStudio.Model.PointF pointF = new CocoStudio.Model.PointF(0f, 0f);
            switch (key)
            {
            case Gdk.Key.Left:
                pointF.X = -1f;
                break;

            case Gdk.Key.Up:
                pointF.Y = 1f;
                break;

            case Gdk.Key.Right:
                pointF.X = 1f;
                break;

            case Gdk.Key.Down:
                pointF.Y = -1f;
                break;
            }
            CocoStudio.Model.PointF result;
            if (pointF.X == 0f && pointF.Y == 0f)
            {
                result = null;
            }
            else
            {
                result = pointF;
            }
            return(result);
        }
예제 #2
0
 protected override void OnDragDrop(DragDropArgs e)
 {
     using (CompositeTask.Run("ChangeParent"))
     {
         ModelDragData dragData = e.Context.GetDragData() as ModelDragData;
         if (dragData != null && dragData.MetaData != null)
         {
             if (typeof(WidgetObject).IsAssignableFrom(dragData.MetaData.Type))
             {
                 List <VisualObject>     visualObjectList = new List <VisualObject>();
                 NodeObject              nodeObject       = dragData.MetaData.CreateObject();
                 CocoStudio.Model.PointF scene            = SceneTransformHelp.ConvertControlToScene(new CocoStudio.Model.PointF((float)e.X, (float)e.Y));
                 nodeObject.Position = this.TransformToSelf(scene);
                 this.Children.Add(nodeObject);
                 visualObjectList.Add((VisualObject)nodeObject);
                 EventAggregator.Instance.GetEvent <SelectedVisualObjectsChangeEvent>().Publish(new SelectedVisualObjectsChangeEventArgs((IEnumerable <VisualObject>)visualObjectList, (IEnumerable <VisualObject>)visualObjectList, false));
             }
             else
             {
                 LogConfig.Output.Info((object)LanguageInfo.ListViewOutputMessage);
             }
         }
         this.SetObjectState(CSNode.ObjectState.Default);
     }
 }
예제 #3
0
        protected CocoStudio.Model.PointF GetVectorByKey(Gdk.Key key)
        {
            CocoStudio.Model.PointF pointF = new CocoStudio.Model.PointF(0.0f, 0.0f);
            switch (key)
            {
            case Gdk.Key.Left:
                pointF.X = -1f;
                break;

            case Gdk.Key.Up:
                pointF.Y = 1f;
                break;

            case Gdk.Key.Right:
                pointF.X = 1f;
                break;

            case Gdk.Key.Down:
                pointF.Y = -1f;
                break;
            }
            if ((double)pointF.X == 0.0 && (double)pointF.Y == 0.0)
            {
                return((CocoStudio.Model.PointF)null);
            }
            return(pointF);
        }
예제 #4
0
 protected virtual void OnKeyDown(KeyPressEventArgs e)
 {
     CocoStudio.Model.PointF vectorByKey = this.GetVectorByKey(e.Event.Key);
     if (vectorByKey != null)
     {
         this.Position = new CocoStudio.Model.PointF(this.Position.X + vectorByKey.X, this.Position.Y + vectorByKey.Y);
     }
 }
예제 #5
0
 protected virtual HitTestResult HitTestCore(CocoStudio.Model.PointF point)
 {
     if (this.GetCSVisual().HitTest(point) != -1)
     {
         return(new HitTestResult(this, point, OperationType.OPERATION_POSITION, ControlPointType.POINT_NONE));
     }
     return(new HitTestResult(point, this.CanContinueTest()));
 }
예제 #6
0
 public virtual HitTestResult HitTest(CocoStudio.Model.PointF point)
 {
     if (!this.IsHitTestVisible || !this.Visible || !this.VisibleForFrame || !this.CanEdit)
     {
         return(new HitTestResult(point, this.Visible));
     }
     return(this.HitTestCore(point));
 }
예제 #7
0
        public virtual HitTestResult HitTest(CocoStudio.Model.PointF point)
        {
            HitTestResult result;

            if (!this.IsHitTestVisible || !this.Visible || !this.VisibleForFrame || !this.CanEdit)
            {
                result = new HitTestResult(point, this.Visible);
            }
            else
            {
                result = this.HitTestCore(point);
            }
            return(result);
        }
예제 #8
0
 protected override void LoadNodeObject(NodeObject gObject, CocoStudio.Model.PointF coord)
 {
     if (gObject != null)
     {
         CocoStudio.Model.PointF sencePoint = SceneTransformHelp.ConvertControlToScene(coord);
         NodeObject nodeObject;
         CocoStudio.Model.PointF position;
         if (this.IsAddToCurrent)
         {
             nodeObject = this;
             position   = this.TransFormToInner(sencePoint);
         }
         else
         {
             nodeObject = Services.ProjectOperations.CurrentSelectedProject.GetRootNode();
             position   = nodeObject.TransformToSelf(sencePoint);
         }
         gObject.Position = position;
         nodeObject.Children.Add(gObject);
     }
 }
예제 #9
0
 protected override void OnDragDrop(DragDropArgs e)
 {
     using (CompositeTask.Run("ChangeParent"))
     {
         ModelDragData dragData = e.Context.GetDragData() as ModelDragData;
         if (dragData != null && dragData.MetaData != null)
         {
             if (dragData.MetaData.Type == typeof(PanelObject))
             {
                 NodeObject nodeObject         = dragData.MetaData.CreateObject();
                 CocoStudio.Model.PointF scene = SceneTransformHelp.ConvertControlToScene(new CocoStudio.Model.PointF((float)e.X, (float)e.Y));
                 nodeObject.Position = this.TransformToSelf(scene);
                 this.Children.Add(nodeObject);
             }
             else
             {
                 LogConfig.Output.Error((object)LanguageInfo.OutputMessage);
             }
         }
         this.SetObjectState(CSNode.ObjectState.Default);
     }
 }
예제 #10
0
 protected virtual CocoStudio.Model.PointF TransFormToInner(CocoStudio.Model.PointF sencePoint)
 {
     return(this.GetInnerWidget().TransformToSelfInner(sencePoint));
 }
예제 #11
0
 public virtual CocoStudio.Model.PointF TransformToParent(CocoStudio.Model.PointF selfPoint)
 {
     return(this.GetCSVisual().TransformToParent(selfPoint));
 }
예제 #12
0
 public virtual CocoStudio.Model.PointF TransformToSence(CocoStudio.Model.PointF selfPoint)
 {
     return(this.GetCSVisual().TransformToScene(selfPoint));
 }
예제 #13
0
 public virtual ScaleValue GetBoundingAnchorPoint()
 {
     CocoStudio.Model.PointF boundingAnchorPoint = this.GetCSVisual().GetBoundingAnchorPoint();
     return(new ScaleValue(boundingAnchorPoint.X, boundingAnchorPoint.Y, 0.1, -99999999.0, 99999999.0));
 }