summaryrefslogtreecommitdiff
path: root/src/ui/event_binding.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-09-28 08:29:55 +1000
committerjacqueline <me@jacqueline.id.au>2023-09-28 08:29:55 +1000
commitf09ba5ffd53bf7d28e0dc516c00a8f69ca7efae9 (patch)
treeaffce5567186d8944686afd824bf4ee4f7ee4d2d /src/ui/event_binding.cpp
parentf168bfab7698f28492c7693263525945a26cbcc8 (diff)
downloadtangara-fw-f09ba5ffd53bf7d28e0dc516c00a8f69ca7efae9.tar.gz
Use bindey for databinding instead of hand rolling ui updates
Diffstat (limited to 'src/ui/event_binding.cpp')
-rw-r--r--src/ui/event_binding.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/ui/event_binding.cpp b/src/ui/event_binding.cpp
new file mode 100644
index 00000000..ed15ccfb
--- /dev/null
+++ b/src/ui/event_binding.cpp
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2023 jacqueline <me@jacqueline.id.au>
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+#include "event_binding.hpp"
+
+#include "core/lv_event.h"
+
+namespace ui {
+
+static auto event_cb(lv_event_t* ev) -> void {
+ EventBinding* binding =
+ static_cast<EventBinding*>(lv_event_get_user_data(ev));
+ binding->signal()(lv_event_get_target(ev));
+}
+
+EventBinding::EventBinding(lv_obj_t* obj, lv_event_code_t ev) {
+ lv_obj_add_event_cb(obj, event_cb, ev, this);
+}
+
+} // namespace ui