added simple Drag & drop test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
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: */