Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public void Remove(ScreenLayer layer)
        {
            if (focusedLayer == layer)
            {
                changeFocus(null);
            }

            layers.Remove(layer);
            removedLayers.Add(layer);
            updateQueue.Remove(layer);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
            }
        }