public override void KeyDown(Key key) { base.KeyDown(key); if (key == Key.Escape) { Program.Manager.NextState = new MainMenu(); } if (key == Key.Down) { SelectNext(-Vec2.OrtY); } if (key == Key.Up) { SelectNext(Vec2.OrtY); } if (key == Key.Left) { SelectNext(-Vec2.OrtX); } if (key == Key.Right) { SelectNext(Vec2.OrtX); } if (key == Key.Enter && Selected != null) { if (Focus != null) { Focus.LoseFocus(); Focus = null; SelectNext(-Vec2.OrtY); return; } if (Selected.Focusable) { Focus = Selected; Focus.Focus(); } else { Selected.Click(); } } }
public override void MouseDown(MouseButton button, Vec2 position) { base.MouseDown(button, position); if (Background != null) { Background.MouseDown(button, position); } position = position / Zoom; Frame.MouseDown(button, position); Element lastFocus = Focus; Frame.Visit(elem => { if (!elem.Focusable) { return; } if (elem.Inside(position)) { Focus = elem; } }); if (lastFocus != Focus) { if (lastFocus != null) { lastFocus.Focused = false; lastFocus.LoseFocus(); } if (Focus != null) { Focus.Focused = true; Focus.Focus(); } } }
private void Focused() { Focus.Focus(); }