13 _eventListener(eventListener)
25 return event.key.windowID;
27 case SDL_MOUSEBUTTONDOWN :
28 case SDL_MOUSEBUTTONUP :
29 return event.button.windowID;
31 case SDL_MOUSEMOTION :
32 return event.motion.windowID;
35 return event.wheel.windowID;
37 case SDL_WINDOWEVENT :
38 return event.window.windowID;
41 return event.text.windowID;
52 if (eventWindow ==
nullptr) {
59 const TextEvent arg{eventWindow, 0,
event.text.text};
68 arg.
_pressed =
event.type == SDL_KEYDOWN;
70 arg.
scancode =
event.key.keysym.scancode;
71 arg.
sym =
event.key.keysym.sym;
73 if ((event.key.keysym.mod & KMOD_LSHIFT) != 0) {
76 if ((event.key.keysym.mod & KMOD_RSHIFT) != 0) {
79 if ((event.key.keysym.mod & KMOD_LCTRL) != 0) {
82 if ((event.key.keysym.mod & KMOD_RCTRL) != 0) {
85 if ((event.key.keysym.mod & KMOD_LALT) != 0) {
88 if ((event.key.keysym.mod & KMOD_RALT) != 0) {
91 if ((event.key.keysym.mod & KMOD_LGUI) != 0) {
94 if ((event.key.keysym.mod & KMOD_RGUI) != 0) {
97 if ((event.key.keysym.mod & KMOD_NUM) != 0) {
100 if ((event.key.keysym.mod & KMOD_CAPS) != 0) {
103 if ((event.key.keysym.mod & KMOD_MODE) != 0) {
113 case SDL_MOUSEBUTTONDOWN:
114 case SDL_MOUSEBUTTONUP:
117 arg.pressed(event.type == SDL_MOUSEBUTTONDOWN);
118 switch (event.button.button) {
119 case SDL_BUTTON_LEFT:
122 case SDL_BUTTON_RIGHT:
125 case SDL_BUTTON_MIDDLE:
146 arg.numCliks(
to_U8(event.button.clicks));
148 state.X.abs =
event.button.x;
149 state.Y.abs =
event.button.y;
162 case SDL_MOUSEMOTION:
166 state.X.abs =
event.motion.x;
167 state.X.rel =
event.motion.xrel;
168 state.Y.abs =
event.motion.y;
169 state.Y.rel =
event.motion.yrel;
170 state.HWheel =
event.wheel.x;
171 state.VWheel =
event.wheel.y;
176 case SDL_CONTROLLERAXISMOTION:
177 case SDL_JOYAXISMOTION:
180 jData.
_gamePad =
event.type == SDL_CONTROLLERAXISMOTION;
185 element.
_data = jData;
194 case SDL_JOYBALLMOTION:
202 element.
_data = jData;
211 case SDL_JOYHATMOTION:
215 switch (event.jhat.value) {
216 case SDL_HAT_CENTERED:
231 case SDL_HAT_RIGHTUP:
235 case SDL_HAT_RIGHTDOWN:
243 case SDL_HAT_LEFTDOWN:
251 jData.
_data = PovMask;
255 element.
_data = jData;
264 case SDL_CONTROLLERBUTTONDOWN:
265 case SDL_CONTROLLERBUTTONUP:
266 case SDL_JOYBUTTONDOWN:
267 case SDL_JOYBUTTONUP:
270 jData.
_gamePad =
event.type == SDL_CONTROLLERBUTTONDOWN ||
event.type == SDL_CONTROLLERBUTTONUP;
272 const Uint8 state = jData.
_gamePad ?
event.cbutton.state :
event.jbutton.state;
277 element.
_data = jData;
283 if (event.type == SDL_JOYBUTTONDOWN || event.type == SDL_CONTROLLERBUTTONDOWN) {
290 case SDL_CONTROLLERDEVICEADDED:
291 case SDL_CONTROLLERDEVICEREMOVED:
292 case SDL_JOYDEVICEADDED:
293 case SDL_JOYDEVICEREMOVED:
296 jData.
_gamePad =
event.type == SDL_CONTROLLERDEVICEADDED ||
event.type == SDL_CONTROLLERDEVICEREMOVED;
297 jData.
_data = (jData.
_gamePad ?
event.type == SDL_CONTROLLERDEVICEADDED :
event.type == SDL_JOYDEVICEADDED) ? 1 : 0;
301 element.
_data = jData;
311 case SDL_CONTROLLERDEVICEREMAPPED:
Class that provides an interface between our framework and the OS (start/stop, display support,...
WindowManager & windowManager() noexcept
DisplayWindow * getWindowByID(U32 ID) noexcept
Handle console commands that start with a forward slash.
constexpr U32 to_U32(const T value)
constexpr U8 to_U8(const T value)
constexpr auto to_base(const Type value) -> Type