Improve / fix FTDI EVE Touch UI (#17338)
- Fix timeout and debugging string - Fix check for whether `LCD_TIMEOUT_TO_STATUS` is valid - Fix incorrect debugging message - Make capitalization of callbacks consistent. - Allow Touch UI to use hardware SPI on Einsy boards - Move print stats to About Printer page. - More generic about screen with GPL license. - Add missing handler for power loss event - Less code duplication on status screen and main/advanced menu; more legible - Reorganize advanced and main menu to add more features - Hide home Z button when using Z_SAFE_HOMING - Fix compilation errors when certain features enabled - Fix missing labels in UI - Improve color scheme - Add new preheat menus - Fix incorrect rendering of Marlin logo on boot - Add Level X Axis and Auto calibrate buttons
This commit is contained in:
parent
c759729478
commit
d83ad6f321
34 changed files with 632 additions and 465 deletions
|
@ -63,7 +63,7 @@ void GcodeSuite::M1000() {
|
||||||
#if HAS_LCD_MENU
|
#if HAS_LCD_MENU
|
||||||
ui.goto_screen(menu_job_recovery);
|
ui.goto_screen(menu_job_recovery);
|
||||||
#elif ENABLED(EXTENSIBLE_UI)
|
#elif ENABLED(EXTENSIBLE_UI)
|
||||||
ExtUI::OnPowerLossResume();
|
ExtUI::onPowerLossResume();
|
||||||
#else
|
#else
|
||||||
SERIAL_ECHO_MSG("Resume requires LCD.");
|
SERIAL_ECHO_MSG("Resume requires LCD.");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -73,7 +73,7 @@ void GcodeSuite::M303() {
|
||||||
if (!WITHIN(e, SI, EI)) {
|
if (!WITHIN(e, SI, EI)) {
|
||||||
SERIAL_ECHOLNPGM(STR_PID_BAD_EXTRUDER_NUM);
|
SERIAL_ECHOLNPGM(STR_PID_BAD_EXTRUDER_NUM);
|
||||||
#if ENABLED(EXTENSIBLE_UI)
|
#if ENABLED(EXTENSIBLE_UI)
|
||||||
ExtUI::OnPidTuning(ExtUI::result_t::PID_BAD_EXTRUDER_NUM);
|
ExtUI::onPidTuning(ExtUI::result_t::PID_BAD_EXTRUDER_NUM);
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,11 @@ namespace FTDI {
|
||||||
SET_OUTPUT(CLCD_SPI_CS);
|
SET_OUTPUT(CLCD_SPI_CS);
|
||||||
WRITE(CLCD_SPI_CS, 1);
|
WRITE(CLCD_SPI_CS, 1);
|
||||||
|
|
||||||
|
#ifdef CLCD_SPI_EXTRA_CS
|
||||||
|
SET_OUTPUT(CLCD_SPI_EXTRA_CS);
|
||||||
|
WRITE(CLCD_SPI_EXTRA_CS, 1);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef SPI_FLASH_SS
|
#ifdef SPI_FLASH_SS
|
||||||
SET_OUTPUT(SPI_FLASH_SS);
|
SET_OUTPUT(SPI_FLASH_SS);
|
||||||
WRITE(SPI_FLASH_SS, 1);
|
WRITE(SPI_FLASH_SS, 1);
|
||||||
|
@ -111,12 +116,18 @@ namespace FTDI {
|
||||||
::SPI.beginTransaction(spi_settings);
|
::SPI.beginTransaction(spi_settings);
|
||||||
#endif
|
#endif
|
||||||
WRITE(CLCD_SPI_CS, 0);
|
WRITE(CLCD_SPI_CS, 0);
|
||||||
|
#ifdef CLCD_SPI_EXTRA_CS
|
||||||
|
WRITE(CLCD_SPI_EXTRA_CS, 0);
|
||||||
|
#endif
|
||||||
delayMicroseconds(1);
|
delayMicroseconds(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// CLCD SPI - Chip Deselect
|
// CLCD SPI - Chip Deselect
|
||||||
void SPI::spi_ftdi_deselect() {
|
void SPI::spi_ftdi_deselect() {
|
||||||
WRITE(CLCD_SPI_CS, 1);
|
WRITE(CLCD_SPI_CS, 1);
|
||||||
|
#ifdef CLCD_SPI_EXTRA_CS
|
||||||
|
WRITE(CLCD_SPI_EXTRA_CS, 1);
|
||||||
|
#endif
|
||||||
#ifndef CLCD_USE_SOFT_SPI
|
#ifndef CLCD_USE_SOFT_SPI
|
||||||
::SPI.endTransaction();
|
::SPI.endTransaction();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -191,7 +191,7 @@ namespace FTDI {
|
||||||
|
|
||||||
#if ENABLED(TOUCH_UI_DEBUG)
|
#if ENABLED(TOUCH_UI_DEBUG)
|
||||||
SERIAL_ECHO_START();
|
SERIAL_ECHO_START();
|
||||||
SERIAL_ECHOLNPAIR("Touch end: ", tag);
|
SERIAL_ECHOLNPAIR("Touch end: ", pressed_tag);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const uint8_t saved_pressed_tag = pressed_tag;
|
const uint8_t saved_pressed_tag = pressed_tag;
|
||||||
|
|
|
@ -70,13 +70,15 @@ namespace Language_en {
|
||||||
PROGMEM Language_Str MSG_PRINT_FINISHED = u8"Print finished";
|
PROGMEM Language_Str MSG_PRINT_FINISHED = u8"Print finished";
|
||||||
PROGMEM Language_Str MSG_PRINT_ERROR = u8"Print error";
|
PROGMEM Language_Str MSG_PRINT_ERROR = u8"Print error";
|
||||||
PROGMEM Language_Str MSG_ABOUT_TOUCH_PANEL_1 = u8"Color Touch Panel";
|
PROGMEM Language_Str MSG_ABOUT_TOUCH_PANEL_1 = u8"Color Touch Panel";
|
||||||
PROGMEM Language_Str MSG_ABOUT_TOUCH_PANEL_2 = u8"Portions " COPYRIGHT_SIGN " 2019 Aleph Objects, Inc.\n"
|
PROGMEM Language_Str MSG_ABOUT_TOUCH_PANEL_2 = WEBSITE_URL;
|
||||||
"Portions " COPYRIGHT_SIGN " 2019 Cocoa Press";
|
PROGMEM Language_Str MSG_LICENSE = u8"This program is free software: you can redistribute it and/or modify it under the terms of "
|
||||||
PROGMEM Language_Str MSG_FIRMWARE_FOR_TOOLHEAD = u8"Firmware for toolhead:\n%s\n\n";
|
"the GNU General Public License as published by the Free Software Foundation, either version 3 "
|
||||||
|
"of the License, or (at your option) any later version.\n\nTo view a copy of the GNU General "
|
||||||
|
"Public License, go to the following location: http://www.gnu.org/licenses.";
|
||||||
PROGMEM Language_Str MSG_RUNOUT_1 = u8"Runout 1";
|
PROGMEM Language_Str MSG_RUNOUT_1 = u8"Runout 1";
|
||||||
PROGMEM Language_Str MSG_RUNOUT_2 = u8"Runout 2";
|
PROGMEM Language_Str MSG_RUNOUT_2 = u8"Runout 2";
|
||||||
PROGMEM Language_Str MSG_DISPLAY_MENU = u8"Display";
|
PROGMEM Language_Str MSG_DISPLAY_MENU = u8"Display";
|
||||||
PROGMEM Language_Str MSG_INTERFACE_SETTINGS = u8"Interface Settings";
|
PROGMEM Language_Str MSG_INTERFACE = u8"Interface";
|
||||||
PROGMEM Language_Str MSG_MEASURE_AUTOMATICALLY = u8"Measure automatically";
|
PROGMEM Language_Str MSG_MEASURE_AUTOMATICALLY = u8"Measure automatically";
|
||||||
PROGMEM Language_Str MSG_H_OFFSET = u8"H Offset";
|
PROGMEM Language_Str MSG_H_OFFSET = u8"H Offset";
|
||||||
PROGMEM Language_Str MSG_V_OFFSET = u8"V Offset";
|
PROGMEM Language_Str MSG_V_OFFSET = u8"V Offset";
|
||||||
|
@ -129,7 +131,7 @@ namespace Language_en {
|
||||||
PROGMEM Language_Str MSG_SOUND_VOLUME = u8"Sound volume";
|
PROGMEM Language_Str MSG_SOUND_VOLUME = u8"Sound volume";
|
||||||
PROGMEM Language_Str MSG_SCREEN_LOCK = u8"Screen lock";
|
PROGMEM Language_Str MSG_SCREEN_LOCK = u8"Screen lock";
|
||||||
PROGMEM Language_Str MSG_BOOT_SCREEN = u8"Boot screen";
|
PROGMEM Language_Str MSG_BOOT_SCREEN = u8"Boot screen";
|
||||||
PROGMEM Language_Str MSG_INTERFACE_SOUNDS = u8"Interface Sounds";
|
PROGMEM Language_Str MSG_SOUNDS = u8"Sounds";
|
||||||
PROGMEM Language_Str MSG_CLICK_SOUNDS = u8"Click sounds";
|
PROGMEM Language_Str MSG_CLICK_SOUNDS = u8"Click sounds";
|
||||||
PROGMEM Language_Str MSG_EEPROM_RESTORED = u8"Settings restored from backup";
|
PROGMEM Language_Str MSG_EEPROM_RESTORED = u8"Settings restored from backup";
|
||||||
PROGMEM Language_Str MSG_EEPROM_RESET = u8"Settings restored to default";
|
PROGMEM Language_Str MSG_EEPROM_RESET = u8"Settings restored to default";
|
||||||
|
@ -144,12 +146,12 @@ namespace Language_en {
|
||||||
|
|
||||||
PROGMEM Language_Str MSG_TOUCH_CALIBRATION_START = u8"Release to begin screen calibration";
|
PROGMEM Language_Str MSG_TOUCH_CALIBRATION_START = u8"Release to begin screen calibration";
|
||||||
PROGMEM Language_Str MSG_TOUCH_CALIBRATION_PROMPT = u8"Touch the dots to calibrate";
|
PROGMEM Language_Str MSG_TOUCH_CALIBRATION_PROMPT = u8"Touch the dots to calibrate";
|
||||||
|
PROGMEM Language_Str MSG_AUTOLEVEL_X_AXIS = u8"Level X Axis";
|
||||||
|
|
||||||
#ifdef TOUCH_UI_LULZBOT_BIO
|
#ifdef TOUCH_UI_LULZBOT_BIO
|
||||||
PROGMEM Language_Str MSG_MOVE_TO_HOME = u8"Move to Home";
|
PROGMEM Language_Str MSG_MOVE_TO_HOME = u8"Move to Home";
|
||||||
PROGMEM Language_Str MSG_RAISE_PLUNGER = u8"Raise Plunger";
|
PROGMEM Language_Str MSG_RAISE_PLUNGER = u8"Raise Plunger";
|
||||||
PROGMEM Language_Str MSG_RELEASE_XY_AXIS = u8"Release X and Y Axis";
|
PROGMEM Language_Str MSG_RELEASE_XY_AXIS = u8"Release X and Y Axis";
|
||||||
PROGMEM Language_Str MSG_AUTOLEVEL_X_AXIS = u8"Auto-level X Axis";
|
|
||||||
PROGMEM Language_Str MSG_BED_TEMPERATURE = u8"Bed Temperature";
|
PROGMEM Language_Str MSG_BED_TEMPERATURE = u8"Bed Temperature";
|
||||||
PROGMEM Language_Str MSG_HOME_XYZ_WARNING = u8"About to move to home position. Ensure the top and the bed of the printer are clear.\n\nContinue?";
|
PROGMEM Language_Str MSG_HOME_XYZ_WARNING = u8"About to move to home position. Ensure the top and the bed of the printer are clear.\n\nContinue?";
|
||||||
PROGMEM Language_Str MSG_HOME_E_WARNING = u8"About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?";
|
PROGMEM Language_Str MSG_HOME_E_WARNING = u8"About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?";
|
||||||
|
|
|
@ -131,8 +131,14 @@ namespace ExtUI {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||||
|
void onPowerLossResume() {
|
||||||
|
// Called on resume from power-loss
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAS_PID_HEATING
|
#if HAS_PID_HEATING
|
||||||
void OnPidTuning(const result_t rst) {
|
void onPidTuning(const result_t rst) {
|
||||||
// Called for temperature PID tuning result
|
// Called for temperature PID tuning result
|
||||||
SERIAL_ECHOLNPAIR("OnPidTuning:", rst);
|
SERIAL_ECHOLNPAIR("OnPidTuning:", rst);
|
||||||
switch (rst) {
|
switch (rst) {
|
||||||
|
|
|
@ -129,12 +129,13 @@
|
||||||
* 9 GND GND GND --> GND
|
* 9 GND GND GND --> GND
|
||||||
* 10 5V 5V 5V --> KILL [3]
|
* 10 5V 5V 5V --> KILL [3]
|
||||||
*
|
*
|
||||||
* [1] This configuration is not compatible with the
|
* [1] This configuration allows daisy-chaining of the
|
||||||
* EinsyRetro 1.1a because there is a level shifter
|
* display and SD/USB on EXP2, except for [2]
|
||||||
* on MISO enabled by SD/USB chip select.
|
|
||||||
*
|
*
|
||||||
* [2] This configuration allows daisy-chaining of the
|
* [2] The Ultimachine Einsy boards have a level shifter
|
||||||
* display and SD/USB on EXP2.
|
* on MISO enabled by SD_CSEL chip select, hence it
|
||||||
|
* is not possible to run both the display and the
|
||||||
|
* SD/USB on EXP2.
|
||||||
*
|
*
|
||||||
* [3] Archim Rambo provides 5V on this pin. On any other
|
* [3] Archim Rambo provides 5V on this pin. On any other
|
||||||
* board, divert this wire from the ribbon cable and
|
* board, divert this wire from the ribbon cable and
|
||||||
|
@ -148,4 +149,8 @@
|
||||||
|
|
||||||
#define CLCD_SPI_CS BTN_EN1
|
#define CLCD_SPI_CS BTN_EN1
|
||||||
#define CLCD_MOD_RESET BTN_EN2
|
#define CLCD_MOD_RESET BTN_EN2
|
||||||
|
|
||||||
|
#if MB(EINSY_RAMBO, EINSY_RETRO) && DISABLED(SDSUPPORT)
|
||||||
|
#define CLCD_SPI_EXTRA_CS SDSS
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "screens.h"
|
#include "screens.h"
|
||||||
|
|
||||||
#define GRID_COLS 4
|
#define GRID_COLS 4
|
||||||
#define GRID_ROWS 9
|
#define GRID_ROWS 7
|
||||||
|
|
||||||
using namespace FTDI;
|
using namespace FTDI;
|
||||||
using namespace Theme;
|
using namespace Theme;
|
||||||
|
@ -45,7 +45,32 @@ void AboutScreen::onRedraw(draw_mode_t) {
|
||||||
.cmd(COLOR_RGB(bg_text_enabled))
|
.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
.tag(0);
|
.tag(0);
|
||||||
|
|
||||||
draw_text_box(cmd, BTN_POS(1,2), BTN_SIZE(4,1),
|
#define HEADING_POS BTN_POS(1,2), BTN_SIZE(4,1)
|
||||||
|
#define FW_VERS_POS BTN_POS(1,3), BTN_SIZE(4,1)
|
||||||
|
#define FW_INFO_POS BTN_POS(1,4), BTN_SIZE(4,1)
|
||||||
|
#define LICENSE_POS BTN_POS(1,5), BTN_SIZE(4,2)
|
||||||
|
#define STATS_POS BTN_POS(1,7), BTN_SIZE(2,1)
|
||||||
|
#define BACK_POS BTN_POS(3,7), BTN_SIZE(2,1)
|
||||||
|
|
||||||
|
#define _INSET_POS(x,y,w,h) x + w/10, y, w - w/5, h
|
||||||
|
#define INSET_POS(pos) _INSET_POS(pos)
|
||||||
|
|
||||||
|
char about_str[
|
||||||
|
strlen_P(GET_TEXT(MSG_ABOUT_TOUCH_PANEL_2)) +
|
||||||
|
strlen_P(TOOLHEAD_NAME) + 1
|
||||||
|
];
|
||||||
|
#ifdef TOOLHEAD_NAME
|
||||||
|
// If MSG_ABOUT_TOUCH_PANEL_2 has %s, substitute in the toolhead name.
|
||||||
|
// But this is optional, so squelch the compiler warning here.
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wformat-extra-args"
|
||||||
|
sprintf_P(about_str, GET_TEXT(MSG_ABOUT_TOUCH_PANEL_2), TOOLHEAD_NAME);
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
#else
|
||||||
|
strcpy_P(about_str, GET_TEXT(MSG_ABOUT_TOUCH_PANEL_2));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
draw_text_box(cmd, HEADING_POS,
|
||||||
#ifdef CUSTOM_MACHINE_NAME
|
#ifdef CUSTOM_MACHINE_NAME
|
||||||
F(CUSTOM_MACHINE_NAME)
|
F(CUSTOM_MACHINE_NAME)
|
||||||
#else
|
#else
|
||||||
|
@ -53,42 +78,29 @@ void AboutScreen::onRedraw(draw_mode_t) {
|
||||||
#endif
|
#endif
|
||||||
, OPT_CENTER, font_xlarge
|
, OPT_CENTER, font_xlarge
|
||||||
);
|
);
|
||||||
|
draw_text_box(cmd, FW_VERS_POS, progmem_str(getFirmwareName_str()), OPT_CENTER, font_medium);
|
||||||
|
draw_text_box(cmd, FW_INFO_POS, about_str, OPT_CENTER, font_medium);
|
||||||
|
draw_text_box(cmd, INSET_POS(LICENSE_POS), GET_TEXT_F(MSG_LICENSE), OPT_CENTER, font_tiny);
|
||||||
|
|
||||||
#ifdef TOOLHEAD_NAME
|
cmd.font(font_medium)
|
||||||
char about_str[
|
.colors(normal_btn)
|
||||||
strlen_P(GET_TEXT(FIRMWARE_FOR_TOOLHEAD)) +
|
.tag(2).button(STATS_POS, GET_TEXT_F(MSG_INFO_STATS_MENU))
|
||||||
strlen_P(TOOLHEAD_NAME) +
|
.colors(action_btn)
|
||||||
strlen_P(GET_TEXT(MSG_ABOUT_TOUCH_PANEL_2)) + 1
|
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||||
];
|
|
||||||
|
|
||||||
sprintf_P(about_str, GET_TEXT(MSG_FIRMWARE_FOR_TOOLHEAD), TOOLHEAD_NAME);
|
|
||||||
strcat_P (about_str, GET_TEXT(MSG_ABOUT_TOUCH_PANEL_2));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
cmd.tag(2);
|
|
||||||
draw_text_box(cmd, BTN_POS(1,3), BTN_SIZE(4,3),
|
|
||||||
#ifdef TOOLHEAD_NAME
|
|
||||||
about_str
|
|
||||||
#else
|
|
||||||
GET_TEXT_F(MSG_ABOUT_TOUCH_PANEL_2)
|
|
||||||
#endif
|
|
||||||
, OPT_CENTER, font_medium
|
|
||||||
);
|
|
||||||
|
|
||||||
cmd.tag(0);
|
|
||||||
draw_text_box(cmd, BTN_POS(1,6), BTN_SIZE(4,2), progmem_str(getFirmwareName_str()), OPT_CENTER, font_medium);
|
|
||||||
|
|
||||||
cmd.font(font_medium).colors(action_btn).tag(1).button(BTN_POS(2,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_OKAY));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AboutScreen::onTouchEnd(uint8_t tag) {
|
bool AboutScreen::onTouchEnd(uint8_t tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 1: GOTO_PREVIOUS(); return true;
|
case 1: GOTO_PREVIOUS(); break;
|
||||||
|
#if ENABLED(PRINTCOUNTER)
|
||||||
|
case 2: GOTO_SCREEN(StatisticsScreen); break;
|
||||||
|
#endif
|
||||||
#if ENABLED(TOUCH_UI_DEVELOPER_MENU)
|
#if ENABLED(TOUCH_UI_DEVELOPER_MENU)
|
||||||
case 2: GOTO_SCREEN(DeveloperMenu); return true;
|
case 3: GOTO_SCREEN(DeveloperMenu); break;
|
||||||
#endif
|
#endif
|
||||||
default: return false;
|
default: return false;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // TOUCH_UI_FTDI_EVE
|
#endif // TOUCH_UI_FTDI_EVE
|
||||||
|
|
|
@ -37,127 +37,116 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||||
.cmd(CLEAR(true,true,true));
|
.cmd(CLEAR(true,true,true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
|
#if HAS_CASE_LIGHT || ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define GRID_ROWS 9
|
||||||
|
#else
|
||||||
|
#define GRID_ROWS 8
|
||||||
|
#endif
|
||||||
|
#define GRID_COLS 2
|
||||||
|
#define RESTORE_DEFAULTS_POS BTN_POS(1,1), BTN_SIZE(2,1)
|
||||||
|
#define DISPLAY_POS BTN_POS(1,2), BTN_SIZE(1,1)
|
||||||
|
#define INTERFACE_POS BTN_POS(2,2), BTN_SIZE(1,1)
|
||||||
|
#define ZPROBE_ZOFFSET_POS BTN_POS(1,3), BTN_SIZE(1,1)
|
||||||
|
#define STEPS_PER_MM_POS BTN_POS(2,3), BTN_SIZE(1,1)
|
||||||
|
#define FILAMENT_POS BTN_POS(1,4), BTN_SIZE(1,1)
|
||||||
|
#define VELOCITY_POS BTN_POS(2,4), BTN_SIZE(1,1)
|
||||||
|
#define TMC_CURRENT_POS BTN_POS(1,5), BTN_SIZE(1,1)
|
||||||
|
#define ACCELERATION_POS BTN_POS(2,5), BTN_SIZE(1,1)
|
||||||
|
#define ENDSTOPS_POS BTN_POS(1,6), BTN_SIZE(1,1)
|
||||||
|
#define JERK_POS BTN_POS(2,6), BTN_SIZE(1,1)
|
||||||
|
#define OFFSETS_POS BTN_POS(1,7), BTN_SIZE(1,1)
|
||||||
|
#define BACKLASH_POS BTN_POS(2,7), BTN_SIZE(1,1)
|
||||||
|
#define CASE_LIGHT_POS BTN_POS(1,8), BTN_SIZE(1,1)
|
||||||
|
#define TMC_HOMING_THRS_POS BTN_POS(2,8), BTN_SIZE(1,1)
|
||||||
|
#if HAS_CASE_LIGHT || ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define BACK_POS BTN_POS(1,9), BTN_SIZE(2,1)
|
||||||
|
#else
|
||||||
|
#define BACK_POS BTN_POS(1,8), BTN_SIZE(2,1)
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define GRID_ROWS 6
|
||||||
|
#define GRID_COLS 3
|
||||||
|
#define ZPROBE_ZOFFSET_POS BTN_POS(1,1), BTN_SIZE(1,1)
|
||||||
|
#define CASE_LIGHT_POS BTN_POS(1,4), BTN_SIZE(1,1)
|
||||||
|
#define STEPS_PER_MM_POS BTN_POS(2,1), BTN_SIZE(1,1)
|
||||||
|
#define TMC_CURRENT_POS BTN_POS(3,1), BTN_SIZE(1,1)
|
||||||
|
#define TMC_HOMING_THRS_POS BTN_POS(3,2), BTN_SIZE(1,1)
|
||||||
|
#define BACKLASH_POS BTN_POS(3,3), BTN_SIZE(1,1)
|
||||||
|
#define FILAMENT_POS BTN_POS(1,3), BTN_SIZE(1,1)
|
||||||
|
#define ENDSTOPS_POS BTN_POS(3,4), BTN_SIZE(1,1)
|
||||||
|
#define DISPLAY_POS BTN_POS(3,5), BTN_SIZE(1,1)
|
||||||
|
#define INTERFACE_POS BTN_POS(1,5), BTN_SIZE(2,1)
|
||||||
|
#define RESTORE_DEFAULTS_POS BTN_POS(1,6), BTN_SIZE(2,1)
|
||||||
|
#define VELOCITY_POS BTN_POS(2,2), BTN_SIZE(1,1)
|
||||||
|
#define ACCELERATION_POS BTN_POS(2,3), BTN_SIZE(1,1)
|
||||||
|
#define JERK_POS BTN_POS(2,4), BTN_SIZE(1,1)
|
||||||
|
#define OFFSETS_POS BTN_POS(1,2), BTN_SIZE(1,1)
|
||||||
|
#define BACK_POS BTN_POS(3,6), BTN_SIZE(1,1)
|
||||||
|
#endif
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.colors(normal_btn)
|
cmd.colors(normal_btn)
|
||||||
.font(Theme::font_medium)
|
.font(Theme::font_medium)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
|
||||||
#define GRID_ROWS 10
|
|
||||||
#define GRID_COLS 2
|
|
||||||
.enabled(
|
.enabled(
|
||||||
#if HAS_BED_PROBE
|
#if HAS_BED_PROBE
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_ZPROBE_ZOFFSET))
|
.tag(2) .button( ZPROBE_ZOFFSET_POS, GET_TEXT_F(MSG_ZPROBE_ZOFFSET))
|
||||||
.enabled(
|
.enabled(
|
||||||
#if HAS_CASE_LIGHT
|
#if HAS_CASE_LIGHT
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(16).button( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_CASE_LIGHT))
|
.tag(16).button( CASE_LIGHT_POS, GET_TEXT_F(MSG_CASE_LIGHT))
|
||||||
.tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_STEPS_PER_MM))
|
.tag(3) .button( STEPS_PER_MM_POS, GET_TEXT_F(MSG_STEPS_PER_MM))
|
||||||
.enabled(
|
.enabled(
|
||||||
#if HAS_TRINAMIC_CONFIG
|
#if HAS_TRINAMIC_CONFIG
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(13).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT))
|
.tag(13).button( TMC_CURRENT_POS, GET_TEXT_F(MSG_TMC_CURRENT))
|
||||||
.enabled(
|
.enabled(
|
||||||
#if HAS_TRINAMIC_CONFIG
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(14).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_TMC_HOMING_THRS))
|
.tag(14).button( TMC_HOMING_THRS_POS, GET_TEXT_F(MSG_TMC_HOMING_THRS))
|
||||||
.enabled(
|
.enabled(
|
||||||
#if HOTENDS > 1
|
#if HOTENDS > 1
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU))
|
.tag(4) .button( OFFSETS_POS, GET_TEXT_F(MSG_OFFSETS_MENU))
|
||||||
.enabled(
|
.enabled(
|
||||||
#if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
|
#if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENT))
|
.tag(11).button( FILAMENT_POS, GET_TEXT_F(MSG_FILAMENT))
|
||||||
.tag(12).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS))
|
.tag(12).button( ENDSTOPS_POS, GET_TEXT_F(MSG_LCD_ENDSTOPS))
|
||||||
.tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISPLAY_MENU))
|
.tag(15).button( DISPLAY_POS, GET_TEXT_F(MSG_DISPLAY_MENU))
|
||||||
.tag(9) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS))
|
.tag(9) .button( INTERFACE_POS, GET_TEXT_F(MSG_INTERFACE))
|
||||||
.tag(10).button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
.tag(10).button( RESTORE_DEFAULTS_POS, GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
||||||
.tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_VELOCITY))
|
.tag(5) .button( VELOCITY_POS, GET_TEXT_F(MSG_VELOCITY))
|
||||||
.tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_ACCELERATION))
|
.tag(6) .button( ACCELERATION_POS, GET_TEXT_F(MSG_ACCELERATION))
|
||||||
|
.tag(7) .button( JERK_POS, GET_TEXT_F(
|
||||||
#if DISABLED(CLASSIC_JERK)
|
#if DISABLED(CLASSIC_JERK)
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JUNCTION_DEVIATION))
|
MSG_JUNCTION_DEVIATION
|
||||||
#else
|
#else
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK))
|
JERK_POS
|
||||||
#endif
|
#endif
|
||||||
|
))
|
||||||
.enabled(
|
.enabled(
|
||||||
#if ENABLED(BACKLASH_GCODE)
|
#if ENABLED(BACKLASH_GCODE)
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH))
|
.tag(8).button( BACKLASH_POS, GET_TEXT_F(MSG_BACKLASH))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1) .button( BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
.tag(1).button( BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||||
#undef GRID_COLS
|
|
||||||
#undef GRID_ROWS
|
|
||||||
#else
|
|
||||||
#define GRID_ROWS 6
|
|
||||||
#define GRID_COLS 3
|
|
||||||
.enabled(
|
|
||||||
#if HAS_BED_PROBE
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_ZPROBE_ZOFFSET))
|
|
||||||
.enabled(
|
|
||||||
#if HAS_CASE_LIGHT
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(16).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_CASE_LIGHT))
|
|
||||||
.enabled(1)
|
|
||||||
.tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_STEPS_PER_MM))
|
|
||||||
.enabled(
|
|
||||||
#if HAS_TRINAMIC_CONFIG
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT))
|
|
||||||
.enabled(
|
|
||||||
#if HAS_TRINAMIC_CONFIG
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_HOMING_THRS))
|
|
||||||
.enabled(
|
|
||||||
#if ENABLED(BACKLASH_GCODE)
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(8).button( BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH))
|
|
||||||
.enabled(
|
|
||||||
#if HOTENDS > 1
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU))
|
|
||||||
.tag(12).button( BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS))
|
|
||||||
.tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_VELOCITY))
|
|
||||||
.tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_ACCELERATION))
|
|
||||||
#if DISABLED(CLASSIC_JERK)
|
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JUNCTION_DEVIATION))
|
|
||||||
#else
|
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK))
|
|
||||||
#endif
|
|
||||||
.tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENT))
|
|
||||||
.tag(15).button( BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISPLAY_MENU))
|
|
||||||
.tag(9) .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS))
|
|
||||||
.tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
|
||||||
.colors(action_btn)
|
|
||||||
.tag(1) .button( BTN_POS(3,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACK));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,6 +180,8 @@ bool AdvancedSettingsMenu::onTouchEnd(uint8_t tag) {
|
||||||
case 12: GOTO_SCREEN(EndstopStatesScreen); break;
|
case 12: GOTO_SCREEN(EndstopStatesScreen); break;
|
||||||
#if HAS_TRINAMIC_CONFIG
|
#if HAS_TRINAMIC_CONFIG
|
||||||
case 13: GOTO_SCREEN(StepperCurrentScreen); break;
|
case 13: GOTO_SCREEN(StepperCurrentScreen); break;
|
||||||
|
#endif
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
case 14: GOTO_SCREEN(StepperBumpSensitivityScreen); break;
|
case 14: GOTO_SCREEN(StepperBumpSensitivityScreen); break;
|
||||||
#endif
|
#endif
|
||||||
case 15: GOTO_SCREEN(DisplayTuningScreen); break;
|
case 15: GOTO_SCREEN(DisplayTuningScreen); break;
|
||||||
|
@ -201,5 +192,4 @@ bool AdvancedSettingsMenu::onTouchEnd(uint8_t tag) {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // TOUCH_UI_FTDI_EVE
|
#endif // TOUCH_UI_FTDI_EVE
|
||||||
|
|
|
@ -347,8 +347,12 @@ void BaseNumericAdjustmentScreen::widgets_t::home_buttons(uint8_t tag) {
|
||||||
cmd.font(LAYOUT_FONT);
|
cmd.font(LAYOUT_FONT);
|
||||||
_button(cmd, tag+0, BTN_POS(5,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_X));
|
_button(cmd, tag+0, BTN_POS(5,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_X));
|
||||||
_button(cmd, tag+1, BTN_POS(7,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_Y));
|
_button(cmd, tag+1, BTN_POS(7,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_Y));
|
||||||
|
#if DISABLED(Z_SAFE_HOMING)
|
||||||
_button(cmd, tag+2, BTN_POS(9,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_Z));
|
_button(cmd, tag+2, BTN_POS(9,_line), BTN_SIZE(2,1), GET_TEXT_F(MSG_AXIS_Z));
|
||||||
_button(cmd, tag+3, BTN_POS(11,_line), BTN_SIZE(3,1), GET_TEXT_F(MSG_AXIS_ALL));
|
_button(cmd, tag+3, BTN_POS(11,_line), BTN_SIZE(3,1), GET_TEXT_F(MSG_AXIS_ALL));
|
||||||
|
#else
|
||||||
|
_button(cmd, tag+3, BTN_POS(9,_line), BTN_SIZE(3,1), GET_TEXT_F(MSG_AXIS_ALL));
|
||||||
|
#endif
|
||||||
|
|
||||||
_line++;
|
_line++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ bool BaseScreen::buttonStyleCallback(CommandProcessor &cmd, uint8_t tag, uint8_t
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LCD_TIMEOUT_TO_STATUS
|
#if LCD_TIMEOUT_TO_STATUS
|
||||||
if (EventLoop::get_pressed_tag() != 0) {
|
if (EventLoop::get_pressed_tag() != 0) {
|
||||||
reset_menu_timeout();
|
reset_menu_timeout();
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ bool BaseScreen::buttonStyleCallback(CommandProcessor &cmd, uint8_t tag, uint8_t
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseScreen::onIdle() {
|
void BaseScreen::onIdle() {
|
||||||
#ifdef LCD_TIMEOUT_TO_STATUS
|
#if LCD_TIMEOUT_TO_STATUS
|
||||||
if ((millis() - last_interaction) > LCD_TIMEOUT_TO_STATUS) {
|
if ((millis() - last_interaction) > LCD_TIMEOUT_TO_STATUS) {
|
||||||
reset_menu_timeout();
|
reset_menu_timeout();
|
||||||
#if ENABLED(TOUCH_UI_DEBUG)
|
#if ENABLED(TOUCH_UI_DEBUG)
|
||||||
|
@ -78,12 +78,12 @@ void BaseScreen::onIdle() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseScreen::reset_menu_timeout() {
|
void BaseScreen::reset_menu_timeout() {
|
||||||
#ifdef LCD_TIMEOUT_TO_STATUS
|
#if LCD_TIMEOUT_TO_STATUS
|
||||||
last_interaction = millis();
|
last_interaction = millis();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LCD_TIMEOUT_TO_STATUS
|
#if LCD_TIMEOUT_TO_STATUS
|
||||||
uint32_t BaseScreen::last_interaction;
|
uint32_t BaseScreen::last_interaction;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_LINEAR_ADVANCE))
|
.tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_LINEAR_ADVANCE))
|
||||||
.tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS))
|
.tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE))
|
||||||
.tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
.tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||||
|
|
|
@ -36,11 +36,13 @@ void BioConfirmHomeE::onRedraw(draw_mode_t) {
|
||||||
bool BioConfirmHomeE::onTouchEnd(uint8_t tag) {
|
bool BioConfirmHomeE::onTouchEnd(uint8_t tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 1:
|
case 1:
|
||||||
|
#if defined(AXIS_LEVELING_COMMANDS) && defined(PARK_AND_RELEASE_COMMANDS)
|
||||||
SpinnerDialogBox::enqueueAndWait_P(F(
|
SpinnerDialogBox::enqueueAndWait_P(F(
|
||||||
"G28 E\n"
|
"G28 E\n"
|
||||||
AXIS_LEVELING_COMMANDS "\n"
|
AXIS_LEVELING_COMMANDS "\n"
|
||||||
PARK_AND_RELEASE_COMMANDS
|
PARK_AND_RELEASE_COMMANDS
|
||||||
));
|
));
|
||||||
|
#endif
|
||||||
current_screen.forget();
|
current_screen.forget();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
|
|
@ -36,10 +36,12 @@ void BioConfirmHomeXYZ::onRedraw(draw_mode_t) {
|
||||||
bool BioConfirmHomeXYZ::onTouchEnd(uint8_t tag) {
|
bool BioConfirmHomeXYZ::onTouchEnd(uint8_t tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 1:
|
case 1:
|
||||||
|
#ifdef PARK_AND_RELEASE_COMMANDS
|
||||||
SpinnerDialogBox::enqueueAndWait_P(F(
|
SpinnerDialogBox::enqueueAndWait_P(F(
|
||||||
"G28\n"
|
"G28\n"
|
||||||
PARK_AND_RELEASE_COMMANDS
|
PARK_AND_RELEASE_COMMANDS
|
||||||
));
|
));
|
||||||
|
#endif
|
||||||
current_screen.forget();
|
current_screen.forget();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
|
|
@ -51,7 +51,7 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
||||||
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_RELEASE_XY_AXIS))
|
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_RELEASE_XY_AXIS))
|
||||||
.tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_AUTOLEVEL_X_AXIS))
|
.tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_AUTOLEVEL_X_AXIS))
|
||||||
.tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BED_TEMPERATURE))
|
.tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BED_TEMPERATURE))
|
||||||
.tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS))
|
.tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE))
|
||||||
.tag(8).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS))
|
.tag(8).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS))
|
||||||
.tag(9).button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_MENU))
|
.tag(9).button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_MENU))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
|
@ -72,7 +72,9 @@ bool MainMenu::onTouchEnd(uint8_t tag) {
|
||||||
case 2: GOTO_SCREEN(BioConfirmHomeXYZ); break;
|
case 2: GOTO_SCREEN(BioConfirmHomeXYZ); break;
|
||||||
case 3: SpinnerDialogBox::enqueueAndWait_P(e_homed ? F("G0 E0 F120") : F("G112")); break;
|
case 3: SpinnerDialogBox::enqueueAndWait_P(e_homed ? F("G0 E0 F120") : F("G112")); break;
|
||||||
case 4: StatusScreen::unlockMotors(); break;
|
case 4: StatusScreen::unlockMotors(); break;
|
||||||
|
#ifdef AXIS_LEVELING_COMMANDS
|
||||||
case 5: SpinnerDialogBox::enqueueAndWait_P(F(AXIS_LEVELING_COMMANDS)); break;
|
case 5: SpinnerDialogBox::enqueueAndWait_P(F(AXIS_LEVELING_COMMANDS)); break;
|
||||||
|
#endif
|
||||||
case 6: GOTO_SCREEN(TemperatureScreen); break;
|
case 6: GOTO_SCREEN(TemperatureScreen); break;
|
||||||
case 7: GOTO_SCREEN(InterfaceSettingsScreen); break;
|
case 7: GOTO_SCREEN(InterfaceSettingsScreen); break;
|
||||||
case 8: GOTO_SCREEN(AdvancedSettingsMenu); break;
|
case 8: GOTO_SCREEN(AdvancedSettingsMenu); break;
|
||||||
|
|
|
@ -80,12 +80,14 @@ void BootScreen::onIdle() {
|
||||||
SpinnerDialogBox::hide();
|
SpinnerDialogBox::hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DISABLED(TOUCH_UI_NO_BOOTSCREEN)
|
||||||
if (UIData::animations_enabled()) {
|
if (UIData::animations_enabled()) {
|
||||||
// If there is a startup video in the flash SPI, play
|
// If there is a startup video in the flash SPI, play
|
||||||
// that, otherwise show a static splash screen.
|
// that, otherwise show a static splash screen.
|
||||||
if (!MediaPlayerScreen::playBootMedia())
|
if (!MediaPlayerScreen::playBootMedia())
|
||||||
showSplashScreen();
|
showSplashScreen();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
StatusScreen::loadBitmaps();
|
StatusScreen::loadBitmaps();
|
||||||
|
|
||||||
|
|
|
@ -111,6 +111,7 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||||
if (what & BACKGROUND) {
|
if (what & BACKGROUND) {
|
||||||
cmd.cmd(CLEAR_COLOR_RGB(bg_color))
|
cmd.cmd(CLEAR_COLOR_RGB(bg_color))
|
||||||
.cmd(CLEAR(true,true,true))
|
.cmd(CLEAR(true,true,true))
|
||||||
|
.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
.tag(0)
|
.tag(0)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.font(font_large)
|
.font(font_large)
|
||||||
|
@ -119,7 +120,7 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||||
#endif
|
#endif
|
||||||
.text(BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_EXTRUDER_SELECTION))
|
.text(BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_EXTRUDER_SELECTION))
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.text(BTN_POS(1,7), BTN_SIZE(1,1), F(""))
|
.text(BTN_POS(1,7), BTN_SIZE(1,1), GET_TEXT_F(MSG_CURRENT_TEMPERATURE))
|
||||||
#else
|
#else
|
||||||
.text(BTN_POS(3,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_CURRENT_TEMPERATURE))
|
.text(BTN_POS(3,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_CURRENT_TEMPERATURE))
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
|
|
|
@ -69,7 +69,7 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) {
|
||||||
.cmd(COLOR_RGB(bg_text_enabled))
|
.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
.tag(0)
|
.tag(0)
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
.text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS))
|
.text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(MSG_INTERFACE))
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
#define EDGE_R 30
|
#define EDGE_R 30
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
|
@ -77,7 +77,9 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) {
|
||||||
.text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_LCD_BRIGHTNESS), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_LCD_BRIGHTNESS), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_SCREEN_LOCK), OPT_RIGHTX | OPT_CENTERY);
|
.text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_SCREEN_LOCK), OPT_RIGHTX | OPT_CENTERY);
|
||||||
|
#if DISABLED(TOUCH_UI_NO_BOOTSCREEN)
|
||||||
cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BOOT_SCREEN), OPT_RIGHTX | OPT_CENTERY);
|
cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BOOT_SCREEN), OPT_RIGHTX | OPT_CENTERY);
|
||||||
|
#endif
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,16 +97,18 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) {
|
||||||
.tag(3).slider(BTN_POS(3,3), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF)
|
.tag(3).slider(BTN_POS(3,3), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF)
|
||||||
.colors(ui_toggle)
|
.colors(ui_toggle)
|
||||||
.tag(4).toggle2(BTN_POS(3,4), BTN_SIZE(w,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), LockScreen::is_enabled())
|
.tag(4).toggle2(BTN_POS(3,4), BTN_SIZE(w,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), LockScreen::is_enabled())
|
||||||
|
#if DISABLED(TOUCH_UI_NO_BOOTSCREEN)
|
||||||
.tag(5).toggle2(BTN_POS(3,5), BTN_SIZE(w,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), UIData::animations_enabled())
|
.tag(5).toggle2(BTN_POS(3,5), BTN_SIZE(w,1), GET_TEXT_F(MSG_NO), GET_TEXT_F(MSG_YES), UIData::animations_enabled())
|
||||||
|
#endif
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
#define EDGE_R 0
|
#define EDGE_R 0
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.colors(normal_btn)
|
.colors(normal_btn)
|
||||||
.tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(MSG_INTERFACE_SOUNDS))
|
.tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(MSG_SOUNDS))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
|
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
|
||||||
#else
|
#else
|
||||||
.tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SOUNDS))
|
.tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_SOUNDS))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -71,7 +71,7 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) {
|
||||||
#define GRID_ROWS 9
|
#define GRID_ROWS 9
|
||||||
|
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
.text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(MSG_INTERFACE_SOUNDS))
|
.text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXT_F(MSG_SOUNDS))
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
#define EDGE_R 30
|
#define EDGE_R 30
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
|
|
|
@ -37,81 +37,89 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
||||||
.cmd(CLEAR(true,true,true));
|
.cmd(CLEAR(true,true,true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
|
#define GRID_ROWS 8
|
||||||
|
#define GRID_COLS 2
|
||||||
|
#define ABOUT_PRINTER_POS BTN_POS(1,1), BTN_SIZE(2,1)
|
||||||
|
#define ADVANCED_SETTINGS_POS BTN_POS(1,2), BTN_SIZE(2,1)
|
||||||
|
#define FILAMENTCHANGE_POS BTN_POS(1,3), BTN_SIZE(2,1)
|
||||||
|
#define TEMPERATURE_POS BTN_POS(1,4), BTN_SIZE(2,1)
|
||||||
|
#define MOVE_AXIS_POS BTN_POS(1,5), BTN_SIZE(1,1)
|
||||||
|
#define DISABLE_STEPPERS_POS BTN_POS(2,5), BTN_SIZE(1,1)
|
||||||
|
#define AUTO_HOME_POS BTN_POS(1,6), BTN_SIZE(1,1)
|
||||||
|
#define CLEAN_NOZZLE_POS BTN_POS(2,6), BTN_SIZE(1,1)
|
||||||
|
#define LEVEL_BED_POS BTN_POS(1,7), BTN_SIZE(1,1)
|
||||||
|
#define LEVEL_AXIS_POS BTN_POS(2,7), BTN_SIZE(1,1)
|
||||||
|
#define BACK_POS BTN_POS(1,8), BTN_SIZE(2,1)
|
||||||
|
#else
|
||||||
|
#define GRID_ROWS 6
|
||||||
|
#define GRID_COLS 2
|
||||||
|
#define ADVANCED_SETTINGS_POS BTN_POS(1,1), BTN_SIZE(1,1)
|
||||||
|
#define ABOUT_PRINTER_POS BTN_POS(2,1), BTN_SIZE(1,1)
|
||||||
|
#define AUTO_HOME_POS BTN_POS(1,2), BTN_SIZE(1,1)
|
||||||
|
#define CLEAN_NOZZLE_POS BTN_POS(2,2), BTN_SIZE(1,1)
|
||||||
|
#define MOVE_AXIS_POS BTN_POS(1,3), BTN_SIZE(1,1)
|
||||||
|
#define DISABLE_STEPPERS_POS BTN_POS(2,3), BTN_SIZE(1,1)
|
||||||
|
#define TEMPERATURE_POS BTN_POS(1,4), BTN_SIZE(1,1)
|
||||||
|
#define FILAMENTCHANGE_POS BTN_POS(2,4), BTN_SIZE(1,1)
|
||||||
|
#define LEVEL_BED_POS BTN_POS(1,5), BTN_SIZE(1,1)
|
||||||
|
#define LEVEL_AXIS_POS BTN_POS(2,5), BTN_SIZE(1,1)
|
||||||
|
#define BACK_POS BTN_POS(1,6), BTN_SIZE(2,1)
|
||||||
|
#endif
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.colors(normal_btn)
|
cmd.colors(normal_btn)
|
||||||
.font(Theme::font_medium)
|
.font(Theme::font_medium)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
.tag(2).button( AUTO_HOME_POS, GET_TEXT_F(MSG_AUTO_HOME))
|
||||||
#define GRID_ROWS 8
|
|
||||||
#define GRID_COLS 2
|
|
||||||
.tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_AUTO_HOME))
|
|
||||||
.enabled(
|
.enabled(
|
||||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
#if ANY(NOZZLE_CLEAN_FEATURE, TOUCH_UI_COCOA_PRESS)
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_CLEAN_NOZZLE))
|
.tag(3).button( CLEAN_NOZZLE_POS, GET_TEXT_F(
|
||||||
.tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOVE_AXIS))
|
|
||||||
.tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISABLE_STEPPERS))
|
|
||||||
.tag(6).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_TEMPERATURE))
|
|
||||||
.enabled(
|
|
||||||
#if NONE(TOUCH_UI_LULZBOT_BIO, TOUCH_UI_COCOA_PRESS)
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(7).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_FILAMENTCHANGE))
|
|
||||||
.tag(8).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS))
|
|
||||||
.enabled(
|
|
||||||
#ifdef PRINTCOUNTER
|
|
||||||
1
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.tag(9).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_STATS_MENU))
|
|
||||||
.tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_MENU))
|
|
||||||
.colors(action_btn)
|
|
||||||
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
|
||||||
#undef GRID_COLS
|
|
||||||
#undef GRID_ROWS
|
|
||||||
#else
|
|
||||||
#define GRID_ROWS 5
|
|
||||||
#define GRID_COLS 2
|
|
||||||
.tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_AUTO_HOME))
|
|
||||||
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
||||||
.tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_PREHEAT_1))
|
MSG_PREHEAT_1
|
||||||
#else
|
#else
|
||||||
.enabled(
|
MSG_CLEAN_NOZZLE
|
||||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
|
||||||
1
|
|
||||||
#endif
|
#endif
|
||||||
)
|
))
|
||||||
.tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_CLEAN_NOZZLE))
|
.tag(4).button( MOVE_AXIS_POS, GET_TEXT_F(MSG_MOVE_AXIS))
|
||||||
#endif
|
.tag(5).button( DISABLE_STEPPERS_POS, GET_TEXT_F(MSG_DISABLE_STEPPERS))
|
||||||
.tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_MOVE_AXIS))
|
.tag(6).button( TEMPERATURE_POS, GET_TEXT_F(MSG_TEMPERATURE))
|
||||||
.tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISABLE_STEPPERS))
|
|
||||||
.tag(6).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_TEMPERATURE))
|
|
||||||
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
|
||||||
.tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_CASE_LIGHT))
|
|
||||||
#else
|
|
||||||
.enabled(
|
.enabled(
|
||||||
#if DISABLED(TOUCH_UI_LULZBOT_BIO)
|
#if DISABLED(TOUCH_UI_LULZBOT_BIO)
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENTCHANGE))
|
.tag(7).button( FILAMENTCHANGE_POS, GET_TEXT_F(
|
||||||
|
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
||||||
|
MSG_CASE_LIGHT
|
||||||
|
#else
|
||||||
|
MSG_FILAMENTCHANGE
|
||||||
#endif
|
#endif
|
||||||
.tag(8).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS))
|
))
|
||||||
|
.tag(8).button( ADVANCED_SETTINGS_POS, GET_TEXT_F(MSG_ADVANCED_SETTINGS))
|
||||||
.enabled(
|
.enabled(
|
||||||
#ifdef PRINTCOUNTER
|
#ifdef PRINTCOUNTER
|
||||||
1
|
1
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
.tag(9).button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_INFO_STATS_MENU))
|
.enabled(
|
||||||
.tag(10).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_INFO_MENU))
|
#ifdef AXIS_LEVELING_COMMANDS
|
||||||
.colors(action_btn)
|
1
|
||||||
.tag(1).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACK));
|
|
||||||
#undef GRID_COLS
|
|
||||||
#undef GRID_ROWS
|
|
||||||
#endif
|
#endif
|
||||||
|
)
|
||||||
|
.tag(9).button( LEVEL_AXIS_POS, GET_TEXT_F(MSG_AUTOLEVEL_X_AXIS))
|
||||||
|
.enabled(
|
||||||
|
#ifdef HAS_LEVELING
|
||||||
|
1
|
||||||
|
#endif
|
||||||
|
)
|
||||||
|
.tag(10).button( LEVEL_BED_POS, GET_TEXT_F(MSG_LEVEL_BED))
|
||||||
|
.tag(11).button( ABOUT_PRINTER_POS, GET_TEXT_F(MSG_INFO_MENU))
|
||||||
|
.colors(action_btn)
|
||||||
|
.tag(1).button( BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,23 +130,32 @@ bool MainMenu::onTouchEnd(uint8_t tag) {
|
||||||
case 1: SaveSettingsDialogBox::promptToSaveSettings(); break;
|
case 1: SaveSettingsDialogBox::promptToSaveSettings(); break;
|
||||||
case 2: SpinnerDialogBox::enqueueAndWait_P(F("G28")); break;
|
case 2: SpinnerDialogBox::enqueueAndWait_P(F("G28")); break;
|
||||||
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
||||||
case 3: GOTO_SCREEN(PreheatTimerScreen); break;
|
case 3: GOTO_SCREEN(PreheatMenu); break;
|
||||||
#elif ENABLED(NOZZLE_CLEAN_FEATURE)
|
#elif ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||||
case 3: injectCommands_P(PSTR("G12")); GOTO_SCREEN(StatusScreen); break;
|
case 3: injectCommands_P(PSTR("G12")); GOTO_SCREEN(StatusScreen); break;
|
||||||
#endif
|
#endif
|
||||||
case 4: GOTO_SCREEN(MoveAxisScreen); break;
|
case 4: GOTO_SCREEN(MoveAxisScreen); break;
|
||||||
case 5: injectCommands_P(PSTR("M84")); break;
|
case 5: injectCommands_P(PSTR("M84")); break;
|
||||||
case 6: GOTO_SCREEN(TemperatureScreen); break;
|
case 6: GOTO_SCREEN(TemperatureScreen); break;
|
||||||
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
#if ENABLED(TOUCH_UI_COCOA_PRESS) && HAS_CASE_LIGHT
|
||||||
case 7: GOTO_SCREEN(CaseLightScreen); break;
|
case 7: GOTO_SCREEN(CaseLightScreen); break;
|
||||||
#else
|
#else
|
||||||
case 7: GOTO_SCREEN(ChangeFilamentScreen); break;
|
case 7: GOTO_SCREEN(ChangeFilamentScreen); break;
|
||||||
#endif
|
#endif
|
||||||
case 8: GOTO_SCREEN(AdvancedSettingsMenu); break;
|
case 8: GOTO_SCREEN(AdvancedSettingsMenu); break;
|
||||||
#if ENABLED(PRINTCOUNTER)
|
#ifdef AXIS_LEVELING_COMMANDS
|
||||||
case 9: GOTO_SCREEN(StatisticsScreen); break;
|
case 9: SpinnerDialogBox::enqueueAndWait_P(F(AXIS_LEVELING_COMMANDS)); break;
|
||||||
#endif
|
#endif
|
||||||
case 10: GOTO_SCREEN(AboutScreen); break;
|
#ifdef HAS_LEVELING
|
||||||
|
case 10: SpinnerDialogBox::enqueueAndWait_P(F(
|
||||||
|
#ifdef BED_LEVELING_COMMANDS
|
||||||
|
BED_LEVELING_COMMANDS
|
||||||
|
#else
|
||||||
|
"G29"
|
||||||
|
#endif
|
||||||
|
)); break;
|
||||||
|
#endif
|
||||||
|
case 11: GOTO_SCREEN(AboutScreen); break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
/********************
|
||||||
|
* preheat_menu.cpp *
|
||||||
|
********************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Written By Marcio Teixeira 2020 - Cocoa Press *
|
||||||
|
* *
|
||||||
|
* This program is free software: you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* To view a copy of the GNU General Public License, go to the following *
|
||||||
|
* location: <http://www.gnu.org/licenses/>. *
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "../config.h"
|
||||||
|
|
||||||
|
#if ENABLED(TOUCH_UI_FTDI_EVE) && defined(TOUCH_UI_COCOA_PRESS)
|
||||||
|
|
||||||
|
#include "screens.h"
|
||||||
|
|
||||||
|
using namespace FTDI;
|
||||||
|
using namespace ExtUI;
|
||||||
|
using namespace Theme;
|
||||||
|
|
||||||
|
void PreheatMenu::onRedraw(draw_mode_t what) {
|
||||||
|
if (what & BACKGROUND) {
|
||||||
|
CommandProcessor cmd;
|
||||||
|
cmd.cmd(CLEAR_COLOR_RGB(Theme::bg_color))
|
||||||
|
.cmd(CLEAR(true,true,true))
|
||||||
|
.tag(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define GRID_ROWS 3
|
||||||
|
#define GRID_COLS 2
|
||||||
|
|
||||||
|
if (what & FOREGROUND) {
|
||||||
|
CommandProcessor cmd;
|
||||||
|
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
|
.font(Theme::font_medium)
|
||||||
|
.text ( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXT_F(MSG_PREHEAT_1))
|
||||||
|
.colors(normal_btn)
|
||||||
|
.tag(2).button( BTN_POS(1,2), BTN_SIZE(1,1), F("Dark Chocolate"))
|
||||||
|
.tag(3).button( BTN_POS(2,2), BTN_SIZE(1,1), F("Milk Chocolate"))
|
||||||
|
.tag(4).button( BTN_POS(1,3), BTN_SIZE(1,1), F("White Chocolate"))
|
||||||
|
.colors(action_btn)
|
||||||
|
.tag(1) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACK));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PreheatMenu::onTouchEnd(uint8_t tag) {
|
||||||
|
switch (tag) {
|
||||||
|
case 1: GOTO_PREVIOUS(); break;
|
||||||
|
case 2:
|
||||||
|
#ifdef COCOA_PRESS_PREHEAT_DARK_CHOCOLATE_SCRIPT
|
||||||
|
injectCommands_P(PSTR(COCOA_PRESS_PREHEAT_DARK_CHOCOLATE_SCRIPT));
|
||||||
|
#endif
|
||||||
|
GOTO_SCREEN(PreheatTimerScreen);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
#ifdef COCOA_PRESS_PREHEAT_MILK_CHOCOLATE_SCRIPT
|
||||||
|
injectCommands_P(PSTR(COCOA_PRESS_PREHEAT_MILK_CHOCOLATE_SCRIPT));
|
||||||
|
#endif
|
||||||
|
GOTO_SCREEN(PreheatTimerScreen);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
#ifdef COCOA_PRESS_PREHEAT_WHITE_CHOCOLATE_SCRIPT
|
||||||
|
injectCommands_P(PSTR(COCOA_PRESS_PREHEAT_WHITE_CHOCOLATE_SCRIPT));
|
||||||
|
#endif
|
||||||
|
GOTO_SCREEN(PreheatTimerScreen);
|
||||||
|
break;
|
||||||
|
default: return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // TOUCH_UI_FTDI_EVE
|
|
@ -77,9 +77,6 @@ void PreheatTimerScreen::draw_interaction_buttons(draw_mode_t what) {
|
||||||
|
|
||||||
void PreheatTimerScreen::onEntry() {
|
void PreheatTimerScreen::onEntry() {
|
||||||
screen_data.PreheatTimerScreen.start_ms = millis();
|
screen_data.PreheatTimerScreen.start_ms = millis();
|
||||||
#ifdef COCOA_PRESS_PREHEAT_SCRIPT
|
|
||||||
injectCommands_P(PSTR(COCOA_PRESS_PREHEAT_SCRIPT));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PreheatTimerScreen::onRedraw(draw_mode_t what) {
|
void PreheatTimerScreen::onRedraw(draw_mode_t what) {
|
||||||
|
|
|
@ -105,6 +105,7 @@ SCREEN_TABLE {
|
||||||
DECL_SCREEN(BioConfirmHomeE),
|
DECL_SCREEN(BioConfirmHomeE),
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
||||||
|
DECL_SCREEN(PreheatMenu),
|
||||||
DECL_SCREEN(PreheatTimerScreen),
|
DECL_SCREEN(PreheatTimerScreen),
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(TOUCH_UI_DEVELOPER_MENU)
|
#if ENABLED(TOUCH_UI_DEVELOPER_MENU)
|
||||||
|
|
|
@ -76,6 +76,7 @@ enum {
|
||||||
PRINTING_SCREEN_CACHE,
|
PRINTING_SCREEN_CACHE,
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
||||||
|
PREHEAT_MENU_CACHE,
|
||||||
PREHEAT_TIMER_SCREEN_CACHE,
|
PREHEAT_TIMER_SCREEN_CACHE,
|
||||||
#endif
|
#endif
|
||||||
CHANGE_FILAMENT_SCREEN_CACHE,
|
CHANGE_FILAMENT_SCREEN_CACHE,
|
||||||
|
@ -99,7 +100,7 @@ enum {
|
||||||
|
|
||||||
class BaseScreen : public UIScreen {
|
class BaseScreen : public UIScreen {
|
||||||
protected:
|
protected:
|
||||||
#ifdef LCD_TIMEOUT_TO_STATUS
|
#if LCD_TIMEOUT_TO_STATUS
|
||||||
static uint32_t last_interaction;
|
static uint32_t last_interaction;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -314,6 +315,12 @@ class StatusScreen : public BaseScreen, public CachedScreen<STATUS_SCREEN_CACHE,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
#if ENABLED(TOUCH_UI_COCOA_PRESS)
|
||||||
|
class PreheatMenu : public BaseScreen, public CachedScreen<PREHEAT_MENU_CACHE> {
|
||||||
|
public:
|
||||||
|
static void onRedraw(draw_mode_t);
|
||||||
|
static bool onTouchEnd(uint8_t tag);
|
||||||
|
};
|
||||||
|
|
||||||
class PreheatTimerScreen : public BaseScreen, public CachedScreen<PREHEAT_TIMER_SCREEN_CACHE> {
|
class PreheatTimerScreen : public BaseScreen, public CachedScreen<PREHEAT_TIMER_SCREEN_CACHE> {
|
||||||
private:
|
private:
|
||||||
static uint16_t secondsRemaining();
|
static uint16_t secondsRemaining();
|
||||||
|
|
|
@ -43,41 +43,41 @@ void StatusScreen::draw_axis_position(draw_mode_t what) {
|
||||||
|
|
||||||
#define GRID_COLS 3
|
#define GRID_COLS 3
|
||||||
|
|
||||||
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
|
#define X_LBL_POS BTN_POS(1,5), BTN_SIZE(1,1)
|
||||||
|
#define Y_LBL_POS BTN_POS(1,6), BTN_SIZE(1,1)
|
||||||
|
#define Z_LBL_POS BTN_POS(1,7), BTN_SIZE(1,1)
|
||||||
|
#define X_VAL_POS BTN_POS(2,5), BTN_SIZE(2,1)
|
||||||
|
#define Y_VAL_POS BTN_POS(2,6), BTN_SIZE(2,1)
|
||||||
|
#define Z_VAL_POS BTN_POS(2,7), BTN_SIZE(2,1)
|
||||||
|
#else
|
||||||
|
#define X_LBL_POS BTN_POS(1,5), BTN_SIZE(1,1)
|
||||||
|
#define Y_LBL_POS BTN_POS(2,5), BTN_SIZE(1,1)
|
||||||
|
#define Z_LBL_POS BTN_POS(3,5), BTN_SIZE(1,1)
|
||||||
|
#define X_VAL_POS BTN_POS(1,6), BTN_SIZE(1,1)
|
||||||
|
#define Y_VAL_POS BTN_POS(2,6), BTN_SIZE(1,1)
|
||||||
|
#define Z_VAL_POS BTN_POS(3,6), BTN_SIZE(1,1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define _UNION_POS(x1,y1,w1,h1,x2,y2,w2,h2) x1,y1,max(x1+w1,x2+w2)-x1,max(y1+h1,y2+h2)-y1
|
||||||
|
#define UNION_POS(p1, p2) _UNION_POS(p1, p2)
|
||||||
|
|
||||||
if (what & BACKGROUND) {
|
if (what & BACKGROUND) {
|
||||||
cmd.tag(6)
|
cmd.tag(6)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
|
||||||
.fgcolor(Theme::axis_label)
|
.fgcolor(Theme::axis_label)
|
||||||
.font(Theme::font_large)
|
.font(Theme::font_large)
|
||||||
.button( BTN_POS(1,5), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
.button( UNION_POS(X_LBL_POS, X_VAL_POS), F(""), OPT_FLAT)
|
||||||
.button( BTN_POS(1,6), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
.button( UNION_POS(Y_LBL_POS, Y_VAL_POS), F(""), OPT_FLAT)
|
||||||
.button( BTN_POS(1,7), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
.button( UNION_POS(Z_LBL_POS, Z_VAL_POS), F(""), OPT_FLAT)
|
||||||
|
|
||||||
.font(Theme::font_small)
|
|
||||||
.text ( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_AXIS_X))
|
|
||||||
.text ( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_AXIS_Y))
|
|
||||||
.text ( BTN_POS(1,7), BTN_SIZE(1,1), GET_TEXT_F(MSG_AXIS_Z))
|
|
||||||
|
|
||||||
.font(Theme::font_medium)
|
.font(Theme::font_medium)
|
||||||
.fgcolor(Theme::x_axis) .button( BTN_POS(2,5), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
.fgcolor(Theme::x_axis) .button( X_VAL_POS, F(""), OPT_FLAT)
|
||||||
.fgcolor(Theme::y_axis) .button( BTN_POS(2,6), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
.fgcolor(Theme::y_axis) .button( Y_VAL_POS, F(""), OPT_FLAT)
|
||||||
.fgcolor(Theme::z_axis) .button( BTN_POS(2,7), BTN_SIZE(2,1), F(""), OPT_FLAT);
|
.fgcolor(Theme::z_axis) .button( Z_VAL_POS, F(""), OPT_FLAT)
|
||||||
#else
|
|
||||||
.fgcolor(Theme::axis_label)
|
|
||||||
.font(Theme::font_large)
|
|
||||||
.button( BTN_POS(1,5), BTN_SIZE(1,2), F(""), OPT_FLAT)
|
|
||||||
.button( BTN_POS(2,5), BTN_SIZE(1,2), F(""), OPT_FLAT)
|
|
||||||
.button( BTN_POS(3,5), BTN_SIZE(1,2), F(""), OPT_FLAT)
|
|
||||||
|
|
||||||
.font(Theme::font_small)
|
.font(Theme::font_small)
|
||||||
.text ( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_AXIS_X))
|
.text ( X_LBL_POS, GET_TEXT_F(MSG_AXIS_X))
|
||||||
.text ( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_AXIS_Y))
|
.text ( Y_LBL_POS, GET_TEXT_F(MSG_AXIS_Y))
|
||||||
.text ( BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_AXIS_Z))
|
.text ( Z_LBL_POS, GET_TEXT_F(MSG_AXIS_Z))
|
||||||
.font(Theme::font_medium)
|
.colors(normal_btn);
|
||||||
|
|
||||||
.fgcolor(Theme::x_axis) .button( BTN_POS(1,6), BTN_SIZE(1,1), F(""), OPT_FLAT)
|
|
||||||
.fgcolor(Theme::y_axis) .button( BTN_POS(2,6), BTN_SIZE(1,1), F(""), OPT_FLAT)
|
|
||||||
.fgcolor(Theme::z_axis) .button( BTN_POS(3,6), BTN_SIZE(1,1), F(""), OPT_FLAT);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
|
@ -101,16 +101,11 @@ void StatusScreen::draw_axis_position(draw_mode_t what) {
|
||||||
else
|
else
|
||||||
strcpy_P(z_str, PSTR("?"));
|
strcpy_P(z_str, PSTR("?"));
|
||||||
|
|
||||||
cmd.tag(6).font(Theme::font_medium)
|
cmd.tag(6)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
.font(Theme::font_medium)
|
||||||
.text ( BTN_POS(2,5), BTN_SIZE(2,1), x_str)
|
.text ( X_VAL_POS, x_str)
|
||||||
.text ( BTN_POS(2,6), BTN_SIZE(2,1), y_str)
|
.text ( Y_VAL_POS, y_str)
|
||||||
.text ( BTN_POS(2,7), BTN_SIZE(2,1), z_str);
|
.text ( Z_VAL_POS, z_str);
|
||||||
#else
|
|
||||||
.text ( BTN_POS(1,6), BTN_SIZE(1,1), x_str)
|
|
||||||
.text ( BTN_POS(2,6), BTN_SIZE(1,1), y_str)
|
|
||||||
.text ( BTN_POS(3,6), BTN_SIZE(1,1), z_str);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
|
@ -125,27 +120,27 @@ void StatusScreen::draw_axis_position(draw_mode_t what) {
|
||||||
void StatusScreen::draw_temperature(draw_mode_t what) {
|
void StatusScreen::draw_temperature(draw_mode_t what) {
|
||||||
using namespace Theme;
|
using namespace Theme;
|
||||||
|
|
||||||
|
#define TEMP_RECT_1 BTN_POS(1,1), BTN_SIZE(4,2)
|
||||||
|
#define TEMP_RECT_2 BTN_POS(1,1), BTN_SIZE(8,1)
|
||||||
|
#define NOZ_1_POS BTN_POS(1,1), BTN_SIZE(4,1)
|
||||||
|
#define NOZ_2_POS BTN_POS(5,1), BTN_SIZE(4,1)
|
||||||
|
#define BED_POS BTN_POS(1,2), BTN_SIZE(4,1)
|
||||||
|
#define FAN_POS BTN_POS(5,2), BTN_SIZE(4,1)
|
||||||
|
|
||||||
|
#define _ICON_POS(x,y,w,h) x, y, w/4, h
|
||||||
|
#define _TEXT_POS(x,y,w,h) x + w/4, y, w - w/4, h
|
||||||
|
#define ICON_POS(pos) _ICON_POS(pos)
|
||||||
|
#define TEXT_POS(pos) _TEXT_POS(pos)
|
||||||
|
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
|
|
||||||
if (what & BACKGROUND) {
|
if (what & BACKGROUND) {
|
||||||
cmd.font(Theme::font_small)
|
cmd.font(Theme::font_small)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
|
||||||
.tag(5)
|
.tag(5)
|
||||||
.fgcolor(temp) .button( BTN_POS(1,1), BTN_SIZE(4,2), F(""), OPT_FLAT)
|
.fgcolor(temp) .button( TEMP_RECT_1, F(""), OPT_FLAT)
|
||||||
.button( BTN_POS(1,1), BTN_SIZE(8,1), F(""), OPT_FLAT)
|
.button( TEMP_RECT_2, F(""), OPT_FLAT)
|
||||||
.fgcolor(fan_speed) .button( BTN_POS(5,2), BTN_SIZE(4,1), F(""), OPT_FLAT)
|
.fgcolor(fan_speed).button( FAN_POS, F(""), OPT_FLAT)
|
||||||
.tag(0)
|
.tag(0);
|
||||||
.fgcolor(progress) .button( BTN_POS(1,3), BTN_SIZE(4,1), F(""), OPT_FLAT)
|
|
||||||
.button( BTN_POS(5,3), BTN_SIZE(4,1), F(""), OPT_FLAT);
|
|
||||||
#else
|
|
||||||
.tag(5)
|
|
||||||
.fgcolor(temp) .button( BTN_POS(1,1), BTN_SIZE(4,2), F(""), OPT_FLAT)
|
|
||||||
.button( BTN_POS(1,1), BTN_SIZE(8,1), F(""), OPT_FLAT)
|
|
||||||
.fgcolor(fan_speed) .button( BTN_POS(5,2), BTN_SIZE(4,1), F(""), OPT_FLAT)
|
|
||||||
.tag(0)
|
|
||||||
.fgcolor(progress) .button( BTN_POS(9,1), BTN_SIZE(4,1), F(""), OPT_FLAT)
|
|
||||||
.button( BTN_POS(9,2), BTN_SIZE(4,1), F(""), OPT_FLAT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Draw Extruder Bitmap on Extruder Temperature Button
|
// Draw Extruder Bitmap on Extruder Temperature Button
|
||||||
|
|
||||||
|
@ -153,21 +148,21 @@ void StatusScreen::draw_temperature(draw_mode_t what) {
|
||||||
.cmd (BITMAP_SOURCE(Extruder_Icon_Info))
|
.cmd (BITMAP_SOURCE(Extruder_Icon_Info))
|
||||||
.cmd (BITMAP_LAYOUT(Extruder_Icon_Info))
|
.cmd (BITMAP_LAYOUT(Extruder_Icon_Info))
|
||||||
.cmd (BITMAP_SIZE (Extruder_Icon_Info))
|
.cmd (BITMAP_SIZE (Extruder_Icon_Info))
|
||||||
.icon (BTN_POS(1,1), BTN_SIZE(1,1), Extruder_Icon_Info, icon_scale)
|
.icon(ICON_POS(NOZ_1_POS), Extruder_Icon_Info, icon_scale)
|
||||||
.icon (BTN_POS(5,1), BTN_SIZE(1,1), Extruder_Icon_Info, icon_scale);
|
.icon(ICON_POS(NOZ_2_POS), Extruder_Icon_Info, icon_scale);
|
||||||
|
|
||||||
// Draw Bed Heat Bitmap on Bed Heat Button
|
// Draw Bed Heat Bitmap on Bed Heat Button
|
||||||
cmd.cmd (BITMAP_SOURCE(Bed_Heat_Icon_Info))
|
cmd.cmd (BITMAP_SOURCE(Bed_Heat_Icon_Info))
|
||||||
.cmd (BITMAP_LAYOUT(Bed_Heat_Icon_Info))
|
.cmd (BITMAP_LAYOUT(Bed_Heat_Icon_Info))
|
||||||
.cmd (BITMAP_SIZE (Bed_Heat_Icon_Info))
|
.cmd (BITMAP_SIZE (Bed_Heat_Icon_Info))
|
||||||
.icon (BTN_POS(1,2), BTN_SIZE(1,1), Bed_Heat_Icon_Info, icon_scale);
|
.icon(ICON_POS(BED_POS), Bed_Heat_Icon_Info, icon_scale);
|
||||||
|
|
||||||
// Draw Fan Percent Bitmap on Bed Heat Button
|
// Draw Fan Percent Bitmap on Bed Heat Button
|
||||||
|
|
||||||
cmd.cmd (BITMAP_SOURCE(Fan_Icon_Info))
|
cmd.cmd (BITMAP_SOURCE(Fan_Icon_Info))
|
||||||
.cmd (BITMAP_LAYOUT(Fan_Icon_Info))
|
.cmd (BITMAP_LAYOUT(Fan_Icon_Info))
|
||||||
.cmd (BITMAP_SIZE (Fan_Icon_Info))
|
.cmd (BITMAP_SIZE (Fan_Icon_Info))
|
||||||
.icon (BTN_POS(5,2), BTN_SIZE(1,1), Fan_Icon_Info, icon_scale);
|
.icon(ICON_POS(FAN_POS), Fan_Icon_Info, icon_scale);
|
||||||
|
|
||||||
#ifdef TOUCH_UI_USE_UTF8
|
#ifdef TOUCH_UI_USE_UTF8
|
||||||
load_utf8_bitmaps(cmd); // Restore font bitmap handles
|
load_utf8_bitmaps(cmd); // Restore font bitmap handles
|
||||||
|
@ -212,10 +207,10 @@ void StatusScreen::draw_temperature(draw_mode_t what) {
|
||||||
|
|
||||||
cmd.tag(5)
|
cmd.tag(5)
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
.text(BTN_POS(2,1), BTN_SIZE(3,1), e0_str)
|
.text(TEXT_POS(NOZ_1_POS), e0_str)
|
||||||
.text(BTN_POS(6,1), BTN_SIZE(3,1), e1_str)
|
.text(TEXT_POS(NOZ_2_POS), e1_str)
|
||||||
.text(BTN_POS(2,2), BTN_SIZE(3,1), bed_str)
|
.text(TEXT_POS(BED_POS), bed_str)
|
||||||
.text(BTN_POS(6,2), BTN_SIZE(3,1), fan_str);
|
.text(TEXT_POS(FAN_POS), fan_str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,15 +220,18 @@ void StatusScreen::draw_progress(draw_mode_t what) {
|
||||||
|
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
|
|
||||||
|
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||||
|
#define TIME_POS BTN_POS(1,3), BTN_SIZE(4,1)
|
||||||
|
#define PROGRESS_POS BTN_POS(5,3), BTN_SIZE(4,1)
|
||||||
|
#else
|
||||||
|
#define TIME_POS BTN_POS(9,1), BTN_SIZE(4,1)
|
||||||
|
#define PROGRESS_POS BTN_POS(9,2), BTN_SIZE(4,1)
|
||||||
|
#endif
|
||||||
|
|
||||||
if (what & BACKGROUND) {
|
if (what & BACKGROUND) {
|
||||||
cmd.tag(0).font(font_medium)
|
cmd.tag(0).font(font_medium)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
.fgcolor(progress).button(TIME_POS, F(""), OPT_FLAT)
|
||||||
.fgcolor(progress) .button(BTN_POS(1,3), BTN_SIZE(4,1), F(""), OPT_FLAT)
|
.button(PROGRESS_POS, F(""), OPT_FLAT);
|
||||||
.button(BTN_POS(5,3), BTN_SIZE(4,1), F(""), OPT_FLAT);
|
|
||||||
#else
|
|
||||||
.fgcolor(progress) .button(BTN_POS(9,1), BTN_SIZE(4,1), F(""), OPT_FLAT)
|
|
||||||
.button(BTN_POS(9,2), BTN_SIZE(4,1), F(""), OPT_FLAT);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
|
@ -248,13 +246,8 @@ void StatusScreen::draw_progress(draw_mode_t what) {
|
||||||
sprintf_P(progress_str, PSTR("%-3d %%"), getProgress_percent() );
|
sprintf_P(progress_str, PSTR("%-3d %%"), getProgress_percent() );
|
||||||
|
|
||||||
cmd.font(font_medium)
|
cmd.font(font_medium)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
.tag(0).text(TIME_POS, time_str)
|
||||||
.tag(0).text(BTN_POS(1,3), BTN_SIZE(4,1), time_str)
|
.text(PROGRESS_POS, progress_str);
|
||||||
.text(BTN_POS(5,3), BTN_SIZE(4,1), progress_str);
|
|
||||||
#else
|
|
||||||
.tag(0).text(BTN_POS(9,1), BTN_SIZE(4,1), time_str)
|
|
||||||
.text(BTN_POS(9,2), BTN_SIZE(4,1), progress_str);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,6 +259,14 @@ void StatusScreen::draw_interaction_buttons(draw_mode_t what) {
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
using namespace ExtUI;
|
using namespace ExtUI;
|
||||||
|
|
||||||
|
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||||
|
#define MEDIA_BTN_POS BTN_POS(1,8), BTN_SIZE(2,1)
|
||||||
|
#define MENU_BTN_POS BTN_POS(3,8), BTN_SIZE(2,1)
|
||||||
|
#else
|
||||||
|
#define MEDIA_BTN_POS BTN_POS(1,7), BTN_SIZE(2,2)
|
||||||
|
#define MENU_BTN_POS BTN_POS(3,7), BTN_SIZE(2,2)
|
||||||
|
#endif
|
||||||
|
|
||||||
const bool has_media = isMediaInserted() && !isPrintingFromMedia();
|
const bool has_media = isMediaInserted() && !isPrintingFromMedia();
|
||||||
|
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
|
@ -273,42 +274,29 @@ void StatusScreen::draw_interaction_buttons(draw_mode_t what) {
|
||||||
.font(Theme::font_medium)
|
.font(Theme::font_medium)
|
||||||
.enabled(has_media)
|
.enabled(has_media)
|
||||||
.colors(has_media ? action_btn : normal_btn)
|
.colors(has_media ? action_btn : normal_btn)
|
||||||
.tag(3).button(
|
.tag(3).button(MEDIA_BTN_POS, isPrintingFromMedia() ? GET_TEXT_F(MSG_PRINTING) : GET_TEXT_F(MSG_BUTTON_MEDIA))
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
.colors(!has_media ? action_btn : normal_btn)
|
||||||
BTN_POS(1,8), BTN_SIZE(2,1),
|
.tag(4).button( MENU_BTN_POS, GET_TEXT_F(MSG_BUTTON_MENU));
|
||||||
#else
|
|
||||||
BTN_POS(1,7), BTN_SIZE(2,2),
|
|
||||||
#endif
|
|
||||||
isPrintingFromMedia() ? GET_TEXT_F(MSG_PRINTING) : GET_TEXT_F(MSG_BUTTON_MEDIA)
|
|
||||||
).colors(!has_media ? action_btn : normal_btn)
|
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
|
||||||
.tag(4).button( BTN_POS(3,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_MENU));
|
|
||||||
#else
|
|
||||||
.tag(4).button( BTN_POS(3,7), BTN_SIZE(2,2), GET_TEXT_F(MSG_BUTTON_MENU));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatusScreen::draw_status_message(draw_mode_t what, const char* message) {
|
void StatusScreen::draw_status_message(draw_mode_t what, const char* message) {
|
||||||
#define GRID_COLS 1
|
#define GRID_COLS 1
|
||||||
|
|
||||||
|
#if ENABLED(TOUCH_UI_PORTRAIT)
|
||||||
|
#define STATUS_POS BTN_POS(1,4), BTN_SIZE(1,1)
|
||||||
|
#else
|
||||||
|
#define STATUS_POS BTN_POS(1,3), BTN_SIZE(1,2)
|
||||||
|
#endif
|
||||||
|
|
||||||
if (what & BACKGROUND) {
|
if (what & BACKGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.fgcolor(Theme::status_msg)
|
cmd.fgcolor(Theme::status_msg)
|
||||||
.tag(0)
|
.tag(0)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
.button( STATUS_POS, F(""), OPT_FLAT);
|
||||||
.button( BTN_POS(1,4), BTN_SIZE(1,1), F(""), OPT_FLAT);
|
|
||||||
#else
|
|
||||||
.button( BTN_POS(1,3), BTN_SIZE(1,2), F(""), OPT_FLAT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
draw_text_box(cmd,
|
draw_text_box(cmd, STATUS_POS, message, OPT_CENTER, font_large);
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
|
||||||
BTN_POS(1,4), BTN_SIZE(1,1),
|
|
||||||
#else
|
|
||||||
BTN_POS(1,3), BTN_SIZE(1,2),
|
|
||||||
#endif
|
|
||||||
message, OPT_CENTER, font_large);
|
|
||||||
}
|
}
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
}
|
}
|
||||||
|
@ -326,10 +314,10 @@ void StatusScreen::setStatusMessage(const char* message) {
|
||||||
.cmd(CLEAR(true,true,true));
|
.cmd(CLEAR(true,true,true));
|
||||||
|
|
||||||
draw_temperature(BACKGROUND);
|
draw_temperature(BACKGROUND);
|
||||||
draw_progress(BACKGROUND);
|
|
||||||
draw_axis_position(BACKGROUND);
|
|
||||||
draw_status_message(BACKGROUND, message);
|
draw_status_message(BACKGROUND, message);
|
||||||
draw_interaction_buttons(BACKGROUND);
|
draw_interaction_buttons(BACKGROUND);
|
||||||
|
draw_progress(BACKGROUND);
|
||||||
|
draw_axis_position(BACKGROUND);
|
||||||
|
|
||||||
storeBackground();
|
storeBackground();
|
||||||
|
|
||||||
|
|
|
@ -24,31 +24,10 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
namespace Theme {
|
namespace Theme {
|
||||||
#ifdef TOUCH_UI_LULZBOT_BIO
|
#if ENABLED(TOUCH_UI_COCOA_THEME)
|
||||||
// The Lulzbot Bio uses the color PANTONE 2175C on the case silkscreen.
|
constexpr int accent_hue = 23;
|
||||||
// This translates to HSL(208°, 100%, 39%) as an accent color on the GUI.
|
|
||||||
|
|
||||||
constexpr int accent_hue = 208;
|
// Browns and Oranges
|
||||||
constexpr float accent_sat = 0.5;
|
|
||||||
|
|
||||||
constexpr uint32_t logo_bg_rgb = 0xffffff;
|
|
||||||
constexpr uint32_t logo_fill_rgb = 0xffffff;
|
|
||||||
constexpr uint32_t logo_stroke_rgb = hsl_to_rgb(accent_hue, 1.0, 0.39);
|
|
||||||
#else
|
|
||||||
// The Lulzbot logo uses the color PANTONE 382c.
|
|
||||||
// This translates to HSL(68°, 68%, 52%) as an accent color on the GUI.
|
|
||||||
|
|
||||||
constexpr int accent_hue = 68;
|
|
||||||
constexpr float accent_sat = 0.68;
|
|
||||||
|
|
||||||
constexpr uint32_t logo_bg_rgb = hsl_to_rgb(accent_hue, 0.77, 0.64);
|
|
||||||
constexpr uint32_t logo_fill_rgb = hsl_to_rgb(accent_hue, 0.68, 0.52); // Lulzbot Green
|
|
||||||
constexpr uint32_t logo_stroke_rgb = 0x000000;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Shades of accent color
|
|
||||||
|
|
||||||
#ifdef TOUCH_UI_COCOA_PRESS
|
|
||||||
constexpr uint32_t accent_color_1 = hsl_to_rgb(12.8,0.597,0.263); // Darkest
|
constexpr uint32_t accent_color_1 = hsl_to_rgb(12.8,0.597,0.263); // Darkest
|
||||||
constexpr uint32_t accent_color_2 = hsl_to_rgb(12.8,0.597,0.263);
|
constexpr uint32_t accent_color_2 = hsl_to_rgb(12.8,0.597,0.263);
|
||||||
constexpr uint32_t accent_color_3 = hsl_to_rgb( 9.6,0.664,0.443);
|
constexpr uint32_t accent_color_3 = hsl_to_rgb( 9.6,0.664,0.443);
|
||||||
|
@ -56,7 +35,21 @@ namespace Theme {
|
||||||
constexpr uint32_t accent_color_5 = hsl_to_rgb(23.0,0.889,0.539);
|
constexpr uint32_t accent_color_5 = hsl_to_rgb(23.0,0.889,0.539);
|
||||||
constexpr uint32_t accent_color_6 = hsl_to_rgb(23.0,0.889,0.539); // Lightest
|
constexpr uint32_t accent_color_6 = hsl_to_rgb(23.0,0.889,0.539); // Lightest
|
||||||
#else
|
#else
|
||||||
constexpr uint32_t accent_color_1 = hsl_to_rgb(accent_hue, accent_sat, 0.26); // Darkest
|
// Use linear accent colors
|
||||||
|
|
||||||
|
#if ANY(TOUCH_UI_ROYAL_THEME, TOUCH_UI_FROZEN_THEME)
|
||||||
|
// Dark blue accent colors
|
||||||
|
constexpr int accent_hue = 216;
|
||||||
|
constexpr float accent_sat = 0.7;
|
||||||
|
#else
|
||||||
|
// Green accent colors
|
||||||
|
constexpr int accent_hue = 68;
|
||||||
|
constexpr float accent_sat = 0.68;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Shades of accent color
|
||||||
|
constexpr uint32_t accent_color_0 = hsl_to_rgb(accent_hue, accent_sat, 0.15); // Darkest
|
||||||
|
constexpr uint32_t accent_color_1 = hsl_to_rgb(accent_hue, accent_sat, 0.26);
|
||||||
constexpr uint32_t accent_color_2 = hsl_to_rgb(accent_hue, accent_sat, 0.39);
|
constexpr uint32_t accent_color_2 = hsl_to_rgb(accent_hue, accent_sat, 0.39);
|
||||||
constexpr uint32_t accent_color_3 = hsl_to_rgb(accent_hue, accent_sat, 0.52);
|
constexpr uint32_t accent_color_3 = hsl_to_rgb(accent_hue, accent_sat, 0.52);
|
||||||
constexpr uint32_t accent_color_4 = hsl_to_rgb(accent_hue, accent_sat, 0.65);
|
constexpr uint32_t accent_color_4 = hsl_to_rgb(accent_hue, accent_sat, 0.65);
|
||||||
|
@ -67,60 +60,95 @@ namespace Theme {
|
||||||
// Shades of gray
|
// Shades of gray
|
||||||
|
|
||||||
constexpr float gray_sat = 0.14;
|
constexpr float gray_sat = 0.14;
|
||||||
|
constexpr uint32_t gray_color_0 = hsl_to_rgb(accent_hue, gray_sat, 0.15); // Darkest
|
||||||
constexpr uint32_t gray_color_1 = hsl_to_rgb(accent_hue, gray_sat, 0.26); // Darkest
|
constexpr uint32_t gray_color_1 = hsl_to_rgb(accent_hue, gray_sat, 0.26);
|
||||||
constexpr uint32_t gray_color_2 = hsl_to_rgb(accent_hue, gray_sat, 0.39);
|
constexpr uint32_t gray_color_2 = hsl_to_rgb(accent_hue, gray_sat, 0.39);
|
||||||
constexpr uint32_t gray_color_3 = hsl_to_rgb(accent_hue, gray_sat, 0.52);
|
constexpr uint32_t gray_color_3 = hsl_to_rgb(accent_hue, gray_sat, 0.52);
|
||||||
constexpr uint32_t gray_color_4 = hsl_to_rgb(accent_hue, gray_sat, 0.65);
|
constexpr uint32_t gray_color_4 = hsl_to_rgb(accent_hue, gray_sat, 0.65);
|
||||||
constexpr uint32_t gray_color_5 = hsl_to_rgb(accent_hue, gray_sat, 0.78);
|
constexpr uint32_t gray_color_5 = hsl_to_rgb(accent_hue, gray_sat, 0.78);
|
||||||
constexpr uint32_t gray_color_6 = hsl_to_rgb(accent_hue, gray_sat, 0.91); // Lightest
|
constexpr uint32_t gray_color_6 = hsl_to_rgb(accent_hue, gray_sat, 0.91); // Lightest
|
||||||
|
|
||||||
#if NONE(TOUCH_UI_LULZBOT_BIO, TOUCH_UI_COCOA_PRESS)
|
#if ENABLED(TOUCH_UI_ROYAL_THEME)
|
||||||
// Lulzbot TAZ Pro
|
constexpr uint32_t theme_darkest = accent_color_1;
|
||||||
constexpr uint32_t theme_darkest = gray_color_1;
|
constexpr uint32_t theme_dark = accent_color_4;
|
||||||
constexpr uint32_t theme_dark = gray_color_2;
|
|
||||||
|
|
||||||
constexpr uint32_t bg_color = theme_darkest;
|
constexpr uint32_t bg_color = gray_color_0;
|
||||||
constexpr uint32_t bg_text_disabled = theme_dark;
|
constexpr uint32_t axis_label = gray_color_1;
|
||||||
constexpr uint32_t bg_text_enabled = 0xFFFFFF;
|
|
||||||
constexpr uint32_t bg_normal = theme_darkest;
|
|
||||||
|
|
||||||
constexpr uint32_t fg_normal = theme_dark;
|
constexpr uint32_t bg_text_enabled = accent_color_6;
|
||||||
constexpr uint32_t fg_action = accent_color_2;
|
constexpr uint32_t bg_text_disabled = gray_color_0;
|
||||||
constexpr uint32_t fg_disabled = theme_darkest;
|
constexpr uint32_t bg_normal = accent_color_4;
|
||||||
#else
|
constexpr uint32_t fg_disabled = gray_color_0;
|
||||||
// Lulzbot Bio
|
constexpr uint32_t fg_normal = accent_color_0;
|
||||||
|
constexpr uint32_t fg_action = accent_color_1;
|
||||||
|
|
||||||
|
constexpr uint32_t logo_bg_rgb = accent_color_1;
|
||||||
|
constexpr uint32_t logo_fill_rgb = accent_color_0;
|
||||||
|
constexpr uint32_t logo_stroke_rgb = accent_color_4;
|
||||||
|
#elif ANY(TOUCH_UI_COCOA_THEME, TOUCH_UI_FROZEN_THEME)
|
||||||
constexpr uint32_t theme_darkest = accent_color_1;
|
constexpr uint32_t theme_darkest = accent_color_1;
|
||||||
constexpr uint32_t theme_dark = accent_color_4;
|
constexpr uint32_t theme_dark = accent_color_4;
|
||||||
|
|
||||||
constexpr uint32_t bg_color = 0xFFFFFF;
|
constexpr uint32_t bg_color = 0xFFFFFF;
|
||||||
constexpr uint32_t bg_text_disabled = gray_color_1;
|
constexpr uint32_t axis_label = gray_color_5;
|
||||||
constexpr uint32_t bg_text_enabled = accent_color_1;
|
|
||||||
constexpr uint32_t bg_normal = accent_color_4;
|
|
||||||
|
|
||||||
|
constexpr uint32_t bg_text_enabled = accent_color_1;
|
||||||
|
constexpr uint32_t bg_text_disabled = gray_color_1;
|
||||||
|
constexpr uint32_t bg_normal = accent_color_4;
|
||||||
|
constexpr uint32_t fg_disabled = gray_color_6;
|
||||||
constexpr uint32_t fg_normal = accent_color_1;
|
constexpr uint32_t fg_normal = accent_color_1;
|
||||||
constexpr uint32_t fg_action = accent_color_4;
|
constexpr uint32_t fg_action = accent_color_4;
|
||||||
constexpr uint32_t fg_disabled = gray_color_6;
|
|
||||||
|
constexpr uint32_t logo_bg_rgb = accent_color_5;
|
||||||
|
constexpr uint32_t logo_fill_rgb = accent_color_6;
|
||||||
|
constexpr uint32_t logo_stroke_rgb = accent_color_2;
|
||||||
|
#else
|
||||||
|
constexpr uint32_t theme_darkest = gray_color_1;
|
||||||
|
constexpr uint32_t theme_dark = gray_color_2;
|
||||||
|
|
||||||
|
constexpr uint32_t bg_color = gray_color_1;
|
||||||
|
constexpr uint32_t axis_label = gray_color_2;
|
||||||
|
|
||||||
|
constexpr uint32_t bg_text_enabled = 0xFFFFFF;
|
||||||
|
constexpr uint32_t bg_text_disabled = gray_color_2;
|
||||||
|
constexpr uint32_t bg_normal = gray_color_1;
|
||||||
|
constexpr uint32_t fg_disabled = gray_color_1;
|
||||||
|
constexpr uint32_t fg_normal = gray_color_2;
|
||||||
|
constexpr uint32_t fg_action = accent_color_2;
|
||||||
|
|
||||||
|
constexpr uint32_t logo_bg_rgb = accent_color_4;
|
||||||
|
constexpr uint32_t logo_fill_rgb = accent_color_3;
|
||||||
|
constexpr uint32_t logo_stroke_rgb = 0x000000;
|
||||||
|
#endif
|
||||||
|
|
||||||
constexpr uint32_t shadow_rgb = gray_color_6;
|
constexpr uint32_t shadow_rgb = gray_color_6;
|
||||||
constexpr uint32_t stroke_rgb = accent_color_1;
|
constexpr uint32_t stroke_rgb = accent_color_1;
|
||||||
constexpr uint32_t fill_rgb = accent_color_3;
|
constexpr uint32_t fill_rgb = accent_color_3;
|
||||||
constexpr uint32_t syringe_rgb = accent_color_5;
|
constexpr uint32_t syringe_rgb = accent_color_5;
|
||||||
#endif
|
|
||||||
|
|
||||||
constexpr uint32_t x_axis = 0xFF0000;
|
#if ENABLED(TOUCH_UI_ROYAL_THEME)
|
||||||
constexpr uint32_t y_axis = 0x00BB00;
|
constexpr uint32_t x_axis = hsl_to_rgb(0, 1.00, 0.26);
|
||||||
constexpr uint32_t z_axis = 0x0000BF;
|
constexpr uint32_t y_axis = hsl_to_rgb(120, 1.00, 0.13);
|
||||||
constexpr uint32_t e_axis = gray_color_2;
|
constexpr uint32_t z_axis = hsl_to_rgb(240, 1.00, 0.10);
|
||||||
constexpr uint32_t feedrate = gray_color_2;
|
#else
|
||||||
constexpr uint32_t other = gray_color_2;
|
constexpr uint32_t x_axis = hsl_to_rgb(0, 1.00, 0.5);
|
||||||
|
constexpr uint32_t y_axis = hsl_to_rgb(120, 1.00, 0.37);
|
||||||
|
constexpr uint32_t z_axis = hsl_to_rgb(240, 1.00, 0.37);
|
||||||
|
#endif
|
||||||
|
constexpr uint32_t e_axis = axis_label;
|
||||||
|
constexpr uint32_t feedrate = axis_label;
|
||||||
|
constexpr uint32_t other = axis_label;
|
||||||
|
|
||||||
// Status screen
|
// Status screen
|
||||||
constexpr uint32_t progress = gray_color_2;
|
constexpr uint32_t progress = axis_label;
|
||||||
constexpr uint32_t status_msg = gray_color_2;
|
constexpr uint32_t status_msg = axis_label;
|
||||||
constexpr uint32_t fan_speed = 0x377198;
|
#if ENABLED(TOUCH_UI_ROYAL_THEME)
|
||||||
constexpr uint32_t temp = 0x892c78;
|
constexpr uint32_t fan_speed = hsl_to_rgb(240, 0.5, 0.13);
|
||||||
constexpr uint32_t axis_label = gray_color_2;
|
constexpr uint32_t temp = hsl_to_rgb(343, 1.0, 0.23);
|
||||||
|
#else
|
||||||
|
constexpr uint32_t fan_speed = hsl_to_rgb(204, 0.47, 0.41);
|
||||||
|
constexpr uint32_t temp = hsl_to_rgb(311, 0.51, 0.35);
|
||||||
|
#endif
|
||||||
|
|
||||||
constexpr uint32_t disabled_icon = gray_color_1;
|
constexpr uint32_t disabled_icon = gray_color_1;
|
||||||
|
|
||||||
|
|
|
@ -35,5 +35,5 @@ const PROGMEM uint16_t logo_stroke[] = {0xADF3, 0x546C, 0x419D, 0x546F, 0x3D05,
|
||||||
|
|
||||||
#define LOGO_BACKGROUND logo_bg_rgb
|
#define LOGO_BACKGROUND logo_bg_rgb
|
||||||
#define LOGO_PAINT_PATHS \
|
#define LOGO_PAINT_PATHS \
|
||||||
LOGO_PAINT_PATH(logo_stroke_rgb, logo_stroke) \
|
LOGO_PAINT_PATH(logo_fill_rgb, logo_fill) \
|
||||||
LOGO_PAINT_PATH(logo_fill_rgb, logo_fill)
|
LOGO_PAINT_PATH(logo_stroke_rgb, logo_stroke)
|
||||||
|
|
|
@ -35,5 +35,5 @@ const PROGMEM uint16_t logo_stroke[] = {0x3C19, 0x70C5, 0x371A, 0x7159, 0x3302,
|
||||||
|
|
||||||
#define LOGO_BACKGROUND logo_bg_rgb
|
#define LOGO_BACKGROUND logo_bg_rgb
|
||||||
#define LOGO_PAINT_PATHS \
|
#define LOGO_PAINT_PATHS \
|
||||||
LOGO_PAINT_PATH(logo_stroke_rgb, logo_stroke) \
|
LOGO_PAINT_PATH(logo_fill_rgb, logo_fill) \
|
||||||
LOGO_PAINT_PATH(logo_fill_rgb, logo_fill)
|
LOGO_PAINT_PATH(logo_stroke_rgb, logo_stroke)
|
||||||
|
|
|
@ -341,10 +341,10 @@ namespace ExtUI {
|
||||||
void onConfigurationStoreWritten(bool success);
|
void onConfigurationStoreWritten(bool success);
|
||||||
void onConfigurationStoreRead(bool success);
|
void onConfigurationStoreRead(bool success);
|
||||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||||
void OnPowerLossResume();
|
void onPowerLossResume();
|
||||||
#endif
|
#endif
|
||||||
#if HAS_PID_HEATING
|
#if HAS_PID_HEATING
|
||||||
void OnPidTuning(const result_t rst);
|
void onPidTuning(const result_t rst);
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ namespace ExtUI {
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||||
void OnPowerLossResume() {
|
void onPowerLossResume() {
|
||||||
// Called on resume from power-loss
|
// Called on resume from power-loss
|
||||||
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_POWER_LOSS);
|
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_POWER_LOSS);
|
||||||
}
|
}
|
||||||
|
@ -131,9 +131,9 @@ namespace ExtUI {
|
||||||
|
|
||||||
|
|
||||||
#if HAS_PID_HEATING
|
#if HAS_PID_HEATING
|
||||||
void OnPidTuning(const result_t rst) {
|
void onPidTuning(const result_t rst) {
|
||||||
// Called for temperature PID tuning result
|
// Called for temperature PID tuning result
|
||||||
SERIAL_ECHOLNPAIR("OnPidTuning:",rst);
|
SERIAL_ECHOLNPAIR("onPidTuning:",rst);
|
||||||
switch(rst) {
|
switch(rst) {
|
||||||
case PID_BAD_EXTRUDER_NUM:
|
case PID_BAD_EXTRUDER_NUM:
|
||||||
ScreenHandler.setstatusmessagePGM(PSTR(STR_PID_BAD_EXTRUDER_NUM));
|
ScreenHandler.setstatusmessagePGM(PSTR(STR_PID_BAD_EXTRUDER_NUM));
|
||||||
|
|
|
@ -94,13 +94,13 @@ namespace ExtUI {
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||||
void OnPowerLossResume() {
|
void onPowerLossResume() {
|
||||||
// Called on resume from power-loss
|
// Called on resume from power-loss
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_PID_HEATING
|
#if HAS_PID_HEATING
|
||||||
void OnPidTuning(const result_t rst) {
|
void onPidTuning(const result_t rst) {
|
||||||
// Called for temperature PID tuning result
|
// Called for temperature PID tuning result
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -483,7 +483,7 @@ namespace ExtUI {
|
||||||
void onLoadSettings(const char*) {}
|
void onLoadSettings(const char*) {}
|
||||||
void onConfigurationStoreWritten(bool) {}
|
void onConfigurationStoreWritten(bool) {}
|
||||||
void onConfigurationStoreRead(bool) {}
|
void onConfigurationStoreRead(bool) {}
|
||||||
void OnPidTuning(const result_t) {}
|
void onPidTuning(const result_t) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // MALYAN_LCD
|
#endif // MALYAN_LCD
|
||||||
|
|
|
@ -602,6 +602,9 @@ namespace Language_en {
|
||||||
PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
|
PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
|
||||||
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correction");
|
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correction");
|
||||||
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Smoothing");
|
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Smoothing");
|
||||||
|
|
||||||
|
PROGMEM Language_Str MSG_LEVEL_X_AXIS = _UxGT("Level X Axis");
|
||||||
|
PROGMEM Language_Str MSG_AUTO_CALIBRATE = _UxGT("Auto Calibrate");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if FAN_COUNT == 1
|
#if FAN_COUNT == 1
|
||||||
|
|
|
@ -411,7 +411,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||||
if (target > GHV(BED_MAXTEMP - 10, temp_range[heater].maxtemp - 15)) {
|
if (target > GHV(BED_MAXTEMP - 10, temp_range[heater].maxtemp - 15)) {
|
||||||
SERIAL_ECHOLNPGM(STR_PID_TEMP_TOO_HIGH);
|
SERIAL_ECHOLNPGM(STR_PID_TEMP_TOO_HIGH);
|
||||||
#if ENABLED(EXTENSIBLE_UI)
|
#if ENABLED(EXTENSIBLE_UI)
|
||||||
ExtUI::OnPidTuning(ExtUI::result_t::PID_TEMP_TOO_HIGH);
|
ExtUI::onPidTuning(ExtUI::result_t::PID_TEMP_TOO_HIGH);
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -527,7 +527,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||||
if (current_temp > target + MAX_OVERSHOOT_PID_AUTOTUNE) {
|
if (current_temp > target + MAX_OVERSHOOT_PID_AUTOTUNE) {
|
||||||
SERIAL_ECHOLNPGM(STR_PID_TEMP_TOO_HIGH);
|
SERIAL_ECHOLNPGM(STR_PID_TEMP_TOO_HIGH);
|
||||||
#if ENABLED(EXTENSIBLE_UI)
|
#if ENABLED(EXTENSIBLE_UI)
|
||||||
ExtUI::OnPidTuning(ExtUI::result_t::PID_TEMP_TOO_HIGH);
|
ExtUI::onPidTuning(ExtUI::result_t::PID_TEMP_TOO_HIGH);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -572,7 +572,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||||
#endif
|
#endif
|
||||||
if (((ms - t1) + (ms - t2)) > (MAX_CYCLE_TIME_PID_AUTOTUNE * 60L * 1000L)) {
|
if (((ms - t1) + (ms - t2)) > (MAX_CYCLE_TIME_PID_AUTOTUNE * 60L * 1000L)) {
|
||||||
#if ENABLED(EXTENSIBLE_UI)
|
#if ENABLED(EXTENSIBLE_UI)
|
||||||
ExtUI::OnPidTuning(ExtUI::result_t::PID_TUNING_TIMEOUT);
|
ExtUI::onPidTuning(ExtUI::result_t::PID_TUNING_TIMEOUT);
|
||||||
#endif
|
#endif
|
||||||
SERIAL_ECHOLNPGM(STR_PID_TIMEOUT);
|
SERIAL_ECHOLNPGM(STR_PID_TIMEOUT);
|
||||||
break;
|
break;
|
||||||
|
@ -623,7 +623,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||||
printerEventLEDs.onPidTuningDone(color);
|
printerEventLEDs.onPidTuningDone(color);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(EXTENSIBLE_UI)
|
#if ENABLED(EXTENSIBLE_UI)
|
||||||
ExtUI::OnPidTuning(ExtUI::result_t::PID_DONE);
|
ExtUI::onPidTuning(ExtUI::result_t::PID_DONE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
goto EXIT_M303;
|
goto EXIT_M303;
|
||||||
|
@ -637,7 +637,7 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||||
printerEventLEDs.onPidTuningDone(color);
|
printerEventLEDs.onPidTuningDone(color);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(EXTENSIBLE_UI)
|
#if ENABLED(EXTENSIBLE_UI)
|
||||||
ExtUI::OnPidTuning(ExtUI::result_t::PID_DONE);
|
ExtUI::onPidTuning(ExtUI::result_t::PID_DONE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
EXIT_M303:
|
EXIT_M303:
|
||||||
|
|
Reference in a new issue