mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-10 04:37:55 +08:00
d76a346376
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
54 lines
1.8 KiB
C
54 lines
1.8 KiB
C
#include "../lv_examples.h"
|
|
#if LV_BUILD_EXAMPLES && LV_USE_SWITCH
|
|
|
|
static void event_cb(lv_event_t * e)
|
|
{
|
|
lv_event_code_t code = lv_event_get_code(e);
|
|
lv_obj_t * label = (lv_obj_t *) lv_event_get_user_data(e);
|
|
|
|
switch(code) {
|
|
case LV_EVENT_PRESSED:
|
|
lv_label_set_text(label, "The last button event:\nLV_EVENT_PRESSED");
|
|
break;
|
|
case LV_EVENT_CLICKED:
|
|
lv_label_set_text(label, "The last button event:\nLV_EVENT_CLICKED");
|
|
break;
|
|
case LV_EVENT_LONG_PRESSED:
|
|
lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED");
|
|
break;
|
|
case LV_EVENT_LONG_PRESSED_REPEAT:
|
|
lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT");
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @title Handle multiple button events
|
|
* @brief Report the most recent button event on a second label.
|
|
*
|
|
* A centered button with a `Click me!` label is paired with an info label
|
|
* on the active screen. A single callback subscribed with `LV_EVENT_ALL`
|
|
* switches on `lv_event_get_code` and writes the name of the latest event
|
|
* (`LV_EVENT_PRESSED`, `LV_EVENT_CLICKED`, `LV_EVENT_LONG_PRESSED`,
|
|
* `LV_EVENT_LONG_PRESSED_REPEAT`) into the info label.
|
|
*/
|
|
void lv_example_event_button(void)
|
|
{
|
|
lv_obj_t * btn = lv_button_create(lv_screen_active());
|
|
lv_obj_set_size(btn, 100, 50);
|
|
lv_obj_center(btn);
|
|
|
|
lv_obj_t * btn_label = lv_label_create(btn);
|
|
lv_label_set_text(btn_label, "Click me!");
|
|
lv_obj_center(btn_label);
|
|
|
|
lv_obj_t * info_label = lv_label_create(lv_screen_active());
|
|
lv_label_set_text(info_label, "The last button event:\nNone");
|
|
|
|
lv_obj_add_event_cb(btn, event_cb, LV_EVENT_ALL, info_label);
|
|
}
|
|
|
|
#endif
|