|
| template<detail::StatelessCallable F> |
| Derived & | on (lv_event_code_t code, F &&fn) |
| | Registers a stateless callback for the given event code.
|
| |
| template<auto MemFn, typename T > |
| Derived & | on (lv_event_code_t code, T *instance) |
| | Registers a member function pointer as an event callback — zero-cost trampoline.
|
| |
| template<detail::StatelessCallable F> |
| Derived & | on_click (F &&fn) |
| | Registers a stateless click callback (shorthand for on(LV_EVENT_CLICKED, fn)).
|
| |
| template<auto MemFn, typename T > |
| Derived & | on_click (T *instance) |
| | Registers a member function click callback.
|
| |
| template<detail::StatelessCallable F> |
| Derived & | on_value_changed (F &&fn) |
| | Registers a stateless value-changed callback (shorthand for on(LV_EVENT_VALUE_CHANGED, fn)).
|
| |
| template<auto MemFn, typename T > |
| Derived & | on_value_changed (T *instance) |
| | Registers a member function value-changed callback.
|
| |
CRTP mixin that adds type-safe LVGL event registration to widget classes.
Provides overloaded on() methods for:
- Stateless (non-capturing) lambdas and function pointers, registered directly as LVGL callbacks without any indirection.
- Member function pointers as non-type template parameters, using a zero-cost trampoline that reads the instance from the LVGL user-data slot.
Convenience wrappers on_click() and on_value_changed() cover the most common event codes.
- Template Parameters
-
| Derived | The concrete widget class inheriting this mixin. Must expose a get() method returning lv_obj_t*. |
template<typename Derived >
template<detail::StatelessCallable F>
Registers a stateless callback for the given event code.
Only participates in overload resolution when F satisfies detail::StatelessCallable (i.e., non-capturing lambda or function pointer).
- Template Parameters
-
| F | Callable type satisfying detail::StatelessCallable. |
- Parameters
-
| [in] | code | Event code to listen for (e.g., LV_EVENT_CLICKED). |
| [in] | fn | Callback function; stored as a raw function pointer. |
- Returns
- Reference to the derived object for method chaining.
template<typename Derived >
template<auto MemFn, typename T >
Registers a member function pointer as an event callback — zero-cost trampoline.
The instance pointer is stored in the LVGL user-data slot and recovered inside the inline trampoline lambda. No heap allocation is needed.
- Template Parameters
-
| MemFn | Non-type template parameter: pointer to member function with signature void T::fn(lv_event_t*). |
| T | Class type that owns MemFn. |
- Parameters
-
| [in] | code | Event code to listen for. |
| [in] | instance | Pointer to the object on which MemFn will be called. |
- Returns
- Reference to the derived object for method chaining.