Covellite++  Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
Events.hpp
1
2#pragma once
3#include <string>
4
5namespace covellite
6{
7
8namespace events
9{
10
26class Gui
27{
28public:
29 using TypeId_t = ::std::string;
30
36 {
37 public:
42 class Element
43 {
44 public:
45 const TypeId_t m_Id;
46
47 public:
48 explicit Element(const TypeId_t & _Id) : m_Id(_Id) { }
49 };
50
51 public:
52 Element ElementId(const TypeId_t & _Id) const
53 {
54 return Element{ m_Id + "::" + _Id };
55 }
56
57 public:
58 const TypeId_t m_Id;
59
60 public:
61 explicit Document(const TypeId_t & _Id) : m_Id(_Id) { }
62 };
63
64public:
72 Document DocumentId(const TypeId_t & _Id) const
73 {
74 return Document{ m_EventType + "::" + _Id };
75 }
76
77public:
78 const TypeId_t m_EventType;
79
80public:
81 explicit Gui(const TypeId_t & _EventType) : m_EventType(_EventType) { }
82};
83
101class Click_t final :
102 public Gui
103{
104public:
105 Click_t(void) : Gui("click") {}
106};
107
108namespace { Click_t Click; }
109
125class Press_t final :
126 public Gui
127{
128public:
129 Press_t(void) : Gui("mousedown") {}
130};
131
132namespace { Press_t Press; }
133
149class Change_t final :
150 public Gui
151{
152public:
153 Change_t(void) : Gui("change") {}
154};
155
156namespace { Change_t Change; }
157
158} // namespace events
159
160} // namespace covellite
161
162namespace std
163{
164
165template<>
167{
169
170public:
171 inline size_t operator()(const Element_t & _Id) const
172 {
173 return ::std::hash<::covellite::events::Gui::TypeId_t>{}(_Id.m_Id);
174 }
175};
176
177}
Класс входит в проект Covellite.Gui Базовый класс для событий панели GUI.
Definition Events.hpp:27
Document DocumentId(const TypeId_t &_Id) const
Вспомогательная функция для построения уникального идентификатора элемента.
Definition Events.hpp:72
Вспомогательный класс для создания уникального идентификатора элемента.
Definition Events.hpp:36
Вспомогательный класс для создания уникального идентификатора элемента.
Definition Events.hpp:43
Класс входит в проект Covellite.Gui Класс событий клика по элементу управления.
Definition Events.hpp:103
Класс входит в проект Covellite.Gui Класс событий нажатия элемента управления.
Definition Events.hpp:127
Класс входит в проект Covellite.Gui Класс событий изменения состояния элемента управления.
Definition Events.hpp:151