SDL Wiki

SDL_WindowEvent

A structure that contains window state change event data.

Data Fields

Uint32

type

SDL_EVENT_WINDOW_HIDDEN
SDL_EVENT_WINDOW_EXPOSED
SDL_EVENT_WINDOW_MOVED
SDL_EVENT_WINDOW_RESIZED
SDL_EVENT_WINDOW_SIZE_CHANGED
SDL_EVENT_WINDOW_MINIMIZED
SDL_EVENT_WINDOW_MAXIMIZED
SDL_EVENT_WINDOW_RESTORED
SDL_EVENT_WINDOW_MOUSE_ENTER
SDL_EVENT_WINDOW_MOUSE_LEAVE
SDL_EVENT_WINDOW_FOCUS_GAINED
SDL_EVENT_WINDOW_FOCUS_LOST
SDL_EVENT_WINDOW_CLOSE_REQUESTED
SDL_EVENT_WINDOW_TAKE_FOCUS
SDL_EVENT_WINDOW_HIT_TEST
SDL_EVENT_WINDOW_ICCPROF_CHANGED
SDL_EVENT_WINDOW_DISPLAY_CHANGED

Uint32

timestamp

timestamp of the event

Uint32

windowID

the associated window

Sint32

data1

event dependent data

Sint32

data2

event dependent data

Code Examples

#include <SDL3/SDL.h>

void PrintEvent(const SDL_Event * event)
{
    if (event->type >= SDL_EVENT_WINDOW_FIRST && event->type <= SDL_EVENT_WINDOW_LAST) {
        switch (event->type) {
        case SDL_EVENT_WINDOW_SHOWN:
            SDL_Log("Window %d shown", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_HIDDEN:
            SDL_Log("Window %d hidden", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_EXPOSED:
            SDL_Log("Window %d exposed", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_MOVED:
            SDL_Log("Window %d moved to %d,%d",
                    event->window.windowID, event->window.data1,
                    event->window.data2);
            break;
        case SDL_EVENT_WINDOW_RESIZED:
            SDL_Log("Window %d resized to %dx%d",
                    event->window.windowID, event->window.data1,
                    event->window.data2);
            break;
        case SDL_EVENT_WINDOW_SIZE_CHANGED:
            SDL_Log("Window %d size changed to %dx%d",
                    event->window.windowID, event->window.data1,
                    event->window.data2);
            break;
        case SDL_EVENT_WINDOW_MINIMIZED:
            SDL_Log("Window %d minimized", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_MAXIMIZED:
            SDL_Log("Window %d maximized", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_RESTORED:
            SDL_Log("Window %d restored", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_MOUSE_ENTER:
            SDL_Log("Mouse entered window %d",
                    event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_MOUSE_LEAVE:
            SDL_Log("Mouse left window %d", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_FOCUS_GAINED:
            SDL_Log("Window %d gained keyboard focus",
                    event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_FOCUS_LOST:
            SDL_Log("Window %d lost keyboard focus",
                    event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_CLOSE_REQUESTED:
            SDL_Log("Window %d closed", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_TAKE_FOCUS:
            SDL_Log("Window %d is offered a focus", event->window.windowID);
            break;
        case SDL_EVENT_WINDOW_HIT_TEST:
            SDL_Log("Window %d has a special hit test", event->window.windowID);
            break;
        default:
            SDL_Log("Window %d got unknown event %d",
                    event->window.windowID, event->window.type);
            break;
        }
    }
}

Remarks

SDL_WindowEvent is a member of the SDL_Event union and is used when an event of type SDL_WINDOWEVENT is reported. You would access it through the event's window field.

SDL_EventType
SDL_WindowEventID
SDL_Event

CategoryStruct, CategoryEvents, CategoryVideo


[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.