public override HistoryMemento OnExecute(IHistoryWorkspace historyWorkspace) { if (this.layerIndex < 0 || this.layerIndex >= historyWorkspace.Document.Layers.Count) { throw new ArgumentOutOfRangeException("layerIndex = " + layerIndex + ", expected [0, " + historyWorkspace.Document.Layers.Count + ")"); } Layer newLayer = null; newLayer = (Layer)historyWorkspace.ActiveLayer.Clone(); newLayer.IsBackground = false; int newIndex = 1 + this.layerIndex; HistoryMemento ha = new NewLayerHistoryMemento( StaticName, StaticImage, historyWorkspace, newIndex); EnterCriticalRegion(); historyWorkspace.Document.Layers.Insert(newIndex, newLayer); newLayer.Invalidate(); return ha; }
protected override HistoryMemento OnUndo() { DeleteLayerHistoryMementoData data = (DeleteLayerHistoryMementoData)this.Data; HistoryMemento ha = new NewLayerHistoryMemento(Name, Image, this.historyWorkspace, this.index); this.historyWorkspace.Document.Layers.Insert(index, data.Layer); ((Layer)this.historyWorkspace.Document.Layers[index]).Invalidate(); return ha; }
protected override HistoryMemento OnUndo(ProgressEventHandler progressCallback) { DeleteLayerHistoryMementoData data = (DeleteLayerHistoryMementoData)base.Data; HistoryMemento memento = new NewLayerHistoryMemento(base.Name, base.Image, this.historyWorkspace, this.index); this.historyWorkspace.Document.Layers.Insert(this.index, data.Layer); ((Layer)this.historyWorkspace.Document.Layers[this.index]).Invalidate(); return(memento); }
protected override HistoryMemento OnUndo() { DeleteLayerHistoryMementoData data = (DeleteLayerHistoryMementoData)this.Data; HistoryMemento ha = new NewLayerHistoryMemento(Name, Image, this.historyWorkspace, this.index); this.historyWorkspace.Document.Layers.Insert(index, data.Layer); ((Layer)this.historyWorkspace.Document.Layers[index]).Invalidate(); return(ha); }
public override HistoryMemento OnExecute(IHistoryWorkspace historyWorkspace) { BitmapLayer newLayer = null; newLayer = new BitmapLayer(historyWorkspace.Document.Width, historyWorkspace.Document.Height); string newLayerNameFormat = PdnResources.GetString("AddNewBlankLayer.LayerName.Format"); newLayer.Name = string.Format(newLayerNameFormat, (1 + historyWorkspace.Document.Layers.Count).ToString()); NewLayerHistoryMemento ha = new NewLayerHistoryMemento( PdnResources.GetString("AddNewBlankLayer.HistoryMementoName"), ImageResource.Get("Icons.MenuLayersAddNewLayerIcon.png"), historyWorkspace, historyWorkspace.Document.Layers.Count); EnterCriticalRegion(); historyWorkspace.Document.Layers.Add(newLayer); return ha; }
private HistoryMemento ImportOneLayer(DocumentWorkspace documentWorkspace, BitmapLayer layer) { HistoryMemento retHA; List<HistoryMemento> historyMementos = new List<HistoryMemento>(); bool success = true; if (success) { if (!documentWorkspace.Selection.IsEmpty) { HistoryMemento ha = new DeselectFunction().Execute(documentWorkspace); historyMementos.Add(ha); } } if (success) { if (layer.Width > documentWorkspace.Document.Width || layer.Height > documentWorkspace.Document.Height) { HistoryMemento ha = DoCanvasResize(documentWorkspace, layer.Size); if (ha == null) { success = false; } else { historyMementos.Add(ha); } } } if (success) { if (layer.Size != documentWorkspace.Document.Size) { BitmapLayer newLayer; try { using (new WaitCursorChanger(documentWorkspace)) { Utility.GCFullCollect(); newLayer = CanvasSizeAction.ResizeLayer((BitmapLayer)layer, documentWorkspace.Document.Size, AnchorEdge.TopLeft, ColorBgra.White.NewAlpha(0)); } } catch (OutOfMemoryException) { Utility.ErrorBox(documentWorkspace, PdnResources.GetString("ImportFromFileAction.ImportOneLayer.OutOfMemory")); success = false; newLayer = null; } if (newLayer != null) { layer.Dispose(); layer = newLayer; } } } if (success) { NewLayerHistoryMemento nlha = new NewLayerHistoryMemento(string.Empty, null, documentWorkspace, documentWorkspace.Document.Layers.Count); documentWorkspace.Document.Layers.Add(layer); historyMementos.Add(nlha); } if (success) { HistoryMemento[] has = historyMementos.ToArray(); retHA = new CompoundHistoryMemento(string.Empty, null, has); } else { Rollback(historyMementos); retHA = null; } return retHA; }