From 4f8e3a38b31a70b1e7d848e64845465b4e325897 Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Thu, 13 May 2021 00:42:52 +0200 Subject: [PATCH] feat(list, win) remove event_cb paramter from *_add_btn() functions It was difficult to handle in the Micropython binding and the user can add events to the returned button in a more flexible way --- examples/scroll/lv_example_scroll_3.c | 4 +- examples/widgets/list/lv_example_list_1.c | 37 +++++++++++++------ .../widgets/tileview/lv_example_tileview_1.c | 20 +++++----- examples/widgets/win/lv_example_win_1.c | 18 +++++---- src/extra/widgets/list/lv_list.c | 3 +- src/extra/widgets/list/lv_list.h | 2 +- src/extra/widgets/win/lv_win.c | 3 +- src/extra/widgets/win/lv_win.h | 2 +- 8 files changed, 53 insertions(+), 36 deletions(-) diff --git a/examples/scroll/lv_example_scroll_3.c b/examples/scroll/lv_example_scroll_3.c index 89a0696f3..8add4e8f0 100644 --- a/examples/scroll/lv_example_scroll_3.c +++ b/examples/scroll/lv_example_scroll_3.c @@ -12,7 +12,7 @@ static void float_btn_event_cb(lv_event_t * e) lv_obj_t * list = lv_event_get_user_data(e); char buf[32]; lv_snprintf(buf, sizeof(buf), "Track %d", btn_cnt); - lv_obj_t * list_btn = lv_list_add_btn(list, LV_SYMBOL_AUDIO, buf, NULL); + lv_obj_t * list_btn = lv_list_add_btn(list, LV_SYMBOL_AUDIO, buf); btn_cnt++; lv_obj_move_foreground(float_btn); @@ -33,7 +33,7 @@ void lv_example_scroll_3(void) for(btn_cnt = 1; btn_cnt <= 2; btn_cnt++) { char buf[32]; lv_snprintf(buf, sizeof(buf), "Track %d", btn_cnt); - lv_list_add_btn(list, LV_SYMBOL_AUDIO, buf, NULL); + lv_list_add_btn(list, LV_SYMBOL_AUDIO, buf); } lv_obj_t * float_btn = lv_btn_create(list); diff --git a/examples/widgets/list/lv_example_list_1.c b/examples/widgets/list/lv_example_list_1.c index 5ad51a298..f8467ad34 100644 --- a/examples/widgets/list/lv_example_list_1.c +++ b/examples/widgets/list/lv_example_list_1.c @@ -18,20 +18,35 @@ void lv_example_list_1(void) lv_obj_center(list1); /*Add buttons to the list*/ + lv_obj_t * btn; + lv_list_add_text(list1, "File"); - lv_list_add_btn(list1, LV_SYMBOL_FILE, "New", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_DIRECTORY, "Open", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_SAVE, "Save", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Delete", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_EDIT, "Edit", event_handler); + btn = lv_list_add_btn(list1, LV_SYMBOL_FILE, "New"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_DIRECTORY, "Open"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_SAVE, "Save"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Delete"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_EDIT, "Edit"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + lv_list_add_text(list1, "Connectivity"); - lv_list_add_btn(list1, LV_SYMBOL_BLUETOOTH, "Bluetooth", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_GPS, "Navigation", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_USB, "USB", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_BATTERY_FULL, "Battery", event_handler); + btn = lv_list_add_btn(list1, LV_SYMBOL_BLUETOOTH, "Bluetooth"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_GPS, "Navigation"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_USB, "USB"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_BATTERY_FULL, "Battery"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + lv_list_add_text(list1, "Exit"); - lv_list_add_btn(list1, LV_SYMBOL_OK, "Apply", event_handler); - lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Close", event_handler); + btn = lv_list_add_btn(list1, LV_SYMBOL_OK, "Apply"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + btn = lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Close"); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); } #endif diff --git a/examples/widgets/tileview/lv_example_tileview_1.c b/examples/widgets/tileview/lv_example_tileview_1.c index e36d54246..b24eb0afe 100644 --- a/examples/widgets/tileview/lv_example_tileview_1.c +++ b/examples/widgets/tileview/lv_example_tileview_1.c @@ -33,16 +33,16 @@ void lv_example_tileview_1(void) lv_obj_t * list = lv_list_create(tile3); lv_obj_set_size(list, LV_PCT(100), LV_PCT(100)); - lv_list_add_btn(list, NULL, "One", NULL); - lv_list_add_btn(list, NULL, "Two", NULL); - lv_list_add_btn(list, NULL, "Three", NULL); - lv_list_add_btn(list, NULL, "Four", NULL); - lv_list_add_btn(list, NULL, "Five", NULL); - lv_list_add_btn(list, NULL, "Six", NULL); - lv_list_add_btn(list, NULL, "Seven", NULL); - lv_list_add_btn(list, NULL, "Eight", NULL); - lv_list_add_btn(list, NULL, "Nine", NULL); - lv_list_add_btn(list, NULL, "Ten", NULL); + lv_list_add_btn(list, NULL, "One"); + lv_list_add_btn(list, NULL, "Two"); + lv_list_add_btn(list, NULL, "Three"); + lv_list_add_btn(list, NULL, "Four"); + lv_list_add_btn(list, NULL, "Five"); + lv_list_add_btn(list, NULL, "Six"); + lv_list_add_btn(list, NULL, "Seven"); + lv_list_add_btn(list, NULL, "Eight"); + lv_list_add_btn(list, NULL, "Nine"); + lv_list_add_btn(list, NULL, "Ten"); } diff --git a/examples/widgets/win/lv_example_win_1.c b/examples/widgets/win/lv_example_win_1.c index f91fdc502..c5e34890d 100644 --- a/examples/widgets/win/lv_example_win_1.c +++ b/examples/widgets/win/lv_example_win_1.c @@ -4,20 +4,24 @@ static void event_handler(lv_event_t * e) { - lv_event_code_t code = lv_event_get_code(e); lv_obj_t * obj = lv_event_get_target(e); - if(code == LV_EVENT_CLICKED) { - LV_LOG_USER("Button %d clicked", lv_obj_get_child_id(obj)); - } + LV_LOG_USER("Button %d clicked", lv_obj_get_child_id(obj)); } void lv_example_win_1(void) { lv_obj_t * win = lv_win_create(lv_scr_act(), 60); - lv_win_add_btn(win, LV_SYMBOL_LEFT, 40, event_handler); + lv_obj_t * btn; + btn = lv_win_add_btn(win, LV_SYMBOL_LEFT, 40); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + lv_win_add_title(win, "A title"); - lv_win_add_btn(win, LV_SYMBOL_RIGHT, 40, event_handler); - lv_win_add_btn(win, LV_SYMBOL_CLOSE, 60, event_handler); + + btn = lv_win_add_btn(win, LV_SYMBOL_RIGHT, 40); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); + + btn = lv_win_add_btn(win, LV_SYMBOL_CLOSE, 60); + lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL); lv_obj_t * cont = lv_win_get_content(win); /*Content can be aded here*/ lv_obj_t * label = lv_label_create(cont); diff --git a/src/extra/widgets/list/lv_list.c b/src/extra/widgets/list/lv_list.c index 15a60e35d..3754ddf92 100644 --- a/src/extra/widgets/list/lv_list.c +++ b/src/extra/widgets/list/lv_list.c @@ -73,13 +73,12 @@ lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt) return obj; } -lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt, lv_event_cb_t event_cb) +lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt) { LV_LOG_INFO("begin") lv_obj_t * obj = lv_obj_class_create_obj(&lv_list_btn_class, list); lv_obj_class_init_obj(obj); lv_obj_set_size(obj, LV_PCT(100), LV_SIZE_CONTENT); - if(event_cb) lv_obj_add_event_cb(obj, event_cb, LV_EVENT_ALL, NULL); if(icon) { lv_obj_t * img = lv_img_create(obj); diff --git a/src/extra/widgets/list/lv_list.h b/src/extra/widgets/list/lv_list.h index f7b05f6a5..8b9164415 100644 --- a/src/extra/widgets/list/lv_list.h +++ b/src/extra/widgets/list/lv_list.h @@ -37,7 +37,7 @@ lv_obj_t * lv_list_create(lv_obj_t * parent); lv_obj_t * lv_list_add_text(lv_obj_t * list, const char * txt); -lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt, lv_event_cb_t event_cb); +lv_obj_t * lv_list_add_btn(lv_obj_t * list, const char * icon, const char * txt); const char * lv_list_get_btn_text(lv_obj_t * list, lv_obj_t * btn); diff --git a/src/extra/widgets/win/lv_win.c b/src/extra/widgets/win/lv_win.c index 0a0854373..eb9eb8eb6 100644 --- a/src/extra/widgets/win/lv_win.c +++ b/src/extra/widgets/win/lv_win.c @@ -62,12 +62,11 @@ lv_obj_t * lv_win_add_title(lv_obj_t * win, const char * txt) return title; } -lv_obj_t * lv_win_add_btn(lv_obj_t * win, const void * icon, lv_coord_t btn_w, lv_event_cb_t event_cb) +lv_obj_t * lv_win_add_btn(lv_obj_t * win, const void * icon, lv_coord_t btn_w) { lv_obj_t * header = lv_win_get_header(win); lv_obj_t * btn = lv_btn_create(header); lv_obj_set_size(btn, btn_w, LV_PCT(100)); - lv_obj_add_event_cb(btn, event_cb, LV_EVENT_ALL, NULL); lv_obj_t * img = lv_img_create(btn); lv_img_set_src(img, icon); diff --git a/src/extra/widgets/win/lv_win.h b/src/extra/widgets/win/lv_win.h index fd69691aa..524596339 100644 --- a/src/extra/widgets/win/lv_win.h +++ b/src/extra/widgets/win/lv_win.h @@ -36,7 +36,7 @@ lv_obj_t * lv_win_create(lv_obj_t * parent, lv_coord_t header_height); lv_obj_t * lv_win_add_title(lv_obj_t * win, const char * txt); -lv_obj_t * lv_win_add_btn(lv_obj_t * win, const void * icon, lv_coord_t btn_w, lv_event_cb_t event_cb); +lv_obj_t * lv_win_add_btn(lv_obj_t * win, const void * icon, lv_coord_t btn_w); lv_obj_t * lv_win_get_header(lv_obj_t * win); lv_obj_t * lv_win_get_content(lv_obj_t * win);