public UndoItem(int columnOffset, byte[,] data, UndoOriginalBehavior undoBehavior, int eventPeriod, IEnumerable <Channel> currentOrder, string originalAction) { ColumnOffset = columnOffset; Data = data; Behavior = undoBehavior; OriginalAction = originalAction; _eventPeriod = eventPeriod; ReferencedChannels = currentOrder.ToArray(); }
public UndoItem(int columnOffset, byte[,] data, UndoOriginalBehavior undoBehavior, int eventPeriod, IEnumerable<Channel> currentOrder, string originalAction) { ColumnOffset = columnOffset; Data = data; Behavior = undoBehavior; OriginalAction = originalAction; _eventPeriod = eventPeriod; ReferencedChannels = currentOrder.ToArray(); }
private void AddUndoItem(Rectangle blockAffected, UndoOriginalBehavior behavior, string originalAction) { if (blockAffected.Width == 0) { return; } var affectedChannels = new List<Channel>(); for (var i = blockAffected.Top; i < blockAffected.Bottom && i < _sequence.Channels.Count; i++) { affectedChannels.Add(_sequence.Channels[i]); } var affectedChannelData = GetAffectedChannelData(affectedChannels, blockAffected.Left, blockAffected.Width); _undoStack.Push(new UndoItem(blockAffected.Location.X, affectedChannelData, behavior, _sequence.EventPeriod, affectedChannels, originalAction)); SetUndoRedo(true, false); IsDirty = true; }