public bool CopyDataToClipboard(Rectangle toCopy) { Rectangle b = new Rectangle(0, 0, 40, 11); toCopy = Rectangle.Intersect(toCopy, b); bool copied = false; if (!toCopy.IsEmpty) { List <byte> bytesToCopy = new List <byte>(); for (int row = toCopy.Y; row < toCopy.Bottom; row++) { for (int col = toCopy.X; col < toCopy.Right; col++) { bytesToCopy.Add(mapData[col + 40 * row]); } } MapDataBlock myObject = new MapDataBlock(toCopy.Size, bytesToCopy.ToArray()); DataObject myDataObject = new DataObject(myFormat.Name, myObject); Clipboard.SetDataObject(myDataObject); copied = true; } return(copied); }
public SetMapDataBytesAction(Map map, Point point, MapDataBlock datab) { this.map = map; this.point = point; this.datab = datab; }
public void SetMapDataBytes(Point point, MapDataBlock data) { UndoManager.RecordAction(new SetMapDataBytesAction(this, point, data)); }
public void ClearMapDataBytes(Rectangle toClear) { MapDataBlock datab = new MapDataBlock(toClear.Size, Enumerable.Repeat((byte)0, toClear.Size.Width * toClear.Size.Height).ToArray()); UndoManager.RecordAction(new SetMapDataBytesAction(this, toClear.Location, datab)); }