Fix, clean up FTDI EVE Touch UI (#20466)
Co-Authored-By: Marcio T. <mlt4356-github@yahoo.com>
This commit is contained in:
parent
57e94fb838
commit
20073246bb
@ -31,6 +31,43 @@ using namespace ExtUI;
|
||||
using namespace FTDI;
|
||||
using namespace Theme;
|
||||
|
||||
#ifdef TOUCH_UI_PORTRAIT
|
||||
#define GRID_COLS 2
|
||||
#define GRID_ROWS 11
|
||||
#define E_TEMP_POS BTN_POS(2,7), BTN_SIZE(1,1)
|
||||
#define E_TEMP_LBL_POS BTN_POS(1,7), BTN_SIZE(1,1)
|
||||
#define UNLD_LABL_POS BTN_POS(1,8), BTN_SIZE(1,1)
|
||||
#define LOAD_LABL_POS BTN_POS(2,8), BTN_SIZE(1,1)
|
||||
#define UNLD_MOMN_POS BTN_POS(1,9), BTN_SIZE(1,1)
|
||||
#define LOAD_MOMN_POS BTN_POS(2,9), BTN_SIZE(1,1)
|
||||
#define UNLD_CONT_POS BTN_POS(1,10), BTN_SIZE(1,1)
|
||||
#define LOAD_CONT_POS BTN_POS(2,10), BTN_SIZE(1,1)
|
||||
#define BACK_POS BTN_POS(1,11), BTN_SIZE(2,1)
|
||||
#else
|
||||
#define GRID_COLS 4
|
||||
#define GRID_ROWS 6
|
||||
#define E_TEMP_POS BTN_POS(3,2), BTN_SIZE(2,1)
|
||||
#define E_TEMP_LBL_POS BTN_POS(3,1), BTN_SIZE(2,1)
|
||||
#define UNLD_LABL_POS BTN_POS(3,3), BTN_SIZE(1,1)
|
||||
#define LOAD_LABL_POS BTN_POS(4,3), BTN_SIZE(1,1)
|
||||
#define UNLD_MOMN_POS BTN_POS(3,4), BTN_SIZE(1,1)
|
||||
#define LOAD_MOMN_POS BTN_POS(4,4), BTN_SIZE(1,1)
|
||||
#define UNLD_CONT_POS BTN_POS(3,5), BTN_SIZE(1,1)
|
||||
#define LOAD_CONT_POS BTN_POS(4,5), BTN_SIZE(1,1)
|
||||
#define BACK_POS BTN_POS(3,6), BTN_SIZE(2,1)
|
||||
#endif
|
||||
#define REMOVAL_TEMP_LBL_POS BTN_POS(1,3), BTN_SIZE(2,1)
|
||||
#define GRADIENT_POS BTN_POS(1,4), BTN_SIZE(1,3)
|
||||
#define LOW_TEMP_POS BTN_POS(2,6), BTN_SIZE(1,1)
|
||||
#define MED_TEMP_POS BTN_POS(2,5), BTN_SIZE(1,1)
|
||||
#define HIG_TEMP_POS BTN_POS(2,4), BTN_SIZE(1,1)
|
||||
#define HEATING_LBL_POS BTN_POS(1,6), BTN_SIZE(1,1)
|
||||
#define CAUTION_LBL_POS BTN_POS(1,4), BTN_SIZE(1,1)
|
||||
#define HOT_LBL_POS BTN_POS(1,6), BTN_SIZE(1,1)
|
||||
#define E_SEL_LBL_POS BTN_POS(1,1), BTN_SIZE(2,1)
|
||||
#define E1_SEL_POS BTN_POS(1,2), BTN_SIZE(1,1)
|
||||
#define E2_SEL_POS BTN_POS(2,2), BTN_SIZE(1,1)
|
||||
|
||||
#define COOL_TEMP 40
|
||||
#define LOW_TEMP 180
|
||||
#define MED_TEMP 200
|
||||
@ -101,70 +138,45 @@ void ChangeFilamentScreen::onExit() {
|
||||
void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||
CommandProcessor cmd;
|
||||
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
#define GRID_COLS 2
|
||||
#define GRID_ROWS 11
|
||||
#else
|
||||
#define GRID_COLS 4
|
||||
#define GRID_ROWS 6
|
||||
#endif
|
||||
|
||||
if (what & BACKGROUND) {
|
||||
cmd.cmd(CLEAR_COLOR_RGB(bg_color))
|
||||
.cmd(CLEAR(true,true,true))
|
||||
.cmd(COLOR_RGB(bg_text_enabled))
|
||||
.tag(0)
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
.font(font_large)
|
||||
#else
|
||||
.font(font_medium)
|
||||
#endif
|
||||
.text(BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_EXTRUDER_SELECTION))
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
.text(BTN_POS(1,7), BTN_SIZE(1,1), GET_TEXT_F(MSG_CURRENT_TEMPERATURE))
|
||||
#else
|
||||
.text(BTN_POS(3,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_CURRENT_TEMPERATURE))
|
||||
.font(font_small)
|
||||
#endif
|
||||
.text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_REMOVAL_TEMPERATURE));
|
||||
drawTempGradient(BTN_POS(1,4), BTN_SIZE(1,3));
|
||||
.font(TERN(TOUCH_UI_PORTRAIT, font_large, font_medium))
|
||||
.text(E_SEL_LBL_POS, GET_TEXT_F(MSG_EXTRUDER_SELECTION))
|
||||
.text(E_TEMP_LBL_POS, GET_TEXT_F(MSG_CURRENT_TEMPERATURE))
|
||||
.text(REMOVAL_TEMP_LBL_POS, GET_TEXT_F(MSG_REMOVAL_TEMPERATURE));
|
||||
drawTempGradient(GRADIENT_POS);
|
||||
}
|
||||
|
||||
if (what & FOREGROUND) {
|
||||
char str[15];
|
||||
const extruder_t e = getExtruder();
|
||||
|
||||
char e_str[15];
|
||||
if (isHeaterIdle(e))
|
||||
format_temp_and_idle(e_str, getActualTemp_celsius(e));
|
||||
format_temp_and_idle(str, getActualTemp_celsius(e));
|
||||
else
|
||||
format_temp_and_temp(e_str, getActualTemp_celsius(e), getTargetTemp_celsius(e));
|
||||
format_temp_and_temp(str, getActualTemp_celsius(e), getTargetTemp_celsius(e));
|
||||
|
||||
const rgb_t tcol = getWarmColor(getActualTemp_celsius(e), COOL_TEMP, LOW_TEMP, MED_TEMP, HIGH_TEMP);
|
||||
cmd.cmd(COLOR_RGB(tcol))
|
||||
.tag(15)
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
.rectangle(BTN_POS(2,7), BTN_SIZE(1,1))
|
||||
#else
|
||||
.rectangle(BTN_POS(3,2), BTN_SIZE(2,1))
|
||||
#endif
|
||||
.rectangle(E_TEMP_POS)
|
||||
.cmd(COLOR_RGB(tcol.luminance() > 128 ? 0x000000 : 0xFFFFFF))
|
||||
.font(font_medium)
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
.text(BTN_POS(2,7), BTN_SIZE(1,1), e_str)
|
||||
#else
|
||||
.text(BTN_POS(3,2), BTN_SIZE(2,1), e_str)
|
||||
#endif
|
||||
.text(E_TEMP_POS, str)
|
||||
.colors(normal_btn);
|
||||
|
||||
const bool t_ok = getActualTemp_celsius(e) > getSoftenTemp() - 10;
|
||||
|
||||
if (screen_data.ChangeFilamentScreen.t_tag && !t_ok) {
|
||||
cmd.text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_HEATING));
|
||||
cmd.text(HEATING_LBL_POS, GET_TEXT_F(MSG_HEATING));
|
||||
} else if (getActualTemp_celsius(e) > 100) {
|
||||
cmd.cmd(COLOR_RGB(0xFF0000))
|
||||
.text(BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_CAUTION))
|
||||
.text(CAUTION_LBL_POS, GET_TEXT_F(MSG_CAUTION))
|
||||
.colors(normal_btn)
|
||||
.text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_HOT));
|
||||
.text(HOT_LBL_POS, GET_TEXT_F(MSG_HOT));
|
||||
}
|
||||
|
||||
#define TOG_STYLE(A) colors(A ? action_btn : normal_btn)
|
||||
@ -177,79 +189,42 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||
const bool tog11 = screen_data.ChangeFilamentScreen.e_tag == 11;
|
||||
#endif
|
||||
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
cmd.font(font_large)
|
||||
#else
|
||||
cmd.font(font_medium)
|
||||
#endif
|
||||
.TOG_STYLE(tog10)
|
||||
.tag(10) .button (BTN_POS(1,2), BTN_SIZE(1,1), F("1"))
|
||||
cmd.TOG_STYLE(tog10)
|
||||
.tag(10).button (E1_SEL_POS, F("1"))
|
||||
#if HOTENDS < 2
|
||||
.enabled(false)
|
||||
#else
|
||||
.TOG_STYLE(tog11)
|
||||
#endif
|
||||
.tag(11) .button (BTN_POS(2,2), BTN_SIZE(1,1), F("2"));
|
||||
.tag(11).button (E2_SEL_POS, F("2"));
|
||||
|
||||
if (!t_ok) reset_menu_timeout();
|
||||
|
||||
const bool tog7 = screen_data.ChangeFilamentScreen.repeat_tag == 7;
|
||||
const bool tog8 = screen_data.ChangeFilamentScreen.repeat_tag == 8;
|
||||
|
||||
|
||||
cmd.font(
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
font_large
|
||||
#else
|
||||
font_small
|
||||
#endif
|
||||
);
|
||||
|
||||
{
|
||||
char str[30];
|
||||
|
||||
format_temp(str, LOW_TEMP);
|
||||
cmd.tag(2) .TOG_STYLE(tog2) .button (BTN_POS(2,6), BTN_SIZE(1,1), str);
|
||||
cmd.tag(2) .TOG_STYLE(tog2).button (LOW_TEMP_POS, str);
|
||||
|
||||
format_temp(str, MED_TEMP);
|
||||
cmd.tag(3) .TOG_STYLE(tog3) .button (BTN_POS(2,5), BTN_SIZE(1,1), str);
|
||||
cmd.tag(3) .TOG_STYLE(tog3).button (MED_TEMP_POS, str);
|
||||
|
||||
format_temp(str, HIGH_TEMP);
|
||||
cmd.tag(4) .TOG_STYLE(tog4) .button (BTN_POS(2,4), BTN_SIZE(1,1), str);
|
||||
cmd.tag(4) .TOG_STYLE(tog4).button (HIG_TEMP_POS, str);
|
||||
}
|
||||
cmd.colors(normal_btn)
|
||||
|
||||
// Add tags to color gradient
|
||||
.cmd(COLOR_MASK(0,0,0,0))
|
||||
.tag(2) .rectangle(BTN_POS(1,6), BTN_SIZE(1,1))
|
||||
.tag(3) .rectangle(BTN_POS(1,5), BTN_SIZE(1,1))
|
||||
.tag(4) .rectangle(BTN_POS(1,4), BTN_SIZE(1,1))
|
||||
.cmd(COLOR_MASK(1,1,1,1))
|
||||
|
||||
.cmd(COLOR_RGB(t_ok ? bg_text_enabled : bg_text_disabled))
|
||||
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||
.font(font_large)
|
||||
.tag(0) .text (BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXT_F(MSG_UNLOAD_FILAMENT))
|
||||
.text (BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXT_F(MSG_LOAD_FILAMENT))
|
||||
.tag(5) .enabled(t_ok).button (BTN_POS(1,9), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY))
|
||||
.tag(6) .enabled(t_ok).button (BTN_POS(2,9), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY))
|
||||
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(1,10), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(2,10), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.tag(1).colors(action_btn) .button (BTN_POS(1,11), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||
#else
|
||||
.font(font_small)
|
||||
.tag(0) .text (BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_UNLOAD_FILAMENT))
|
||||
.text (BTN_POS(4,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_LOAD_FILAMENT))
|
||||
.tag(5) .enabled(t_ok).button (BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY))
|
||||
.tag(6) .enabled(t_ok).button (BTN_POS(4,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOMENTARY))
|
||||
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(4,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.font(font_medium)
|
||||
.tag(1).colors(action_btn) .button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||
#endif
|
||||
cmd.cmd(COLOR_RGB(t_ok ? bg_text_enabled : bg_text_disabled))
|
||||
.tag(0) .text (UNLD_LABL_POS, GET_TEXT_F(MSG_UNLOAD_FILAMENT))
|
||||
.text (LOAD_LABL_POS, GET_TEXT_F(MSG_LOAD_FILAMENT))
|
||||
.colors(normal_btn)
|
||||
.tag(5) .enabled(t_ok).button (UNLD_MOMN_POS, GET_TEXT_F(MSG_MOMENTARY))
|
||||
.tag(6) .enabled(t_ok).button (LOAD_MOMN_POS, GET_TEXT_F(MSG_MOMENTARY))
|
||||
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (UNLD_CONT_POS, GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (LOAD_CONT_POS, GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.tag(1).colors(action_btn) .button (BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
}
|
||||
#undef GRID_COLS
|
||||
#undef GRID_ROWS
|
||||
}
|
||||
|
||||
uint8_t ChangeFilamentScreen::getSoftenTemp() {
|
||||
|
@ -352,6 +352,13 @@ void StatusScreen::setStatusMessage(progmem_str message) {
|
||||
}
|
||||
|
||||
void StatusScreen::setStatusMessage(const char* message) {
|
||||
if (CommandProcessor::is_processing()) {
|
||||
#if ENABLED(TOUCH_UI_DEBUG)
|
||||
SERIAL_ECHO_MSG("Cannot update status message, command processor busy");
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
CommandProcessor cmd;
|
||||
cmd.cmd(CMD_DLSTART)
|
||||
.cmd(CLEAR_COLOR_RGB(Theme::bg_color))
|
||||
@ -366,8 +373,7 @@ void StatusScreen::setStatusMessage(const char* message) {
|
||||
storeBackground();
|
||||
|
||||
#if ENABLED(TOUCH_UI_DEBUG)
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPAIR("New status message: ", message);
|
||||
SERIAL_ECHO_MSG("New status message: ", message);
|
||||
#endif
|
||||
|
||||
if (AT_SCREEN(StatusScreen)) {
|
||||
|
@ -85,6 +85,9 @@ void TouchCalibrationScreen::onRedraw(draw_mode_t) {
|
||||
void TouchCalibrationScreen::onIdle() {
|
||||
if (!CLCD::is_touching() && !CommandProcessor::is_processing()) {
|
||||
GOTO_PREVIOUS();
|
||||
#if ENABLED(TOUCH_UI_DEBUG)
|
||||
SERIAL_ECHO_MSG("Calibration routine finished");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user