aboutsummaryrefslogtreecommitdiff
path: root/tests/test_hooks.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_hooks.c')
-rw-r--r--tests/test_hooks.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/test_hooks.c b/tests/test_hooks.c
new file mode 100644
index 0000000..ad56aa9
--- /dev/null
+++ b/tests/test_hooks.c
@@ -0,0 +1,36 @@
+#include "saffron_api.h"
+#include <saffron.h>
+#include <SDL3/SDL.h>
+#include <stdio.h>
+
+bool hook_callback(SDL_Event* event) {
+ printf("got an event!\n");
+ return false; // we didnt consume the event
+}
+
+bool hook_callback_2(SDL_Event* event) {
+ printf("second hook got an event!\n");
+ return true; // we consumed the event
+}
+
+bool hook_callback_3(SDL_Event* event) {
+ printf("you should never see this, a hook with higher priority (hook_callback_2) should have consumed this event\n");
+ return false;
+}
+
+int main() {
+ saffron_init();
+
+ SaffronWindow* window = saffron_window_new("Saffron hooks test", 800, 600);
+
+ saffron_hook_sdl_all_events(window, hook_callback, 999);
+ saffron_hook_sdl_all_events(window, hook_callback_2, 2);
+ saffron_hook_sdl_all_events(window, hook_callback_3, 1);
+
+ saffron_window_main(window);
+
+ saffron_window_free(window);
+ saffron_quit();
+
+ return 0;
+}