From f09ba5ffd53bf7d28e0dc516c00a8f69ca7efae9 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 28 Sep 2023 08:29:55 +1000 Subject: Use bindey for databinding instead of hand rolling ui updates --- src/ui/event_binding.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/ui/event_binding.cpp (limited to 'src/ui/event_binding.cpp') 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 + * + * 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(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 -- cgit v1.2.3