diff options
author | sanine-a <sanine.not@pm.me> | 2020-05-22 23:50:07 -0500 |
---|---|---|
committer | sanine-a <sanine.not@pm.me> | 2020-05-22 23:50:07 -0500 |
commit | 3cf958fb0836cc07df413792be0266fe80988e00 (patch) | |
tree | 141a0ce4a001388471ae6141ba25b236159258d5 | |
parent | ad50ee243d9d7ac30ef507acd01bbc4ccb02f862 (diff) |
add honey_key_unbind_all()
-rw-r--r-- | include/input.h | 6 | ||||
-rw-r--r-- | src/input.c | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/input.h b/include/input.h index 6482f1f..d80b860 100644 --- a/include/input.h +++ b/include/input.h @@ -175,6 +175,12 @@ void honey_key_bind(int key, void (*callback)(void*, int), void* data); */ void honey_key_unbind(int key); +/** @brief Unbind all key callbacks. + * + * THIS FUNCTION DOES NOT FREE MEMORY! If you allocated any, be sure to free it yourself! + */ +void honey_key_unbind_all(); + void default_honey_keyboard_callback(honey_window window, int key, int scancode, int action, int mods); #endif diff --git a/src/input.c b/src/input.c index 7188560..bae32c6 100644 --- a/src/input.c +++ b/src/input.c @@ -39,6 +39,15 @@ void honey_key_unbind(int key) { /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +void honey_key_unbind_all() { + for (int i=0; i<HONEY_N_KEYS; i++) { + honey_key_callbacks[i] = NULL; + honey_key_callbacks_data[i] = NULL; + } +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + void default_honey_keyboard_callback(honey_window window, int key, int scancode, int action, int mods) { switch (key) { case GLFW_KEY_UNKNOWN: |