/
karachi
/
KPO_CP_CrossyRoad
Обзор
Документация
Войти
/
karachi
/
KPO_CP_CrossyRoad
Код
Запросы
5
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
base
Model/Menu/MenuItem.cs
77 строк
2 KB
karachi-23
base
10 янв 2025, 23:55
10 янв 2025, 23:55
f5bd4ec
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Model.Menu { /// <summary> /// Элемент меню /// </summary> public class MenuItem { /// <summary> /// Состояние пункта меню /// </summary> public enum MenuItemState { /// <summary> /// Базовое состояние пункта меню /// </summary> Normal, /// <summary> /// Пункт меню, на который направлен фокус /// </summary> Focused, /// <summary> /// Выбранный пункт меню /// </summary> Selected } /// <summary> /// Событие при выборе пункта меню /// </summary> public event Action? Selected = null; /// <summary> /// Состояние пункта меню /// </summary> public MenuItemState _state = MenuItemState.Normal; /// <summary> /// ID пункта меню /// </summary> public int ID { get; private set; } /// <summary> /// Название пункта меню /// </summary> public string Name { get; set; } /// <summary> /// Состояние пункта меню /// </summary> public MenuItemState State { get => _state; set { _state = value; if (_state == MenuItemState.Selected) { Selected?.Invoke(); _state = MenuItemState.Focused; } } } /// <summary> /// Конструктор пункта меню с заданием ID и имени /// </summary> /// <param name="parID"></param> /// <param name="parName"></param> public MenuItem(int parID, string parName) { ID = parID; Name = parName; } } }