コード例 #1
0
 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();
         }
     }
 }
コード例 #2
0
ファイル: State.cs プロジェクト: kuviman/Q
        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();
                }
            }
        }
コード例 #3
0
 private void Focused()
 {
     Focus.Focus();
 }