public void Set(ScreenLayer layer) { var layersToExit = new List <ScreenLayer>(layers); for (int i = layersToExit.Count - 1; i >= 0; --i) { layersToExit[i].Exit(); } Add(layer); }
public void Remove(ScreenLayer layer) { if (focusedLayer == layer) { changeFocus(null); } layers.Remove(layer); removedLayers.Add(layer); updateQueue.Remove(layer); }
public void Add(ScreenLayer layer) { layer.Manager = this; layers.Add(layer); layer.Load(); var width = Math.Max(1, window.Width); var height = Math.Max(1, window.Height); layer.Resize(width, height); }
private void changeFocus(ScreenLayer layer) { if (focusedLayer != null) { inputDispatcher.Remove(focusedLayer.InputHandler); focusedLayer.LoseFocus(); focusedLayer = null; } if (layer != null) { inputDispatcher.Add(layer.InputHandler); layer.GainFocus(); focusedLayer = layer; } }