mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
#include "../lv_examples.h"
|
|
#if LV_BUILD_EXAMPLES && LV_USE_LABEL
|
|
|
|
static void short_click_event_cb(lv_event_t * e)
|
|
{
|
|
LV_LOG_USER("Short clicked");
|
|
|
|
lv_obj_t * info_label = lv_event_get_user_data(e);
|
|
lv_indev_t * indev = lv_event_get_param(e);
|
|
uint8_t cnt = lv_indev_get_short_click_streak(indev);
|
|
lv_label_set_text_fmt(info_label, "Short click streak: %"LV_PRIu32, cnt);
|
|
}
|
|
|
|
static void streak_event_cb(lv_event_t * e)
|
|
{
|
|
lv_obj_t * btn = lv_event_get_target(e);
|
|
lv_obj_t * label = lv_obj_get_child(btn, 0);
|
|
const char * text = lv_event_get_user_data(e);
|
|
lv_label_set_text(label, text);
|
|
}
|
|
|
|
void lv_example_event_streak(void)
|
|
{
|
|
lv_obj_t * info_label = lv_label_create(lv_screen_active());
|
|
lv_label_set_text(info_label, "No events yet");
|
|
|
|
lv_obj_t * btn = lv_button_create(lv_screen_active());
|
|
lv_obj_set_size(btn, 100, 50);
|
|
lv_obj_center(btn);
|
|
lv_obj_add_event_cb(btn, short_click_event_cb, LV_EVENT_SHORT_CLICKED, info_label);
|
|
lv_obj_add_event_cb(btn, streak_event_cb, LV_EVENT_SINGLE_CLICKED, "Single clicked");
|
|
lv_obj_add_event_cb(btn, streak_event_cb, LV_EVENT_DOUBLE_CLICKED, "Double clicked");
|
|
lv_obj_add_event_cb(btn, streak_event_cb, LV_EVENT_TRIPLE_CLICKED, "Triple clicked");
|
|
|
|
lv_obj_t * label = lv_label_create(btn);
|
|
lv_label_set_text(label, "Click me!");
|
|
lv_obj_center(label);
|
|
}
|
|
|
|
#endif
|