@ -474,13 +474,8 @@ void DGUSScreenHandler::HandleManualExtrude(DGUS_VP_Variable &var, void *val_ptr
|
||||
|
||||
void DGUSScreenHandler::HandleMotorLockUnlock(DGUS_VP_Variable &var, void *val_ptr) {
|
||||
DEBUG_ECHOLNPGM("HandleMotorLockUnlock");
|
||||
|
||||
char buf[4];
|
||||
const int16_t lock = swap16(*(uint16_t*)val_ptr);
|
||||
strcpy_P(buf, lock ? PSTR("M18") : PSTR("M17"));
|
||||
|
||||
//DEBUG_ECHOPGM(" ", buf);
|
||||
queue.enqueue_one_now(buf);
|
||||
queue.enqueue_one_now(lock ? F("M18") : F("M17"));
|
||||
}
|
||||
|
||||
void DGUSScreenHandler::HandleSettings(DGUS_VP_Variable &var, void *val_ptr) {
|
||||
@ -552,23 +547,23 @@ void DGUSScreenHandler::HandleStepPerMMExtruderChanged(DGUS_VP_Variable &var, vo
|
||||
#if HAS_HOTEND
|
||||
case VP_PID_AUTOTUNE_E0: // Autotune Extruder 0
|
||||
sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E0);
|
||||
queue.enqueue_one_now(buf);
|
||||
break;
|
||||
#endif
|
||||
#if HAS_MULTI_HOTEND
|
||||
case VP_PID_AUTOTUNE_E1:
|
||||
sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E1);
|
||||
queue.enqueue_one_now(buf);
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
case VP_PID_AUTOTUNE_BED:
|
||||
strcpy_P(buf, PSTR("M303 E-1 C5 S70 U1"));
|
||||
queue.enqueue_one_now(F("M303 E-1 C5 S70 U1"));
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (buf[0]) queue.enqueue_one_now(buf);
|
||||
|
||||
#if ENABLED(DGUS_UI_WAITING)
|
||||
sendinfoscreen(F("PID is autotuning"), F("please wait"), NUL_STR, NUL_STR, true, true, true, true);
|
||||
GotoScreen(DGUSLCD_SCREEN_WAITING);
|
||||
|
@ -32,12 +32,12 @@ using namespace Theme;
|
||||
#define GRID_COLS 2
|
||||
#define GRID_ROWS 9
|
||||
|
||||
void BioPrintingDialogBox::draw_status_message(draw_mode_t what, const char *message) {
|
||||
void BioPrintingDialogBox::draw_status_message(draw_mode_t what, const char *cmsg) {
|
||||
if (what & BACKGROUND) {
|
||||
CommandProcessor cmd;
|
||||
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
||||
.tag(0);
|
||||
draw_text_box(cmd, BTN_POS(1,2), BTN_SIZE(2,2), message, OPT_CENTER, font_large);
|
||||
draw_text_box(cmd, BTN_POS(1,2), BTN_SIZE(2,2), cmsg, OPT_CENTER, font_large);
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,26 +105,30 @@ bool BioPrintingDialogBox::onTouchEnd(uint8_t tag) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void BioPrintingDialogBox::setStatusMessage(FSTR_P message) {
|
||||
char buff[strlen_P(FTOP(message)) + 1];
|
||||
strcpy_P(buff, FTOP(message));
|
||||
setStatusMessage(buff);
|
||||
void BioPrintingDialogBox::setStatusMessage(FSTR_P fmsg) {
|
||||
#ifdef __AVR__
|
||||
char buff[strlen_P(FTOP(fmsg)) + 1];
|
||||
strcpy_P(buff, FTOP(fmsg));
|
||||
setStatusMessage(buff);
|
||||
#else
|
||||
setStatusMessage(FTOP(fmsg));
|
||||
#endif
|
||||
}
|
||||
|
||||
void BioPrintingDialogBox::setStatusMessage(const char *message) {
|
||||
void BioPrintingDialogBox::setStatusMessage(const char *cmsg) {
|
||||
CommandProcessor cmd;
|
||||
cmd.cmd(CMD_DLSTART)
|
||||
.cmd(CLEAR_COLOR_RGB(bg_color))
|
||||
.cmd(CLEAR(true,true,true));
|
||||
|
||||
draw_status_message(BACKGROUND, message);
|
||||
draw_status_message(BACKGROUND, cmsg);
|
||||
draw_progress(BACKGROUND);
|
||||
draw_time_remaining(BACKGROUND);
|
||||
draw_interaction_buttons(BACKGROUND);
|
||||
storeBackground();
|
||||
|
||||
#if ENABLED(TOUCH_UI_DEBUG)
|
||||
SERIAL_ECHO_MSG("New status message: ", message);
|
||||
SERIAL_ECHO_MSG("New status message: ", cmsg);
|
||||
#endif
|
||||
|
||||
if (AT_SCREEN(BioPrintingDialogBox))
|
||||
|
@ -122,7 +122,7 @@ void StatusScreen::draw_temperature(draw_mode_t what) {
|
||||
|
||||
ui.bounds(POLY(bed_temp), x, y, h, v);
|
||||
cmd.text(x, y, h, v, str);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -354,8 +354,8 @@ bool StatusScreen::onTouchHeld(uint8_t tag) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void StatusScreen::setStatusMessage(FSTR_P pstr) {
|
||||
BioPrintingDialogBox::setStatusMessage(pstr);
|
||||
void StatusScreen::setStatusMessage(FSTR_P fstr) {
|
||||
BioPrintingDialogBox::setStatusMessage(fstr);
|
||||
}
|
||||
|
||||
void StatusScreen::setStatusMessage(const char * const str) {
|
||||
|
@ -136,9 +136,13 @@ namespace FTDI {
|
||||
}
|
||||
|
||||
void draw_text_box(CommandProcessor& cmd, int x, int y, int w, int h, FSTR_P fstr, uint16_t options, uint8_t font) {
|
||||
char str[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(str, FTOP(fstr));
|
||||
draw_text_box(cmd, x, y, w, h, (const char*) str, options, font);
|
||||
#ifdef __AVR__
|
||||
char str[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(str, FTOP(fstr));
|
||||
draw_text_box(cmd, x, y, w, h, (const char*) str, options, font);
|
||||
#else
|
||||
draw_text_box(cmd, x, y, w, h, FTOP(fstr), options, font);
|
||||
#endif
|
||||
}
|
||||
} // namespace FTDI
|
||||
|
||||
|
@ -192,9 +192,13 @@
|
||||
}
|
||||
|
||||
uint16_t FTDI::get_utf8_text_width(FSTR_P fstr, font_size_t fs) {
|
||||
char str[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(str, FTOP(fstr));
|
||||
return get_utf8_text_width(str, fs);
|
||||
#ifdef __AVR__
|
||||
char str[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(str, FTOP(fstr));
|
||||
return get_utf8_text_width(str, fs);
|
||||
#else
|
||||
return get_utf8_text_width(FTOP(fstr), fs);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -32,7 +32,7 @@ using namespace Theme;
|
||||
#define GRID_ROWS 8
|
||||
|
||||
template<typename T>
|
||||
void DialogBoxBaseClass::drawMessage(T message, int16_t font) {
|
||||
void DialogBoxBaseClass::drawMessage(T message, const int16_t font) {
|
||||
CommandProcessor cmd;
|
||||
cmd.cmd(CMD_DLSTART)
|
||||
.cmd(CLEAR_COLOR_RGB(bg_color))
|
||||
@ -43,8 +43,7 @@ void DialogBoxBaseClass::drawMessage(T message, int16_t font) {
|
||||
cmd.colors(normal_btn);
|
||||
}
|
||||
|
||||
template void DialogBoxBaseClass::drawMessage(const char *, int16_t font);
|
||||
template void DialogBoxBaseClass::drawMessage(FSTR_P, int16_t font);
|
||||
template void DialogBoxBaseClass::drawMessage(PGM_P const, const int16_t);
|
||||
|
||||
void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) {
|
||||
CommandProcessor cmd;
|
||||
|
@ -27,12 +27,15 @@
|
||||
|
||||
class DialogBoxBaseClass : public BaseScreen {
|
||||
protected:
|
||||
template<typename T> static void drawMessage(T, int16_t font = 0);
|
||||
template<typename T> static void drawMessage(T, const int16_t font=0);
|
||||
static void drawMessage(FSTR_P const fstr, const int16_t font=0) { drawMessage(FTOP(fstr), font); }
|
||||
|
||||
template<typename T> static void drawButton(T);
|
||||
static void drawYesNoButtons(uint8_t default_btn = 0);
|
||||
static void drawOkayButton();
|
||||
|
||||
static void onRedraw(draw_mode_t) {};
|
||||
static void onRedraw(draw_mode_t) {}
|
||||
|
||||
public:
|
||||
static bool onTouchEnd(uint8_t tag);
|
||||
static void onIdle();
|
||||
|
@ -332,10 +332,14 @@ void StatusScreen::draw_status_message(draw_mode_t what, const char *message) {
|
||||
}
|
||||
}
|
||||
|
||||
void StatusScreen::setStatusMessage(FSTR_P message) {
|
||||
char buff[strlen_P(FTOP(message)) + 1];
|
||||
strcpy_P(buff, FTOP(message));
|
||||
setStatusMessage((const char *) buff);
|
||||
void StatusScreen::setStatusMessage(FSTR_P fmsg) {
|
||||
#ifdef __AVR__
|
||||
char buff[strlen_P(FTOP(fmsg)) + 1];
|
||||
strcpy_P(buff, FTOP(fmsg));
|
||||
setStatusMessage((const char *)buff);
|
||||
#else
|
||||
setStatusMessage(FTOP(fmsg));
|
||||
#endif
|
||||
}
|
||||
|
||||
void StatusScreen::setStatusMessage(const char *message) {
|
||||
|
@ -711,12 +711,16 @@ void disp_assets_update() {
|
||||
}
|
||||
|
||||
void disp_assets_update_progress(FSTR_P const fmsg) {
|
||||
static constexpr int buflen = 30;
|
||||
char buf[buflen];
|
||||
memset(buf, ' ', buflen);
|
||||
strncpy_P(buf, FTOP(fmsg), buflen - 1);
|
||||
buf[buflen - 1] = '\0';
|
||||
disp_string(100, 165, buf, 0xFFFF, 0x0000);
|
||||
#ifdef __AVR__
|
||||
static constexpr int buflen = 30;
|
||||
char buf[buflen];
|
||||
memset(buf, ' ', buflen);
|
||||
strncpy_P(buf, FTOP(fmsg), buflen - 1);
|
||||
buf[buflen - 1] = '\0';
|
||||
disp_string(100, 165, buf, 0xFFFF, 0x0000);
|
||||
#else
|
||||
disp_string(100, 165, FTOP(fmsg), 0xFFFF, 0x0000);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if BOTH(MKS_TEST, SDSUPPORT)
|
||||
|
@ -1112,15 +1112,23 @@ namespace ExtUI {
|
||||
|
||||
// Simplest approach is to make an SRAM copy
|
||||
void onUserConfirmRequired(FSTR_P const fstr) {
|
||||
char msg[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(msg, FTOP(fstr));
|
||||
onUserConfirmRequired(msg);
|
||||
#ifdef __AVR__
|
||||
char msg[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(msg, FTOP(fstr));
|
||||
onUserConfirmRequired(msg);
|
||||
#else
|
||||
onUserConfirmRequired(FTOP(fstr));
|
||||
#endif
|
||||
}
|
||||
|
||||
void onStatusChanged(FSTR_P const fstr) {
|
||||
char msg[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(msg, FTOP(fstr));
|
||||
onStatusChanged(msg);
|
||||
#ifdef __AVR__
|
||||
char msg[strlen_P(FTOP(fstr)) + 1];
|
||||
strcpy_P(msg, FTOP(fstr));
|
||||
onStatusChanged(msg);
|
||||
#else
|
||||
onStatusChanged(FTOP(fstr));
|
||||
#endif
|
||||
}
|
||||
|
||||
FileList::FileList() { refresh(); }
|
||||
|
Reference in New Issue
Block a user