summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/input.h6
-rw-r--r--src/input.c9
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: