/// <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); }
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); }