From e3321d67ab952530a517aa119e9c6f91e18f96f6 Mon Sep 17 00:00:00 2001 From: Th3maz1ng Date: Sat, 22 Apr 2023 22:52:49 +0200 Subject: [PATCH] Updated settings screen in the lvgl simulator --- .../lv_port_win_codeblocks/settings_screen.c | 81 +++++++++++++++---- .../lv_port_win_codeblocks/settings_screen.h | 19 +++++ 2 files changed, 86 insertions(+), 14 deletions(-) diff --git a/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.c b/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.c index 2ce3beb..08ddda0 100644 --- a/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.c +++ b/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.c @@ -20,6 +20,7 @@ static const char* language_options = "Francais\nDeutsch\nEnglish"; static void _simulate_side_screen_item_click(SettingsScreen_t * const settingsScreen, lv_obj_t *item); static void _enable_time_and_date_rollers(bool enabled, SettingsScreen_t * const settingsScreen); +static void _show_ble_pairing_key(SettingsScreen_t * const settingsScreen, bool show); static void _reset_switch_pointers(SettingsScreen_t * const settingsScreen) { settingsScreen->ble_switch = NULL; @@ -28,7 +29,7 @@ static void _reset_switch_pointers(SettingsScreen_t * const settingsScreen) static lv_obj_t *add_menu_list_item(lv_obj_t *list, const char *text, lv_event_cb_t event_cb, void *user_data); static void update_menu_list_item_text(lv_obj_t *menu_list_item, const char *text); -static void gesture_event_cb(lv_event_t * e) +static void gesture_event_cb(lv_event_t *e) { SettingsScreen_t *settingsScreen = e->user_data; @@ -111,9 +112,16 @@ static void activation_switch_cb(lv_event_t *e) if(e->target == settingsScreen->ble_switch) { if(toggled) + { + strcpy(settingsScreen->ble_pairing_key.text, "123456"); + _show_ble_pairing_key(settingsScreen, true); LV_LOG_USER("BLE is on"); + } else + { + _show_ble_pairing_key(settingsScreen, false); LV_LOG_USER("BLE is off"); + } } else if(e->target == settingsScreen->auto_set_time_switch) { @@ -358,22 +366,43 @@ static void load_connectivity_side_screen(SettingsScreen_t *settingsScreen) lv_label_set_text_static(label, "Bluetooth"); lv_obj_align_to(label, settingsScreen->ble_switch, LV_ALIGN_OUT_RIGHT_MID, 10, 0); - label = lv_label_create(settingsScreen->side_screen); - lv_label_set_text_static(label, "Device Name :"); - lv_obj_align_to(label, settingsScreen->ble_switch, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + settingsScreen->ble_pairing_label = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(settingsScreen->ble_pairing_label, "Pairing Code :"); + lv_obj_align_to(settingsScreen->ble_pairing_label, settingsScreen->ble_switch, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + lv_obj_add_flag(settingsScreen->ble_pairing_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_t *dev_name_label = lv_label_create(settingsScreen->side_screen); - lv_label_set_text_static(dev_name_label, NULL/*"W800SW"*/); - lv_obj_set_style_text_color(dev_name_label, lv_color_make(130, 130, 130), LV_PART_MAIN); - lv_obj_align_to(dev_name_label, label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + settingsScreen->ble_pairing_key.label = lv_label_create(settingsScreen->side_screen); + lv_obj_set_style_text_color(settingsScreen->ble_pairing_key.label, lv_color_make(130, 130, 130), LV_PART_MAIN); + lv_obj_align_to(settingsScreen->ble_pairing_key.label, settingsScreen->ble_pairing_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + lv_obj_add_flag(settingsScreen->ble_pairing_key.label, LV_OBJ_FLAG_HIDDEN); + + settingsScreen->ble_dev_name_label = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(settingsScreen->ble_dev_name_label, "Device Name :"); + lv_obj_align_to(settingsScreen->ble_dev_name_label, settingsScreen->ble_switch, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + + settingsScreen->ble_dev_name_value = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(settingsScreen->ble_dev_name_value, "MDBT42Q_W800SW"); + lv_obj_set_style_text_color(settingsScreen->ble_dev_name_value, lv_color_make(130, 130, 130), LV_PART_MAIN); + lv_obj_align_to(settingsScreen->ble_dev_name_value, settingsScreen->ble_dev_name_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + + settingsScreen->ble_dev_mac_label = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(settingsScreen->ble_dev_mac_label, "Device MAC :"); + lv_obj_align_to(settingsScreen->ble_dev_mac_label, settingsScreen->ble_dev_name_value, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + + settingsScreen->ble_mac_addr.label = lv_label_create(settingsScreen->side_screen); + strcpy(settingsScreen->ble_mac_addr.text, "XX:XX:XX:XX:XX:XX"); + lv_label_set_text_static(settingsScreen->ble_mac_addr.label, settingsScreen->ble_mac_addr.text); + lv_obj_set_style_text_color(settingsScreen->ble_mac_addr.label, lv_color_make(130, 130, 130), LV_PART_MAIN); + lv_obj_align_to(settingsScreen->ble_mac_addr.label, settingsScreen->ble_dev_mac_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); - lv_obj_t *wifi_switch = lv_switch_create(settingsScreen->side_screen); - lv_obj_align_to(wifi_switch, dev_name_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); - lv_obj_add_state(wifi_switch, LV_STATE_DISABLED); - label = lv_label_create(settingsScreen->side_screen); - lv_label_set_text_static(label, "WiFi"); - lv_obj_align_to(label, wifi_switch, LV_ALIGN_OUT_RIGHT_MID, 10, 0); + settingsScreen->wifi_switch = lv_switch_create(settingsScreen->side_screen); + lv_obj_align_to(settingsScreen->wifi_switch, settingsScreen->ble_mac_addr.label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); + lv_obj_add_state(settingsScreen->wifi_switch, LV_STATE_DISABLED); + + settingsScreen->wifi_label = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(settingsScreen->wifi_label, "WiFi"); + lv_obj_align_to(settingsScreen->wifi_label, settingsScreen->wifi_switch, LV_ALIGN_OUT_RIGHT_MID, 10, 0); } static void load_language_side_screen(SettingsScreen_t *settingsScreen) @@ -699,3 +728,27 @@ static void update_menu_list_item_text(lv_obj_t *menu_list_item, const char *tex lv_label_set_text(label, text); } } + +static void _show_ble_pairing_key(SettingsScreen_t * const settingsScreen, bool show) +{ + lv_obj_align_to(settingsScreen->ble_pairing_label, settingsScreen->ble_switch, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + if(show) + { + lv_label_set_text_static(settingsScreen->ble_pairing_key.label, settingsScreen->ble_pairing_key.text); + lv_obj_align_to(settingsScreen->ble_dev_name_label, settingsScreen->ble_pairing_key.label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + lv_obj_clear_flag(settingsScreen->ble_pairing_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(settingsScreen->ble_pairing_key.label, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_add_flag(settingsScreen->ble_pairing_key.label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(settingsScreen->ble_pairing_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_align_to(settingsScreen->ble_dev_name_label, settingsScreen->ble_switch, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + } + + lv_obj_align_to(settingsScreen->ble_dev_name_value, settingsScreen->ble_dev_name_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + lv_obj_align_to(settingsScreen->ble_dev_mac_label, settingsScreen->ble_dev_name_value, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + lv_obj_align_to(settingsScreen->ble_mac_addr.label, settingsScreen->ble_dev_mac_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + lv_obj_align_to(settingsScreen->wifi_switch, settingsScreen->ble_mac_addr.label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); + lv_obj_align_to(settingsScreen->wifi_label, settingsScreen->wifi_switch, LV_ALIGN_OUT_RIGHT_MID, 10, 0); +} diff --git a/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.h b/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.h index 2bd599c..ab7053b 100644 --- a/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.h +++ b/src/lvgl_win_sim/lv_port_win_codeblocks/settings_screen.h @@ -31,13 +31,32 @@ typedef struct SettingsScreen lv_obj_t *day_roller; lv_obj_t *month_roller; lv_obj_t *year_roller; + lv_obj_t *wifi_switch; + lv_obj_t *wifi_label; lv_obj_t *ble_switch; + lv_obj_t *ble_pairing_label; + lv_obj_t *ble_dev_name_label; + lv_obj_t *ble_dev_name_value; + lv_obj_t *ble_dev_mac_label; + struct { lv_obj_t *current_time_label; char current_time_text[20]; } currentTime; + struct + { + lv_obj_t *label; + char text[18]; + } ble_mac_addr; + + struct + { + lv_obj_t *label; + char text[7]; + } ble_pairing_key; + /* Main screen */ lv_obj_t *display;