internal virtual void OnRefreshQueueAreaAdded(RefreshQueueAreaAddedEventArgs e)
 {
     // just pass the event up
     if (RefreshQueueAreaAdded != null)
         RefreshQueueAreaAdded(e);
 }
 private void RefreshQueueNewTile(RefreshQueueAreaAddedEventArgs e)
 {
     // pass the event up to any containing GridPointMatrixes
     OnRefreshQueueAreaAdded(e);
 }
        private void _RefreshQueueNewArea(RefreshQueueAreaAddedEventArgs e)
        {
            // set refresh to Queue if no refresh required
            if (refreshNeeded == MatrixesRefreshType.None)
                refreshNeeded = MatrixesRefreshType.Queue;

            // if matrix that added Tile to queue is visible...
            if (e.layer.Visible == true)
            {
                // refresh all other visible matrixes
                for (int i = _visibleLayers.Count - 1; i >= 0; i--)
                {
                    GridPointMatrix otherMatrix = _visibleLayers[i];

                    // refresh other matrixes; no need to do the calling one again
                    if (e.layer != otherMatrix)
                        // only refresh e.tileAdded.DrawLocationRefresh rectangle; do not raise cascading events
                        otherMatrix.RefreshQueue.AddPixelRangeToRefreshQueue(e.area, false);
                }
            }
        }