Commit 7bc9815772d0b89334a9a67b69da8a7daf80b1ff

Edward Rudd 2013-10-12T11:21:40

added simple Drag & drop test

diff --git a/test/Makefile.in b/test/Makefile.in
index 12c3f0d..f57c460 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -4,7 +4,7 @@ srcdir  = @srcdir@
 
 CC      = @CC@
 EXE	= @EXE@
-CFLAGS  = @CFLAGS@
+CFLAGS  = @CFLAGS@ -g
 LIBS	= @LIBS@
 
 TARGETS = \
@@ -14,6 +14,7 @@ TARGETS = \
 	testautomation$(EXE) \
 	testdraw2$(EXE) \
 	testdrawchessboard$(EXE) \
+	testdropfile$(EXE) \
 	testerror$(EXE) \
 	testfile$(EXE) \
 	testgamecontroller$(EXE) \
@@ -108,6 +109,9 @@ testdraw2$(EXE): $(srcdir)/testdraw2.c
 testdrawchessboard$(EXE): $(srcdir)/testdrawchessboard.c
 	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
 
+testdropfile$(EXE): $(srcdir)/testdropfile.c
+	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
+
 testerror$(EXE): $(srcdir)/testerror.c
 	$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
 
diff --git a/test/testdropfile.c b/test/testdropfile.c
new file mode 100644
index 0000000..9f4fa7b
--- /dev/null
+++ b/test/testdropfile.c
@@ -0,0 +1,87 @@
+/*
+  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely.
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "SDL_test_common.h"
+
+static SDLTest_CommonState *state;
+
+/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
+static void
+quit(int rc)
+{
+    SDLTest_CommonQuit(state);
+    exit(rc);
+}
+
+int
+main(int argc, char *argv[])
+{
+    int i, done;
+    SDL_Event event;
+
+	/* Enable standard application logging */
+    SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
+
+    /* Initialize test framework */
+    state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
+    if (!state) {
+        return 1;
+    }
+
+    for (i = 1; i < argc;) {
+        int consumed;
+
+        consumed = SDLTest_CommonArg(state, i);
+        if (consumed == 0) {
+            consumed = -1;
+        }
+        if (consumed < 0) {
+            SDL_Log("Usage: %s %s\n", argv[0], SDLTest_CommonUsage(state));
+            quit(1);
+        }
+        i += consumed;
+    }
+    if (!SDLTest_CommonInit(state)) {
+        quit(2);
+    }
+
+    for (i = 0; i < state->num_windows; ++i) {
+        SDL_Renderer *renderer = state->renderers[i];
+        SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
+        SDL_RenderClear(renderer);
+        SDL_RenderPresent(renderer);
+    }
+
+    /* Main render loop */
+    done = 0;
+    while (!done) {
+        /* Check for events */
+        while (SDL_PollEvent(&event)) {
+            SDLTest_CommonEvent(state, &event, &done);
+
+            if (event.type == SDL_DROPFILE) {
+                char *dropped_filedir = event.drop.file;
+                SDL_Log("File dropped on window: %s", dropped_filedir);
+                SDL_free(dropped_filedir);
+            }
+        }
+    }
+
+    quit(0);
+    /* keep the compiler happy ... */
+    return(0);
+}
+
+/* vi: set ts=4 sw=4 expandtab: */