public TextNoteMarker(TextNote textNote) : base(textNote) { this.rectangle = Symbol.Skin<Rectangle>(SymbolShape.MarkerRectangle); this.markerGlyph = new Canvas(); this.markerGlyph.DataContext = this; this.markerGlyph.ToolTip = Properties.Resources.TextNotation; Panel.SetZIndex(this.rectangle, 0); this.markerGlyph.Children.Add(this.rectangle); this.resizeMarker = new ResizeMarker<TextNoteMarker>[] { new ResizeMarker<TextNoteMarker>(this, 0, 0), new ResizeMarker<TextNoteMarker>(this, 1, 0), new ResizeMarker<TextNoteMarker>(this, 2, 0), new ResizeMarker<TextNoteMarker>(this, 0, 1), new ResizeMarker<TextNoteMarker>(this, 2, 1), new ResizeMarker<TextNoteMarker>(this, 0, 2), new ResizeMarker<TextNoteMarker>(this, 1, 2), new ResizeMarker<TextNoteMarker>(this, 2, 2) }; foreach(ResizeMarker<TextNoteMarker> marker in this.resizeMarker) { this.markerGlyph.Children.Add(marker.Glyph); } this.Refresh(); }
protected override void Edit(Symbol symbol) { CircuitSymbol circuitSymbol = symbol as CircuitSymbol; if (circuitSymbol != null) { if (this.InEditMode) { LogicalCircuit lc = circuitSymbol.Circuit as LogicalCircuit; if (lc != null) { this.OpenLogicalCircuit(lc); return; } CircuitProbe cp = circuitSymbol.Circuit as CircuitProbe; if (cp != null) { this.Edit(cp); return; } CircuitButton cb = circuitSymbol.Circuit as CircuitButton; if (cb != null) { this.Edit(cb); return; } Constant ct = circuitSymbol.Circuit as Constant; if (ct != null) { this.Edit(ct); return; } Sensor sr = circuitSymbol.Circuit as Sensor; if (sr != null) { this.Edit(sr); return; } Memory m = circuitSymbol.Circuit as Memory; if (m != null) { this.Edit(m); return; } Pin pin = circuitSymbol.Circuit as Pin; if (pin != null) { this.Edit(pin); return; } LedMatrix ledMatrix = circuitSymbol.Circuit as LedMatrix; if (ledMatrix != null) { this.Edit(ledMatrix); return; } Sound sound = circuitSymbol.Circuit as Sound; if (sound != null) { this.Edit(sound); return; } GraphicsArray graphicsArray = circuitSymbol.Circuit as GraphicsArray; if (graphicsArray != null) { this.Edit(graphicsArray); return; } } else if (this.CircuitRunner != null && this.CircuitRunner.VisibleMap != null) { CircuitMap map = this.CircuitRunner.VisibleMap.Child(circuitSymbol); if (map != null) { this.OpenLogicalCircuit(map); return; } if (circuitSymbol.Circuit is CircuitProbe) { FunctionProbe functionProbe = this.CircuitRunner.VisibleMap.FunctionProbe(circuitSymbol); if (functionProbe != null) { this.Mainframe.ShowDialog(new DialogProbeHistory(functionProbe)); } return; } if ((circuitSymbol.Circuit is Memory) || (circuitSymbol.Circuit is GraphicsArray)) { IFunctionMemory functionMemory = this.CircuitRunner.VisibleMap.FunctionMemory(circuitSymbol); if (functionMemory != null) { this.Mainframe.ShowDialog(new DialogMemory(functionMemory)); } return; } if (circuitSymbol.Circuit is Constant) { if (this.CircuitRunner.Root.First() == this.CircuitRunner.VisibleMap) { FunctionConstant functionConstant = this.CircuitRunner.VisibleMap.FunctionConstant(circuitSymbol); if (functionConstant != null) { this.CircuitProject.InOmitTransaction(() => functionConstant.Value++); } } else { this.Mainframe.Status = Properties.Resources.MessageNotRootConstant(this.CircuitRunner.Root.First().Circuit.Name); } } } } else if (this.InEditMode) { TextNote textNote = symbol as TextNote; if (textNote != null) { this.Edit(textNote); } } }
public void UpdateGlyph() { FlowDocumentScrollViewer doc = this.TextNoteGlyph; doc.Document = TextNote.Load(this.Note); }