Event subtype for window events
Defined in [SDL_video.h](https://github.com/libsdl-org/SDL/blob/SDL2/include/SDL_video.h), but apps should _only_ `#include "SDL.h"`!
typedef enum SDL_WindowEventID
{/**< Never used */
SDL_WINDOWEVENT_NONE, /**< Window has been shown */
SDL_WINDOWEVENT_SHOWN, /**< Window has been hidden */
SDL_WINDOWEVENT_HIDDEN, /**< Window has been exposed and should be
SDL_WINDOWEVENT_EXPOSED, redrawn */
/**< Window has been moved to data1, data2
SDL_WINDOWEVENT_MOVED, */
/**< Window has been resized to data1xdata2 */
SDL_WINDOWEVENT_RESIZED, /**< The window size has changed, either as
SDL_WINDOWEVENT_SIZE_CHANGED, a result of an API call or through the
system or user changing the window size. */
/**< Window has been minimized */
SDL_WINDOWEVENT_MINIMIZED, /**< Window has been maximized */
SDL_WINDOWEVENT_MAXIMIZED, /**< Window has been restored to normal size
SDL_WINDOWEVENT_RESTORED, and position */
/**< Window has gained mouse focus */
SDL_WINDOWEVENT_ENTER, /**< Window has lost mouse focus */
SDL_WINDOWEVENT_LEAVE, /**< Window has gained keyboard focus */
SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has lost keyboard focus */
SDL_WINDOWEVENT_FOCUS_LOST, /**< The window manager requests that the window be closed */
SDL_WINDOWEVENT_CLOSE, /**< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore) */
SDL_WINDOWEVENT_TAKE_FOCUS, /**< Window had a hit test that wasn't SDL_HITTEST_NORMAL. */
SDL_WINDOWEVENT_HIT_TEST, /**< The ICC profile of the window's display has changed. */
SDL_WINDOWEVENT_ICCPROF_CHANGED,/**< Window has been moved to display data1. */
SDL_WINDOWEVENT_DISPLAY_CHANGED } SDL_WindowEventID;
#include <stdlib.h>
#include "SDL.h"
int main(int argc, char *argv[]) {
int width = 640;
int height = 480;
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
return 1;
}
atexit(SDL_Quit);
SDL_Window* window = SDL_CreateWindow("Example", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
width, height, SDL_WINDOW_RESIZABLE
);
Uint32 windowID = SDL_GetWindowID(window);
while (1) {
SDL_Event event;while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_WINDOWEVENT: {
if (event.window.windowID == windowID) {
switch (event.window.event) {
case SDL_WINDOWEVENT_SIZE_CHANGED: {
width = event.window.data1;
height = event.window.data2;break;
}
case SDL_WINDOWEVENT_CLOSE: {
event.type = SDL_QUIT;
SDL_PushEvent(&event);break;
}
}
}break;
}
case SDL_QUIT: {
return 0;
}
/* ... */
}
}
/* ... */
1);
SDL_Delay(
} }
CategoryAPI, CategoryAPIEnum, CategoryEnum, CategoryVideo, CategoryEvents