summaryrefslogtreecommitdiff
path: root/render_sdl.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-06-14 09:48:46 -0700
committerMichael Pavone <pavone@retrodev.com>2017-06-14 09:48:46 -0700
commitee59b3c6b69e9b5cfb0f5135dfb5fe3ce9a1a8c9 (patch)
tree351b79f6a4fb4041c37dca51dd9600a6d6c33424 /render_sdl.c
parente591e6333eb073c557e0c827bc132f6568017677 (diff)
Initial support for drag and drop. Some work needed for proper menu integration.
Diffstat (limited to 'render_sdl.c')
-rwxr-xr-xrender_sdl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/render_sdl.c b/render_sdl.c
index d2fda42..8e1e7f6 100755
--- a/render_sdl.c
+++ b/render_sdl.c
@@ -914,6 +914,12 @@ static uint8_t scancode_map[SDL_NUM_SCANCODES] = {
[SDL_SCANCODE_KP_PERIOD] = 0x71,
};
+static drop_handler drag_drop_handler;
+void render_set_drag_drop_handler(drop_handler handler)
+{
+ drag_drop_handler = handler;
+}
+
static int32_t handle_event(SDL_Event *event)
{
switch (event->type) {
@@ -986,6 +992,12 @@ static int32_t handle_event(SDL_Event *event)
break;
}
break;
+ case SDL_DROPFILE:
+ if (drag_drop_handler) {
+ drag_drop_handler(event->drop.file);
+ }
+ SDL_free(event->drop.file);
+ break;
case SDL_QUIT:
puts("");
exit(0);