SDL_events.h
Estructura SDL_WindowEvent
Una estructura que contiene datos de eventos de cambio de estado de la ventana.
typedef struct SDL_WindowEvent { Uint32 type; /**< ::SDL_WINDOWEVENT */ Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The associated window */ Uint8 event; /**< ::SDL_WindowEventID */ Uint8 padding1; Uint8 padding2; Uint8 padding3; Sint32 data1; /**< event dependent data */ Sint32 data2; /**< event dependent data */ } SDL_WindowEvent;
Miembros
- type
- SDL_WINDOWEVENT
- timestamp
- Marca de tiempo en milisegundos.
- windowID
- La ventana asociada.
- event
- SDL_WindowEventID.
- data1
- Datos asociados con el evento.
- data2
- Datos asociados con el evento.
Observaciones
SDL_WindowEvent es un miembro de la unión SDL_Event y se utiliza cuando se reporta un evento de tipo SDL_WINDOWEVENT. Se accede a través del campo ventana del evento.
Ejemplo
void PrintEvent(const SDL_Event * event) { if (event->type == SDL_WINDOWEVENT) { switch (event->window.event) { case SDL_WINDOWEVENT_SHOWN: SDL_Log("Window %d shown", event->window.windowID); break; case SDL_WINDOWEVENT_HIDDEN: SDL_Log("Window %d hidden", event->window.windowID); break; case SDL_WINDOWEVENT_EXPOSED: SDL_Log("Window %d exposed", event->window.windowID); break; case SDL_WINDOWEVENT_MOVED: SDL_Log("Window %d moved to %d,%d", event->window.windowID, event->window.data1, event->window.data2); break; case SDL_WINDOWEVENT_RESIZED: SDL_Log("Window %d resized to %dx%d", event->window.windowID, event->window.data1, event->window.data2); break; case SDL_WINDOWEVENT_SIZE_CHANGED: SDL_Log("Window %d size changed to %dx%d", event->window.windowID, event->window.data1, event->window.data2); break; case SDL_WINDOWEVENT_MINIMIZED: SDL_Log("Window %d minimized", event->window.windowID); break; case SDL_WINDOWEVENT_MAXIMIZED: SDL_Log("Window %d maximized", event->window.windowID); break; case SDL_WINDOWEVENT_RESTORED: SDL_Log("Window %d restored", event->window.windowID); break; case SDL_WINDOWEVENT_ENTER: SDL_Log("Mouse entered window %d", event->window.windowID); break; case SDL_WINDOWEVENT_LEAVE: SDL_Log("Mouse left window %d", event->window.windowID); break; case SDL_WINDOWEVENT_FOCUS_GAINED: SDL_Log("Window %d gained keyboard focus", event->window.windowID); break; case SDL_WINDOWEVENT_FOCUS_LOST: SDL_Log("Window %d lost keyboard focus", event->window.windowID); break; case SDL_WINDOWEVENT_CLOSE: SDL_Log("Window %d closed", event->window.windowID); break; #if SDL_VERSION_ATLEAST(2, 0, 5) case SDL_WINDOWEVENT_TAKE_FOCUS: SDL_Log("Window %d is offered a focus", event->window.windowID); break; case SDL_WINDOWEVENT_HIT_TEST: SDL_Log("Window %d has a special hit test", event->window.windowID); break; #endif default: SDL_Log("Window %d got unknown event %d", event->window.windowID, event->window.event); break; } } }