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 5c846ed..043a945 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 @@ -185,7 +185,6 @@ static void language_dropdown_cb(lv_event_t *e) static void factory_reset_cb(lv_event_t *e) { SettingsScreen_t *settingsScreen = e->user_data; - } static void sensors_refresh_timer_cb(lv_timer_t *timer) @@ -210,6 +209,16 @@ static void sensors_refresh_timer_cb(lv_timer_t *timer) _set_accelerometer_axes_to_label(settingsScreen); } +static void magnetometer_cal_button_cb(lv_event_cb_t e) +{ + SettingsScreen_t *settingsScreen = lv_event_get_user_data(e); + + // Let's dispose of the settings screen and load the calibration screen + if(settingsScreen->sensors_refresh_timer)lv_timer_del(settingsScreen->sensors_refresh_timer); + + lv_scr_load_anim(lv_obj_create(NULL), LV_SCR_LOAD_ANIM_MOVE_TOP, 400, 0, true); +} + static void load_time_and_date_side_screen(SettingsScreen_t *settingsScreen) { lv_obj_t *label = lv_label_create(settingsScreen->side_screen); @@ -532,6 +541,7 @@ static void load_sensors_side_screen(SettingsScreen_t *settingsScreen) lv_obj_t *magnetometer_cal_btn = lv_btn_create(settingsScreen->side_screen); lv_obj_align(magnetometer_cal_btn, LV_ALIGN_TOP_MID, 0, lv_obj_get_y(settingsScreen->sensors_labels.magnetometer.temperature.label) + lv_obj_get_height(settingsScreen->sensors_labels.magnetometer.temperature.label) + SETTINGS_SCREEN_CATEGORY_SPACING_INNER); + lv_obj_add_event_cb(magnetometer_cal_btn, &(magnetometer_cal_button_cb), LV_EVENT_CLICKED, settingsScreen); lv_obj_t *magnetometer_cal_btn_label = lv_label_create(magnetometer_cal_btn); lv_label_set_text_static(magnetometer_cal_btn_label, "Calibrate"); @@ -646,7 +656,7 @@ static void load_about_side_screen(SettingsScreen_t *settingsScreen) settingsScreen->settingsScreenAPIInterface.getComponentVersionCb(&freertos_version, COMPONENT_FREERTOS); lv_label_set_text_static(freertos_version_label, freertos_version); - + lv_obj_set_style_text_color(freertos_version_label, lv_color_make(130, 130, 130), LV_PART_MAIN); lv_obj_align_to(freertos_version_label, freertos_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, SETTINGS_SCREEN_CATEGORY_SPACING_INNER); @@ -659,9 +669,9 @@ static void load_about_side_screen(SettingsScreen_t *settingsScreen) const char *lvgl_version = default_version; if(settingsScreen->settingsScreenAPIInterface.getComponentVersionCb) settingsScreen->settingsScreenAPIInterface.getComponentVersionCb(&lvgl_version, COMPONENT_LVGL); - + lv_label_set_text_static(lvgl_version_label, lvgl_version); - + lv_obj_set_style_text_color(lvgl_version_label, lv_color_make(130, 130, 130), LV_PART_MAIN); lv_obj_align_to(lvgl_version_label, lvgl_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, SETTINGS_SCREEN_CATEGORY_SPACING_INNER);