An event used to request a file open by the system (event.drop.*)
Defined in SDL_events.h
typedef struct SDL_DropEvent
{/**< SDL_DROPBEGIN or SDL_DROPFILE or SDL_DROPTEXT or SDL_DROPCOMPLETE */
Uint32 type; /**< In milliseconds, populated using SDL_GetTicks() */
Uint32 timestamp; char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */
/**< The window that was dropped on, if any */
Uint32 windowID; } SDL_DropEvent;
This event is enabled by default, you can disable it with SDL_EventState().
If this event is enabled, you must free the filename in the event.
// Example program:
// SDL_DropEvent usage
#include "SDL.h"
int main(int argc, char *argv[]) {
SDL_bool done;
SDL_Window *window;// Declare event handle
SDL_Event event; char* dropped_filedir; // Pointer for directory of dropped file
// SDL2 initialization
SDL_Init(SDL_INIT_VIDEO);
// Create a window
window = SDL_CreateWindow( "SDL_DropEvent usage, please drop the file on window",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,640,
480,
SDL_WINDOW_OPENGL
);
// Check that the window was successfully made
if (window == NULL) {
// In the event that the window could not be made...
"Could not create window: %s", SDL_GetError());
SDL_Log(
SDL_Quit();return 1;
}
SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
done = SDL_FALSE;while (!done) { // Program loop
while (!done && SDL_PollEvent(&event)) {
switch (event.type) {
case (SDL_QUIT): { // In case of exit
done = SDL_TRUE;break;
}
case (SDL_DROPFILE): { // In case if dropped file
dropped_filedir = event.drop.file;// Shows directory of dropped file
SDL_ShowSimpleMessageBox(
SDL_MESSAGEBOX_INFORMATION,"File dropped on window",
dropped_filedir,
window
);// Free dropped_filedir memory
SDL_free(dropped_filedir); break;
}
}
}0);
SDL_Delay(
}
// Close and destroy the window
SDL_DestroyWindow(window);
// Clean up
SDL_Quit(); return 0;
}
Uint32 | type | the event type; SDL_DROPFILE, SDL_DROPTEXT, SDL_DROPBEGIN, or SDL_DROPCOMPLETE |
Uint32 | timestamp | timestamp of the event |
char* | file | the file name, which should be freed with SDL_free(), is NULL on BEGIN/COMPLETE |
Uint32 | windowID | the window that was dropped on, if any |
CategoryAPI, CategoryAPIStruct, CategoryStruct, CategoryEvents