示例#1
0
        /// <summary>
        /// Disposes resources used by the control.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                // Piccolo has some static fields which reference the current canvas.
                // Canvas references us through events -> we never get cleanup.
                // Therefor we must unsubscribe from all events.
                FCanvas.RemoveInputEventListener(FSelectionEventHandler);
                FCanvas.RemoveInputEventListener(FDragDropEventHandler);
                FCanvas.RemoveInputEventListener(FMyPanEventHandler);
                FCanvas.RemoveInputEventListener(FMyZoomEventHandler);
                FCanvas.RemoveInputEventListener(FPathEventHandler);
                FCanvas.RemoveInputEventListener(FEventPassThrougHandler);

                FCanvas.KeyPress -= FCanvas_KeyPress;
                FCanvas.KeyDown  -= FCanvas_KeyDown;
                FCanvas.KeyUp    -= FCanvas_KeyUp;

                if (components != null)
                {
                    components.Dispose();
                }
            }

            base.Dispose(disposing);
        }
示例#2
0
 public override void Undo()
 {
     foreach (IShape wShape in FShapes)
     {
         wShape.IsSelected = true;
         wShape.Move(FEndPoint, FStartPoint);
     }
     FCanvas.Draw();
 }
示例#3
0
 public override void Undo()
 {
     foreach (IShape wShape in FShapes)
     {
         wShape.IsSelected = true;
         wShape.Rotate(FAngle * -1);
     }
     FCanvas.Draw();
 }
示例#4
0
 public override void Execute()
 {
     foreach (IShape wShape in FBaseShapes)
     {
         wShape.IsSelected = false;
     }
     FCanvas.Shapes.AddRange(FShapes);
     FCanvas.Draw();
 }
示例#5
0
 public override void Undo()
 {
     foreach (IShape wShape in FBaseShapes)
     {
         wShape.IsSelected = true;
         FCanvas.Shapes.RemoveAt(FCanvas.Shapes.Count - 1);
     }
     FCanvas.Draw();
 }
示例#6
0
        public GraphEditor()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            SolidLayer = FCanvas.Layer;
            LinkLayer  = new PLayer();
            FCanvas.Root.AddChild(LinkLayer);

            //add linklayer below nodelayer
            FCanvas.Camera.AddLayer(LinkLayer);
            FCanvas.Camera.AddLayer(SolidLayer);

            //set default roots
            LinkRoot = CreateDot(null);
            Root     = CreateDot(null);

            //set render quality
            FCanvas.HighRenderQuality +=
                delegate(Graphics graphics)
            {
                //improves text render quality when antialiased and speeds up drawing
                graphics.CompositingQuality = CompositingQuality.HighSpeed;
            };
            FCanvas.AnimatingRenderQuality   = RenderQuality.HighQuality;
            FCanvas.InteractingRenderQuality = RenderQuality.HighQuality;
            FCanvas.DefaultRenderQuality     = RenderQuality.HighQuality;

            //remove default zoom and pan event handlers
            FCanvas.RemoveInputEventListener(FCanvas.ZoomEventHandler);
            FCanvas.RemoveInputEventListener(FCanvas.PanEventHandler);

            //create custom event handlers
            FDragDropEventHandler   = new DragDropEventHandler();
            FMyPanEventHandler      = new PanEventHandler();
            FMyZoomEventHandler     = new ZoomEventHandler();
            FPathEventHandler       = new PathEventHandler(this);
            FEventPassThrougHandler = new EventPassThrougHandler(this);

            //add custom event handlers
            FCanvas.AddInputEventListener(FDragDropEventHandler);
            FCanvas.AddInputEventListener(FMyPanEventHandler);
            FCanvas.AddInputEventListener(FMyZoomEventHandler);
            FCanvas.AddInputEventListener(FPathEventHandler);
            FCanvas.AddInputEventListener(FEventPassThrougHandler);

            FCanvas.KeyPress += FCanvas_KeyPress;
            FCanvas.KeyDown  += FCanvas_KeyDown;
            FCanvas.KeyUp    += FCanvas_KeyUp;

            FCanvas.MinimumSize = new Size(10, 10);
        }
示例#7
0
 public override void Execute()
 {
     FShapes = FCanvas.Shapes.Where(x => x.IsSelected).ToList();
     foreach (IShape wShape in FShapes)
     {
         wShape.IsSelected = false;
     }
     FCanvas.Shapes.AddRange(FCanvas.Clipboad.Select(x => x.DeepClone()));
     foreach (IShape wShape in FCanvas.Clipboad)
     {
         wShape.Move(new SizeF(10, 10));
     }
     FCanvas.Draw();
 }
示例#8
0
 public override void Undo()
 {
     foreach (IShape wShape in FShapes)
     {
         wShape.IsSelected = true;
     }
     for (int i = 0; i < FCanvas.Clipboad.Count; i++)
     {
         FCanvas.Shapes.RemoveAt(FCanvas.Shapes.Count - 1);
     }
     foreach (IShape wShape in FCanvas.Clipboad)
     {
         wShape.Move(new SizeF(-10, -10));
     }
     FCanvas.Draw();
 }
示例#9
0
        public override void Execute()
        {
            FShape.IsSelected = true;
            IShape wShape;

            if (FCanvas.IsPreviewing)
            {
                wShape = FShape.DeepClone();
                wShape.FramePoints.Single(x => x.CurrentLocationKind == FramePointLocationKindEnum.Bottom).IsSelected = true;
            }
            else
            {
                wShape = FShape;
            }
            FCanvas.Shapes.Add(wShape);
            FCanvas.Draw();
        }
示例#10
0
 public override void Undo()
 {
     FCanvas.Shapes.Remove(FShape);
     FCanvas.Draw();
 }
示例#11
0
 void ICanvas.Invalidate()
 {
     FCanvas.Invalidate();
 }
示例#12
0
 internal void FCanvas_MouseClick(object sender, MouseEventArgs e)
 {
     FCanvas.Select();
     OnMouseClick(e);
 }
示例#13
0
 public override void Execute()
 {
     FCanvas.Shapes.Clear();
     FCanvas.Draw();
 }
示例#14
0
 public override void Undo()
 {
     FCanvas.Shapes.AddRange(FShapes);
     FCanvas.Draw();
 }