Ejemplo n.º 1
0
        private void HandleInput()
        {
            ConsoleKeyInfo cki = Console.ReadKey();

            switch (cki.Key)
            {
            case ConsoleKey.Backspace:
            case ConsoleKey.Escape:
                _running = false;
                break;

            case ConsoleKey.UpArrow:
                MoveUp();
                break;

            case ConsoleKey.DownArrow:
                MoveDown();
                break;

            case ConsoleKey.Enter:
                CurrentMenuItem.Select();
                break;

            default:
                break;
            }
        }
Ejemplo n.º 2
0
        public void Run()
        {
            _isRunning = true;
            Util.ConsoleUtil.WriteBlanks();
            while (_isRunning)
            {
                Render();
                var key = Console.ReadKey();

                if (key.Key == ConsoleKey.Escape)
                {
                    break;
                }
                if (key.Key == ConsoleKey.Spacebar)
                {
                    ShowHelp();
                    Console.ReadKey();
                    continue;
                }

                switch (key.Key)
                {
                case ConsoleKey.UpArrow:
                    _lineIndex = Math.Max(0, _lineIndex - 1);
                    break;

                case ConsoleKey.DownArrow:
                    _lineIndex = Math.Min(CurrentMenuItem.GetChildCount() - 1, _lineIndex + 1);
                    break;

                case ConsoleKey.Enter:
                case ConsoleKey.RightArrow:
                    CurrentMenuItem = CurrentMenuItem.TrySelectChild(_lineIndex, out _lineIndex);
                    break;

                case ConsoleKey.LeftArrow:
                    CurrentMenuItem = CurrentMenuItem.TrySelectParent(_lineIndex, out _lineIndex);
                    break;

                default:
                    break;
                }


                MenuItem lastMenuItem = CurrentMenuItem;
                for (int i = 0; i < _revertLevelCount; i++)
                {
                    CurrentMenuItem = CurrentMenuItem.TrySelectParent(_lineIndex, out _lineIndex);
                    if (CurrentMenuItem == lastMenuItem)
                    {
                        break;
                    }
                }

                _revertLevelCount = 0;
            }

            Util.ConsoleUtil.WriteBlanks();
        }
Ejemplo n.º 3
0
        public void Render()
        {
            Console.Clear();
            CurrentMenuItem.HoverChild(_lineIndex);
            _baseMenuItem.Render(0, -1 * (_baseMenuItem.Width + _baseMenuItem.Padding));

            Console.SetCursorPosition(0, Console.WindowHeight - 2);
            Console.WriteLine("Use SPACE for help!");
        }
Ejemplo n.º 4
0
        public override void Triggered()
        {
            base.Triggered();

            CurrentMenuItem.Trigger();
        }