Updated settings screen in the lvgl simulator

This commit is contained in:
Th3maz1ng 2023-04-22 22:52:49 +02:00
parent 5bc20d03d7
commit e3321d67ab
2 changed files with 86 additions and 14 deletions

View File

@ -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);
}

View File

@ -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;