public virtual void Paste() { var scene = this.Scene; IVisual item = null; #if TRACE Trace.WriteLine($"{this.GetType ().Name}.{nameof(Paste)}:\t" + string.Join(" | ", Clipboard.GetTypesAvailable().Select(f => f.Id))); #endif if (InprocDragDrop.ClipboardData != null) { // TODO: refactor to use same code as above var source = InprocDragDrop.ClipboardData as GraphCursor <IVisual, IVisualEdge>; if (source != null && source.Cursor != item) { item = Mesh.LookUp(source.Graph, scene.Graph, source.Cursor); if (item == null) { //TODO: error here //return; } } } if (item == null) { item = DragDropViz.VisualOfTransferData(scene.Graph, Clipboard.GetTransferData(Clipboard.GetTypesAvailable())); //DragDropViz.DataManager.DataTypes)); } if (item != null) { SceneExtensions.PlaceVisual(scene, scene.Focused, item, Layout); } }
protected virtual IVisualEdge NewVisual(Point p) { var result = SceneExtensions.CreateEdge(this.Scene); newCounter++; result.Root = Current; result.Leaf = Current; return(result); }
public void ShapeChange(IShape shape) { var currentDisplay = this.CurrentDisplay; if (currentDisplay != null) { foreach (var visual in currentDisplay.Data.Selected.Elements) { SceneExtensions.ChangeShape(currentDisplay.Data, visual, shape); } currentDisplay.Perform(); } }
protected virtual void ChangeMarkers(object marker) { var display = CurrentDisplay; if (display != null) { var scene = display.Data; if (scene.Markers != null) { SceneExtensions.ChangeMarkers(scene, scene.Selected.Elements, marker); } display.Perform(); } }
public void StyleChange(IStyleGroup style) { var currentDisplay = this.CurrentDisplay; if (currentDisplay != null) { foreach (var visual in currentDisplay.Data.Selected.Elements) { SceneExtensions.ChangeStyle(currentDisplay.Data, visual, style); } currentDisplay.Perform(); currentDisplay.Backend.QueueDraw(); } }
public virtual void Insert(Point cursorPosition) { DetachEditor(true); Exclusive = Resolved = true; Current = Registry.Pooled <IVisualFactory> ().CreateItem("XXXXXXXX"); var scene = Scene; var root = scene.Focused; if (root == null) { var pt = Camera.ToSource(cursorPosition) - Layout.Distance; SceneExtensions.AddItem(scene, Current, Layout, pt); } else { SceneExtensions.PlaceVisual(scene, root, Current, Layout); } Display.Perform(); TextToData(Current, string.Empty); AttachEditor(); }
public void CreateNewNote(string title) { var currentDiplay = CurrentDisplay; if (currentDiplay == null) { return; } var scene = currentDiplay.Data; if (scene == null) { return; } var content = new Content <Stream> (new MemoryStream(), CompressionType.bZip2); content.Description = title; if (Registry.Factory.Contains <IMarkdownEdit>()) { content.ContentType = ContentTypes.Markdown; var writer = new StreamWriter(content.Data); writer.Write(title); writer.Flush(); content.Data.Position = 0; } else { content.ContentType = ContentTypes.RTF; var writer = new StreamWriter(content.Data); writer.Write("{\\rtf1\\ansi\\deff0"); writer.Write("{\\info{\\doccomm limada.note}}"); writer.Write($"{{\\fonttbl{{\\f0\\froman {Xwt.Drawing.Font.SystemSerifFont.Family}}}}}"); writer.Write("\\pard\\plain "); writer.Write(title); writer.Write("}"); writer.Flush(); content.Data.Position = 0; } var visual = scene.VisualOfContent(content); var root = scene.Focused; var layout = currentDiplay.Layout; if (root == null) { var pt = new Point(layout.Border.Width, scene.Shape.BoundsRect.Bottom); SceneExtensions.AddItem(scene, visual, layout, pt); } else { SceneExtensions.PlaceVisual(scene, root, visual, layout); } scene.Selected.Clear(); scene.Focused = visual; currentDiplay.Perform(); currentDiplay.OnSceneFocusChanged(); var md = ContentVidget as IMarkdownEdit; if (md != null) { md.InEdit = true; } }
public override void Dropped(DragEventArgs e) { var pt = Camera.ToSource(e.Position); var scene = this.Scene; var target = scene.Hovered ?? HitTestFocused(e.Position); IVisual item = null; if (Dragging && Dropping) { // the current Drop has started in this instance // so we make a link if (target != null && Source != target) { SceneExtensions.CreateEdge(scene, Source, target); } e.Success = true; return; } if (InprocDragDrop.Dragging) { var source = InprocDragDrop.Data as GraphCursor <IVisual, IVisualEdge>; if (source != null && source.Cursor != target) { item = Mesh.LookUp(source.Graph, scene.Graph, source.Cursor); if (item == null) { //TODO: error here //return; } } } if (item == null) { item = DragDropViz.VisualOfTransferData(scene.Graph, e.Data); if (item != null) { item.Location = pt; } } if (item != null) { SceneExtensions.AddItem(scene, item, Layout, pt); if (target != null && !scene.Graph.Edges(target).Any(edge => edge.Leaf == item || edge.Root == item)) { SceneExtensions.CreateEdge(scene, target, item); } } else { // no known type found to import string dt = "not found:\t"; } InprocDragDrop.Data = null; InprocDragDrop.Dragging = false; Dragging = false; }
IEnumerator WaitForSceneLoaded() { yield return(new WaitUntil(() => SceneExtensions.ScenesAreAllLoaded())); waitCoroutine = null; }