aboutsummaryrefslogtreecommitdiff
path: root/src/saffron_event_hooks.c
blob: d3a2c4351f31a3f9b5b4fb8c799fb8c7a3886ada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "saffron_api.h"
#include <SDL3/SDL.h>
#include <saffron.h>
#include <saffron_event_hooks.h>

void saffron_hook_sdl_all_events(SaffronWindow* window, bool (*callback)(SDL_Event* event), int priority) {
	window->hooks[window->hook_count].callback = callback;
	window->hooks[window->hook_count].priority = priority;
	window->hook_count++;
	for (int i = 0; i < window->hook_count; i++) {
		for (int j = i + 1; j < window->hook_count; j++) {
			if (window->hooks[j].priority > window->hooks[i].priority) {
				SfInternalEventHook tmp = window->hooks[i];
				window->hooks[i] = window->hooks[j];
				window->hooks[j] = tmp;
			}
		}
	}
}