oveRTOS C++ API
C++20 RAII wrappers for the oveRTOS C API
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ove::lvgl::EventMixin< Derived > Class Template Reference

CRTP mixin that adds type-safe LVGL event registration to widget classes. More...

#include <lvgl.hpp>

Public Member Functions

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>
Derivedon_click (F &&fn)
 Registers a stateless click callback (shorthand for on(LV_EVENT_CLICKED, fn)).
 
template<auto MemFn, typename T >
Derivedon_click (T *instance)
 Registers a member function click callback.
 
template<detail::StatelessCallable F>
Derivedon_value_changed (F &&fn)
 Registers a stateless value-changed callback (shorthand for on(LV_EVENT_VALUE_CHANGED, fn)).
 
template<auto MemFn, typename T >
Derivedon_value_changed (T *instance)
 Registers a member function value-changed callback.
 

Detailed Description

template<typename Derived>
class ove::lvgl::EventMixin< Derived >

CRTP mixin that adds type-safe LVGL event registration to widget classes.

Provides overloaded on() methods for:

Convenience wrappers on_click() and on_value_changed() cover the most common event codes.

Template Parameters
DerivedThe concrete widget class inheriting this mixin. Must expose a get() method returning lv_obj_t*.

Member Function Documentation

◆ on() [1/2]

template<typename Derived >
template<detail::StatelessCallable F>
Derived & ove::lvgl::EventMixin< Derived >::on ( lv_event_code_t  code,
F &&  fn 
)
inline

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
FCallable type satisfying detail::StatelessCallable.
Parameters
[in]codeEvent code to listen for (e.g., LV_EVENT_CLICKED).
[in]fnCallback function; stored as a raw function pointer.
Returns
Reference to the derived object for method chaining.

◆ on() [2/2]

template<typename Derived >
template<auto MemFn, typename T >
Derived & ove::lvgl::EventMixin< Derived >::on ( lv_event_code_t  code,
T *  instance 
)
inline

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
MemFnNon-type template parameter: pointer to member function with signature void T::fn(lv_event_t*).
TClass type that owns MemFn.
Parameters
[in]codeEvent code to listen for.
[in]instancePointer to the object on which MemFn will be called.
Returns
Reference to the derived object for method chaining.

◆ on_click() [1/2]

template<typename Derived >
template<detail::StatelessCallable F>
Derived & ove::lvgl::EventMixin< Derived >::on_click ( F &&  fn)
inline

Registers a stateless click callback (shorthand for on(LV_EVENT_CLICKED, fn)).

Template Parameters
FCallable type satisfying detail::StatelessCallable.
Parameters
[in]fnCallback function invoked on click.
Returns
Reference to the derived object for method chaining.

◆ on_click() [2/2]

template<typename Derived >
template<auto MemFn, typename T >
Derived & ove::lvgl::EventMixin< Derived >::on_click ( T instance)
inline

Registers a member function click callback.

Template Parameters
MemFnNon-type member function pointer.
TClass type owning MemFn.
Parameters
[in]instancePointer to the instance on which MemFn is called.
Returns
Reference to the derived object for method chaining.

◆ on_value_changed() [1/2]

template<typename Derived >
template<detail::StatelessCallable F>
Derived & ove::lvgl::EventMixin< Derived >::on_value_changed ( F &&  fn)
inline

Registers a stateless value-changed callback (shorthand for on(LV_EVENT_VALUE_CHANGED, fn)).

Template Parameters
FCallable type satisfying detail::StatelessCallable.
Parameters
[in]fnCallback function invoked when the widget value changes.
Returns
Reference to the derived object for method chaining.

◆ on_value_changed() [2/2]

template<typename Derived >
template<auto MemFn, typename T >
Derived & ove::lvgl::EventMixin< Derived >::on_value_changed ( T instance)
inline

Registers a member function value-changed callback.

Template Parameters
MemFnNon-type member function pointer.
TClass type owning MemFn.
Parameters
[in]instancePointer to the instance on which MemFn is called.
Returns
Reference to the derived object for method chaining.

The documentation for this class was generated from the following file: