private void AddDrawingWithMemento(Guid managerId, AbstractDrawing drawing) { // Temporary function. // Once the player screen ui uses the viewport, this event handler should be removed. // The code here should also be in the metadata manipulator until this function is removed. HistoryMemento memento = new HistoryMementoAddDrawing(frameServer.Metadata, managerId, drawing.Id, drawing.ToolDisplayName); frameServer.Metadata.AddDrawing(managerId, drawing); historyStack.PushNewCommand(memento); }
public override HistoryMemento PerformUndo() { HistoryMemento redoMemento = new HistoryMementoAddDrawing(metadata, managerId, drawingId, drawingName); redoMemento.CommandName = commandName; AbstractDrawing drawing = DrawingSerializer.DeserializeMemento(data, metadata); metadata.AddDrawing(managerId, drawing); return(redoMemento); }
private void AddDrawing(PointF imagePoint, int keyframeIndex, int timestampPerFrame, ImageToViewportTransformer transformer) { AbstractDrawing drawing = screenToolManager.ActiveTool.GetNewDrawing(imagePoint, keyframeIndex, timestampPerFrame, transformer); Guid keyframeId = metadata.GetKeyframeId(keyframeIndex); HistoryMementoAddDrawing memento = new HistoryMementoAddDrawing(metadata, keyframeId, drawing.Id, drawing.ToolDisplayName); metadata.AddDrawing(keyframeId, drawing); metadata.HistoryStack.PushNewCommand(memento); // Special cases // TODO: implement the event handler to metadata DrawingAdded and finish the label in the handler. if (screenToolManager.ActiveTool == ToolManager.Tools["Label"]) { if (LabelAdded != null) { LabelAdded(this, new DrawingEventArgs(drawing, keyframeId)); } ((DrawingText)drawing).SetEditMode(true, transformer); } }