= SDL_DropEvent = A structure that contains an event used to request a file open by the system. == Data Fields == {| |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 |} == Code Examples == // Example program: // SDL_DropEvent usage #include "SDL.h" int main(int argc, char *argv[]) { SDL_bool done; SDL_Window *window; SDL_Event event; // Declare event handle char* dropped_filedir; // Pointer for directory of dropped file SDL_Init(SDL_INIT_VIDEO); // SDL2 initialization window = SDL_CreateWindow( // Create a window "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... SDL_Log("Could not create window: %s", SDL_GetError()); 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 ); SDL_free(dropped_filedir); // Free dropped_filedir memory break; } } } SDL_Delay(0); } SDL_DestroyWindow(window); // Close and destroy the window SDL_Quit(); // Clean up return 0; } == Remarks == [[SDL_DropEvent]] is a member of the [[SDL_Event]] union and is used when an event of type SDL_DROPFILE, SDL_DROPTEXT, SDL_DROPBEGIN, or SDL_DROPCOMPLETE is reported. You would access it through the event's drop field. These events are enabled by default. You can disable it with [[SDL_EventState]](). If these events are enabled you must free the filename in the events using SDL_free(). SDL_DROPTEXT, SDL_DROPBEGIN, and SDL_DROPCOMPLETE are available since SDL 2.0.5. === Mac OS X === To enable drag&drop on your SDL app, you must ''also'' edit your info.plist file. Add/Modify '''Document Types.''' For example, to enable all document types, add the "public.data" mime type as a document type. == Version == This structure is available since SDL 2.0.0. == Related Enumerations == :[[SDL_EventType]] == Related Structures == :[[SDL_Event]] == Related Functions == :[[SDL_EventState]] ---- [[CategoryStruct]], [[CategoryEvents]]