public void Dispose() { GC.SuppressFinalize(this); _allGridPointMatrix.Remove(this); if (Disposing != null) { Disposing(new GridPointMatrixDisposingEventArgs(this)); } // remove any scroll bindings UnbindScrolling(); // unsubscribe from events RefreshQueue.RefreshQueueAreaAdded -= refQueueDel; // dispose child objects RefreshQueue.Dispose(); foreach (GridPoint gridPt in this) { gridPt.Dispose(); } // cancel all subscriptions to this object GridPointSizeChanged = null; VisibleChanged = null; FirstColRowChanged = null; RefreshQueueAreaAdded = null; WrappingChanged = null; Disposing = null; }
public void Update() { foreach (var item in RefreshQueue) { item.Source.Repaint(); } RefreshQueue.Clear(); }
protected void InitValues(GridPoint[][] pt, int width, int height, float layerSyncModifier, bool addToInstances) { _matrix = pt; _layerSyncModifier = layerSyncModifier; _tileWidth = width; _tileHeight = height; _visible = true; _gridPtZeroPxl = new Point(0, 0); // let each GridPoint in array know its position in the array SaveGridCoordinatesToGridPoints(); RefreshQueue = new RefreshQueue(this); refQueueDel = new RefreshQueueAreaAddedEventHandler(RefreshQueueNewTile); RefreshQueue.RefreshQueueAreaAdded += refQueueDel; FindIndexedGridPoint = new GetIndexer(GetIndexer_NoWrap); _movement = new Movement(this); if (addToInstances) { _allGridPointMatrix.Add(this); } }
private void OnUIRefreshRequested(UIRefreshRequested e) { RefreshQueue.Add(e); }