Improve Touch Calibration screen (#20524)
This commit is contained in:
@ -55,6 +55,11 @@
|
||||
#include "../../../../feature/pause.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(TOUCH_SCREEN_CALIBRATION)
|
||||
#include "../../../tft_io/touch_calibration.h"
|
||||
#include "draw_touch_calibration.h"
|
||||
#endif
|
||||
|
||||
extern lv_group_t *g;
|
||||
static lv_obj_t *scr, *tempText1, *filament_bar;
|
||||
|
||||
@ -161,7 +166,16 @@ static void btn_ok_event_cb(lv_obj_t *btn, lv_event_t event) {
|
||||
else if (DIALOG_IS(REVERT_EEPROM_TIPS)) {
|
||||
TERN_(EEPROM_SETTINGS, (void)settings.reset());
|
||||
clear_cur_ui();
|
||||
draw_return_ui();
|
||||
#if ENABLED(TOUCH_SCREEN_CALIBRATION)
|
||||
const bool do_draw_cal = touch_calibration.need_calibration();
|
||||
if (do_draw_cal) {
|
||||
disp_state_stack._disp_index--; // We are asynchronous from the dialog, so let's remove the dialog from the stack
|
||||
lv_draw_touch_calibration_screen();
|
||||
}
|
||||
#else
|
||||
constexpr bool do_draw_cal = false;
|
||||
#endif
|
||||
if (!do_draw_cal) draw_return_ui();
|
||||
}
|
||||
else if (DIALOG_IS(WIFI_CONFIG_TIPS)) {
|
||||
uiCfg.configWifi = 1;
|
||||
@ -181,9 +195,7 @@ static void btn_ok_event_cb(lv_obj_t *btn, lv_event_t event) {
|
||||
static void btn_cancel_event_cb(lv_obj_t *btn, lv_event_t event) {
|
||||
if (event != LV_EVENT_RELEASED) return;
|
||||
if (DIALOG_IS(PAUSE_MESSAGE_OPTION)) {
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT;
|
||||
#endif
|
||||
TERN_(ADVANCED_PAUSE_FEATURE, pause_menu_response = PAUSE_RESPONSE_RESUME_PRINT);
|
||||
}
|
||||
else if (DIALOG_IS(TYPE_FILAMENT_LOAD_HEAT, TYPE_FILAMENT_UNLOAD_HEAT, TYPE_FILAMENT_HEAT_LOAD_COMPLETED, TYPE_FILAMENT_HEAT_UNLOAD_COMPLETED)) {
|
||||
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target= uiCfg.desireSprayerTempBak;
|
||||
|
@ -39,6 +39,11 @@
|
||||
#include "../../../../module/temperature.h"
|
||||
#include "../../../../inc/MarlinConfig.h"
|
||||
|
||||
#if ENABLED(TOUCH_SCREEN_CALIBRATION)
|
||||
#include "../../../tft_io/touch_calibration.h"
|
||||
#include "draw_touch_calibration.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
//static lv_obj_t *buttonPrint, *buttonTool, *buttonSet;
|
||||
@ -215,6 +220,14 @@ void lv_draw_ready_print(void) {
|
||||
lv_big_button_create(scr, "F:/bmp_set.bin", main_menu.set, 180, 90, event_handler, ID_SET);
|
||||
lv_big_button_create(scr, "F:/bmp_printing.bin", main_menu.print, 340, 90, event_handler, ID_PRINT);
|
||||
}
|
||||
|
||||
#if ENABLED(TOUCH_SCREEN_CALIBRATION)
|
||||
// If calibration is required, let's trigger it now, handles the case when there is default value in configuration files
|
||||
if (!touch_calibration.calibration_loaded()) {
|
||||
lv_clear_ready_print();
|
||||
lv_draw_touch_calibration_screen();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void lv_clear_ready_print() {
|
||||
|
@ -95,14 +95,12 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
|
||||
case ID_TC_RETURN:
|
||||
TERN_(MKS_TEST, curent_disp_ui = 1);
|
||||
lv_clear_touch_calibration_screen();
|
||||
lv_draw_ready_print();
|
||||
draw_return_ui();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_touch_calibration_screen() {
|
||||
disp_state_stack._disp_index = 0;
|
||||
ZERO(disp_state_stack._disp_state);
|
||||
scr = lv_screen_create(TOUCH_CALIBRATION_UI, "");
|
||||
|
||||
status_label = lv_label_create(scr, "");
|
||||
|
@ -217,12 +217,7 @@ void tft_lvgl_init() {
|
||||
#endif
|
||||
|
||||
if (ready) {
|
||||
#if ENABLED(TOUCH_SCREEN_CALIBRATION)
|
||||
if (touch_calibration.need_calibration()) lv_draw_touch_calibration_screen();
|
||||
else lv_draw_ready_print();
|
||||
#else
|
||||
lv_draw_ready_print();
|
||||
#endif
|
||||
lv_draw_ready_print();
|
||||
}
|
||||
|
||||
if (mks_test_flag == 0x1E)
|
||||
|
Reference in New Issue
Block a user