diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-09-28 08:29:55 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-09-28 08:29:55 +1000 |
| commit | f09ba5ffd53bf7d28e0dc516c00a8f69ca7efae9 (patch) | |
| tree | affce5567186d8944686afd824bf4ee4f7ee4d2d /src/ui/include/event_binding.hpp | |
| parent | f168bfab7698f28492c7693263525945a26cbcc8 (diff) | |
| download | tangara-fw-f09ba5ffd53bf7d28e0dc516c00a8f69ca7efae9.tar.gz | |
Use bindey for databinding instead of hand rolling ui updates
Diffstat (limited to 'src/ui/include/event_binding.hpp')
| -rw-r--r-- | src/ui/include/event_binding.hpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ui/include/event_binding.hpp b/src/ui/include/event_binding.hpp new file mode 100644 index 00000000..19514db4 --- /dev/null +++ b/src/ui/include/event_binding.hpp @@ -0,0 +1,30 @@ +/* + * Copyright 2023 jacqueline <me@jacqueline.id.au> + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#pragma once + +#include <cstdint> + +#include "lvgl.h" + +#include "core/lv_event.h" +#include "core/lv_obj.h" +#include "nod/nod.hpp" + +namespace ui { + +class EventBinding { + public: + EventBinding(lv_obj_t* obj, lv_event_code_t ev); + + auto signal() -> nod::signal<void(lv_obj_t*)>& { return signal_; } + + private: + lv_obj_t* obj_; + nod::signal<void(lv_obj_t*)> signal_; +}; + +} // namespace ui |
