testnative: print events with --info event

This commit is contained in:
Sam Lantinga 2024-08-04 08:20:54 -07:00
parent 6f6f4fbfd3
commit ef6521aee7
3 changed files with 34 additions and 3 deletions

View File

@ -208,9 +208,16 @@ SDL_bool SDLTest_CommonInit(SDLTest_CommonState *state);
SDL_bool SDLTest_CommonDefaultArgs(SDLTest_CommonState *state, const int argc, char **argv);
/**
* Common event handler for test windows if you use a standard SDL_main.
* Print the details of an event.
*
* This will free data from the event, like the string in a drop event!
* This is automatically called by SDLTest_CommonEvent() as needed.
*
* \param event The event to print.
*/
void SDLTest_PrintEvent(const SDL_Event *event);
/**
* Common event handler for test windows if you use a standard SDL_main.
*
* \param state The common state used to create test window.
* \param event The event to handle.

View File

@ -615,6 +615,22 @@ int SDLTest_CommonArg(SDLTest_CommonState *state, int index)
state->hide_cursor = SDL_TRUE;
return 1;
}
} else {
if (SDL_strcasecmp(argv[index], "--info") == 0) {
++index;
if (!argv[index]) {
return -1;
}
if (SDL_strcasecmp(argv[index], "all") == 0) {
state->verbose |= VERBOSE_EVENT;
return 2;
}
if (SDL_strcasecmp(argv[index], "event") == 0) {
state->verbose |= VERBOSE_EVENT;
return 2;
}
return -1;
}
}
if (state->flags & SDL_INIT_AUDIO) {
@ -1555,7 +1571,7 @@ static const char *GamepadButtonName(const SDL_GamepadButton button)
}
}
static void SDLTest_PrintEvent(const SDL_Event *event)
void SDLTest_PrintEvent(const SDL_Event *event)
{
switch (event->type) {
case SDL_EVENT_SYSTEM_THEME_CHANGED:

View File

@ -206,6 +206,14 @@ int main(int argc, char *argv[])
while (!done) {
/* Check for events */
while (SDL_PollEvent(&event)) {
if (state->verbose & VERBOSE_EVENT) {
if (((event.type != SDL_EVENT_MOUSE_MOTION) &&
(event.type != SDL_EVENT_FINGER_MOTION)) ||
(state->verbose & VERBOSE_MOTION)) {
SDLTest_PrintEvent(&event);
}
}
switch (event.type) {
case SDL_EVENT_WINDOW_EXPOSED:
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);