/
Vagabond132
/
TerrariaCourse
Обзор
Документация
Войти
/
Vagabond132
/
TerrariaCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Windows
WpfController/Menu/ControllerInputMenu.cs
77 строк
2 KB
Vagabond132
Комментарии добавлены
12 янв 2025, 15:06
12 янв 2025, 15:06
bb8abcd
Код
Авторство
О чём код?
using Controller.Menu; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; using WpfController.Game; namespace WpfController.Menu { /// <summary> /// Контроллер ввода имени для WPF /// </summary> public class ControllerInputMenu : ControllerMenu { /// <summary> /// меню /// </summary> private WpfView.Menu.ViewInputNameMenuWpf _viewMenu = null; protected bool NeedExit { get; set; } /// <summary> /// Конструктор контроллера /// </summary> public ControllerInputMenu() { Menu = new Model.Menu.InputNameMenu(); _viewMenu = new WpfView.Menu.ViewInputNameMenuWpf(Menu); //Menu[(int)Model.Menu.MenuMain.MenuItemCodes.Exit].Selected += () => { NeedExit = true; Environment.Exit(0); }; //Menu[(int)Model.Menu.MenuMain.MenuItemCodes.New].Selected += () => { _viewMenu.OnKeyPressed -= OnKeyPressed; NeedExit = true; new WpfControllerGame("Greg").Start(); }; //Menu[(int)Model.Menu.MenuMain.MenuItemCodes.Rules].Selected += () => { NeedExit = true; new WpfRulesController().Start(); }; //Menu[(int)Model.Menu.MenuMain.MenuItemCodes.Records].Selected += () => { _viewMenu.OnKeyPressed -= OnKeyPressed; NeedExit = true; new WpfRecordsController().Start(); }; } /// <summary> /// На нажатие кнопок /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnKeyPressed(object sender, KeyEventArgs e) { switch (e.Key) { case Key.Up: Menu.FocusPrevious(); break; case Key.Down: Menu.FocusNext(); break; case Key.Enter: Menu.SelectFocusedItem(); break; } } /// <summary> /// Старт /// </summary> public override void Start() { //_viewMenu.OnStartClicked ; _viewMenu.OnPlayerNameConfirmed += StartGame; //_viewMenu.OnKeyPressed += OnKeyPressed; } private void StartGame(string parPlayerName) { if (string.IsNullOrEmpty(parPlayerName)) { new ControllerMainMenuWpf().Start(); return; } new WpfControllerGame(parPlayerName).Start(); } } }