mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-05-03 20:44:42 +00:00
Allow the progress API to be used on all platforms
It's visually only hooked up on Windows for now, but the API will be internally consistent on all platforms.
This commit is contained in:
@@ -2457,20 +2457,42 @@ SDL_AppResult SDLTest_CommonEventMainCallbacks(SDLTest_CommonState *state, const
|
||||
break;
|
||||
case SDLK_P:
|
||||
if (withAlt) {
|
||||
/* Ctrl-P Cycle through progress states */
|
||||
/* Alt-P cycle through progress states */
|
||||
SDL_Window *window = SDL_GetWindowFromEvent(event);
|
||||
if (window) {
|
||||
float progress_state = SDL_GetWindowProgressState(window);
|
||||
const char *name;
|
||||
SDL_ProgressState progress_state = SDL_GetWindowProgressState(window);
|
||||
progress_state += 1;
|
||||
if (progress_state > SDL_PROGRESS_STATE_ERROR) {
|
||||
progress_state = SDL_PROGRESS_STATE_NONE;
|
||||
}
|
||||
switch (progress_state) {
|
||||
case SDL_PROGRESS_STATE_NONE:
|
||||
name = "NONE";
|
||||
break;
|
||||
case SDL_PROGRESS_STATE_INDETERMINATE:
|
||||
name = "INDETERMINATE";
|
||||
break;
|
||||
case SDL_PROGRESS_STATE_NORMAL:
|
||||
name = "NORMAL";
|
||||
break;
|
||||
case SDL_PROGRESS_STATE_PAUSED:
|
||||
name = "PAUSED";
|
||||
break;
|
||||
case SDL_PROGRESS_STATE_ERROR:
|
||||
name = "ERROR";
|
||||
break;
|
||||
default:
|
||||
name = "UNKNOWN";
|
||||
break;
|
||||
}
|
||||
SDL_Log("Setting progress state to %s", name);
|
||||
SDL_SetWindowProgressState(window, progress_state);
|
||||
}
|
||||
}
|
||||
else if (withControl)
|
||||
{
|
||||
/* Alt-P Increase progress value */
|
||||
/* Ctrl-P increase progress value */
|
||||
SDL_Window *window = SDL_GetWindowFromEvent(event);
|
||||
if (window) {
|
||||
float progress_value = SDL_GetWindowProgressValue(window);
|
||||
@@ -2479,6 +2501,7 @@ SDL_AppResult SDLTest_CommonEventMainCallbacks(SDLTest_CommonState *state, const
|
||||
} else {
|
||||
progress_value += 0.1f;
|
||||
}
|
||||
SDL_Log("Setting progress value to %.1f", progress_value);
|
||||
SDL_SetWindowProgressValue(window, progress_value);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user