Touch UI updates for Cocoa Press (#15986)
This commit is contained in:
		| @@ -92,6 +92,9 @@ U8GLIB             ?= 1 | ||||
| # this defines whether to include the Trinamic TMCStepper library | ||||
| TMC                ?= 1 | ||||
|  | ||||
| # this defines whether to include the AdaFruit NeoPixel library | ||||
| NEOPIXEL           ?= 0 | ||||
|  | ||||
| ############ | ||||
| # Try to automatically determine whether RELOC_WORKAROUND is needed based | ||||
| # on GCC versions: | ||||
|   | ||||
| @@ -444,8 +444,8 @@ typedef struct | ||||
| #define ENABLE    1 | ||||
| #ifndef __cplusplus | ||||
| #ifndef __bool_true_false_are_defined | ||||
| #define false 0 | ||||
| #define true 1 | ||||
| #define false (1==0) | ||||
| #define true (1==1) | ||||
| #endif | ||||
| #endif | ||||
| #ifndef PASS | ||||
|   | ||||
| @@ -720,7 +720,6 @@ void kill(PGM_P const lcd_error/*=nullptr*/, PGM_P const lcd_component/*=nullptr | ||||
|   SERIAL_ERROR_MSG(MSG_ERR_KILLED); | ||||
|  | ||||
|   #if HAS_DISPLAY | ||||
|     extern const char NUL_STR[]; | ||||
|     ui.kill_screen(lcd_error ?: GET_TEXT(MSG_KILLED), lcd_component ?: NUL_STR); | ||||
|   #else | ||||
|     UNUSED(lcd_error); | ||||
|   | ||||
| @@ -100,9 +100,6 @@ void GcodeSuite::M0_M1() { | ||||
|   #if ENABLED(HOST_PROMPT_SUPPORT) | ||||
|     host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M0/1 Break Called"), PSTR("Continue")); | ||||
|   #endif | ||||
|   #if ENABLED(EXTENSIBLE_UI) | ||||
|     ExtUI::onUserConfirmRequired_P(PSTR("M0/1 Break Called")); | ||||
|   #endif | ||||
|  | ||||
|   if (ms > 0) { | ||||
|     ms += millis();  // wait until this time for a click | ||||
|   | ||||
| @@ -132,7 +132,7 @@ class CommandProcessor : public CLCD::CommandFifo { | ||||
| 
 | ||||
|     inline CommandProcessor& font     (int16_t  font)             {_font = font; return *this;} | ||||
| 
 | ||||
|     inline CommandProcessor& enabled  (bool enabled) { | ||||
|     inline CommandProcessor& enabled  (bool enabled=false) { | ||||
|       if (enabled) | ||||
|         _style &= ~STYLE_DISABLED; | ||||
|       else | ||||
| Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB | 
| Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB | 
| @@ -23,10 +23,11 @@ | ||||
| 
 | ||||
| /* This function draws a circular progress "ring" */ | ||||
| 
 | ||||
| void draw_circular_progress(CommandProcessor& cmd, int x, int y, int w, int h, uint8_t percent, uint32_t bgcolor, uint32_t fgcolor, float rim = 0.3) { | ||||
| void draw_circular_progress(CommandProcessor& cmd, int x, int y, int w, int h, float percent, char *text, uint32_t bgcolor, uint32_t fgcolor) { | ||||
|   using namespace FTDI; | ||||
| 
 | ||||
|   const float a  = float(percent)/100.0*2.0*PI; | ||||
|   const float rim = 0.3; | ||||
|   const float a  = percent/100.0*2.0*PI; | ||||
|   const float a1 = min(PI/2, a); | ||||
|   const float a2 = min(PI/2, a-a1); | ||||
|   const float a3 = min(PI/2, a-a1-a2); | ||||
| @@ -90,11 +91,15 @@ void draw_circular_progress(CommandProcessor& cmd, int x, int y, int w, int h, u | ||||
|   cmd.cmd(RESTORE_CONTEXT()); | ||||
| 
 | ||||
|   // Draw the text
 | ||||
|   char str[5]; | ||||
|   sprintf(str,"%d\%%",percent); | ||||
| 
 | ||||
|   cmd.cmd(SAVE_CONTEXT()); | ||||
|   cmd.cmd(COLOR_RGB(fgcolor)); | ||||
|   cmd.text(x,y,w,h,str, OPT_CENTERX | OPT_CENTERY); | ||||
|   cmd.text(x,y,w,h,text, OPT_CENTERX | OPT_CENTERY); | ||||
|   cmd.cmd(RESTORE_CONTEXT()); | ||||
| } | ||||
| 
 | ||||
| void draw_circular_progress(CommandProcessor& cmd, int x, int y, int w, int h, float percent, uint32_t bgcolor, uint32_t fgcolor) { | ||||
|   char str[5]; | ||||
|   sprintf(str,"%d\%%",int(percent)); | ||||
|   draw_circular_progress(cmd, x, y, w, h, percent, str, bgcolor, fgcolor); | ||||
| } | ||||
| @@ -70,7 +70,8 @@ namespace Language_en { | ||||
|   PROGMEM Language_Str MSG_PRINT_FINISHED           = u8"Print finished"; | ||||
|   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_2      = u8"Portions " COPYRIGHT_SIGN " 2019 Aleph Objects, Inc."; | ||||
|   PROGMEM Language_Str MSG_ABOUT_TOUCH_PANEL_2      = u8"Portions " COPYRIGHT_SIGN " 2019 Aleph Objects, Inc.\n" | ||||
|                                                         "Portions " COPYRIGHT_SIGN " 2019 Cocoa Press"; | ||||
|   PROGMEM Language_Str MSG_FIRMWARE_FOR_TOOLHEAD    = u8"Firmware for toolhead:\n%s\n\n"; | ||||
|   PROGMEM Language_Str MSG_RUNOUT_1                 = u8"Runout 1"; | ||||
|   PROGMEM Language_Str MSG_RUNOUT_2                 = u8"Runout 2"; | ||||
| @@ -157,5 +158,7 @@ namespace Language_en { | ||||
|   #ifdef TOUCH_UI_COCOA_PRESS | ||||
|     PROGMEM Language_Str MSG_ZONE_1                 = u8"Zone 1:"; | ||||
|     PROGMEM Language_Str MSG_ZONE_2                 = u8"Zone 2:"; | ||||
|     PROGMEM Language_Str MSG_ZONE_3                 = u8"Zone 3:"; | ||||
|     PROGMEM Language_Str MSG_PREHEAT_FINISHED       = u8"Preheat finished"; | ||||
|   #endif | ||||
| }; // namespace Language_en
 | ||||
| @@ -42,44 +42,49 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { | ||||
|     cmd.colors(normal_btn) | ||||
|        .font(Theme::font_medium) | ||||
|     #ifdef TOUCH_UI_PORTRAIT | ||||
|       #define GRID_ROWS 9 | ||||
|       #define GRID_ROWS 10 | ||||
|       #define GRID_COLS 2 | ||||
|       #if HAS_BED_PROBE | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .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(1) | ||||
|       .enabled( | ||||
|         #if HAS_CASE_LIGHT | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(16).button( BTN_POS(1,6),  BTN_SIZE(1,1), GET_TEXT_F(MSG_CASE_LIGHT)) | ||||
|       .tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_STEPS_PER_MM)) | ||||
|       #if HAS_TRINAMIC | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .tag(13).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT)) | ||||
|       #if HAS_TRINAMIC | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .tag(14).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_HOMING_THRS)) | ||||
|       #if HOTENDS > 1 | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if HAS_TRINAMIC | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(13).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT)) | ||||
|       .enabled( | ||||
|         #if HAS_TRINAMIC | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(14).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_TMC_HOMING_THRS)) | ||||
|       .enabled( | ||||
|         #if HOTENDS > 1 | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU)) | ||||
|       #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR) | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR) | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENT)) | ||||
|       .tag(12).button( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) | ||||
|       .tag(12).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) | ||||
|       .tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISPLAY_MENU)) | ||||
|       .tag(9) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS)) | ||||
|       .tag(10).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_FAILSAFE)) | ||||
|       .tag(9) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE_SETTINGS)) | ||||
|       .tag(10).button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_FAILSAFE)) | ||||
|       .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) | ||||
| @@ -87,51 +92,57 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { | ||||
|       #else | ||||
|       .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK)) | ||||
|       #endif | ||||
|       #if ENABLED(BACKLASH_GCODE) | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if ENABLED(BACKLASH_GCODE) | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH)) | ||||
|       .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,10), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); | ||||
|       #undef GRID_COLS | ||||
|       #undef GRID_ROWS | ||||
|     #else | ||||
|       #define GRID_ROWS 6 | ||||
|       #define GRID_COLS 3 | ||||
|       #if HAS_BED_PROBE | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .tag(2) .button( BTN_POS(1,1),  BTN_SIZE(1,2), GET_TEXT_F(MSG_ZPROBE_ZOFFSET)) | ||||
|       .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)) | ||||
|       #if HAS_TRINAMIC | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if HAS_TRINAMIC | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT)) | ||||
|       #if HAS_TRINAMIC | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if HAS_TRINAMIC | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_HOMING_THRS)) | ||||
|       #if ENABLED(BACKLASH_GCODE) | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if ENABLED(BACKLASH_GCODE) | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(8).button( BTN_POS(3,3),  BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH)) | ||||
|       #if HOTENDS > 1 | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .tag(4) .button( BTN_POS(1,3),  BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU)) | ||||
|       .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)) | ||||
| @@ -140,7 +151,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { | ||||
|       #else | ||||
|       .tag(7) .button( BTN_POS(2,4),  BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK)) | ||||
|       #endif | ||||
|       .tag(11).button( BTN_POS(1,4),  BTN_SIZE(1,1), GET_TEXT_F(MSG_FILAMENT)) | ||||
|       .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_FAILSAFE)) | ||||
| @@ -183,6 +194,9 @@ bool AdvancedSettingsMenu::onTouchEnd(uint8_t tag) { | ||||
|     case 14: GOTO_SCREEN(StepperBumpSensitivityScreen); break; | ||||
|     #endif | ||||
|     case 15: GOTO_SCREEN(DisplayTuningScreen); break; | ||||
|     #if HAS_CASE_LIGHT | ||||
|     case 16: GOTO_SCREEN(CaseLightScreen); break; | ||||
|     #endif | ||||
|     default: return false; | ||||
|   } | ||||
|   return true; | ||||
| @@ -38,11 +38,13 @@ void BacklashCompensationScreen::onRedraw(draw_mode_t what) { | ||||
|   w.color(y_axis).adjuster(4, GET_TEXT_F(MSG_AXIS_Y), getAxisBacklash_mm(Y)); | ||||
|   w.color(z_axis).adjuster(6, GET_TEXT_F(MSG_AXIS_Z), getAxisBacklash_mm(Z)); | ||||
|   #if ENABLED(CALIBRATION_GCODE) | ||||
|   w.button(12, GET_TEXT_F(MSG_MEASURE_AUTOMATICALLY)); | ||||
|     w.button(12, GET_TEXT_F(MSG_MEASURE_AUTOMATICALLY)); | ||||
|   #endif | ||||
|   #ifdef BACKLASH_SMOOTHING_MM | ||||
|     w.color(other).adjuster(8,  GET_TEXT_F(MSG_BACKLASH_SMOOTHING), getBacklashSmoothing_mm()); | ||||
|   #endif | ||||
|   w.color(other).adjuster(8,  GET_TEXT_F(MSG_SMOOTHING), getBacklashSmoothing_mm()); | ||||
|   w.precision(0).units(GET_TEXT_F(MSG_UNITS_PERCENT)) | ||||
|                 .adjuster(10, GET_TEXT_F(MSG_CORRECTION), getBacklashCorrection_percent()); | ||||
|                 .adjuster(10, GET_TEXT_F(MSG_BACKLASH_CORRECTION), getBacklashCorrection_percent()); | ||||
|   w.precision(2).increments(); | ||||
| } | ||||
| 
 | ||||
| @@ -55,12 +57,14 @@ bool BacklashCompensationScreen::onTouchHeld(uint8_t tag) { | ||||
|     case  5:  UI_INCREMENT(AxisBacklash_mm, Y); break; | ||||
|     case  6:  UI_DECREMENT(AxisBacklash_mm, Z); break; | ||||
|     case  7:  UI_INCREMENT(AxisBacklash_mm, Z); break; | ||||
|     case  8:  UI_DECREMENT(BacklashSmoothing_mm); break; | ||||
|     case  9:  UI_INCREMENT(BacklashSmoothing_mm); break; | ||||
|     #ifdef BACKLASH_SMOOTHING_MM | ||||
|       case  8:  UI_DECREMENT(BacklashSmoothing_mm); break; | ||||
|       case  9:  UI_INCREMENT(BacklashSmoothing_mm); break; | ||||
|     #endif | ||||
|     case  10: UI_DECREMENT_BY(BacklashCorrection_percent, increment*100);  break; | ||||
|     case  11: UI_INCREMENT_BY(BacklashCorrection_percent, increment*100);  break; | ||||
|     #if ENABLED(CALIBRATION_GCODE) | ||||
|     case  12: GOTO_SCREEN(ConfirmAutoCalibrationDialogBox); return true; | ||||
|       case  12: GOTO_SCREEN(ConfirmAutoCalibrationDialogBox); return true; | ||||
|     #endif | ||||
|     default: | ||||
|       return false; | ||||
| @@ -44,24 +44,24 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { | ||||
|     #define GRID_COLS 2 | ||||
| 
 | ||||
|       .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT_F(MSG_DISPLAY_MENU)) | ||||
|       #if HAS_TRINAMIC | ||||
|        .enabled(1) | ||||
|       #else | ||||
|        .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if HAS_TRINAMIC | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(3) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_CURRENT)) | ||||
|       #if HAS_TRINAMIC | ||||
|        .enabled(1) | ||||
|       #else | ||||
|        .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if HAS_TRINAMIC | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXT_F(MSG_TMC_HOMING_THRS)) | ||||
|       .tag(5) .button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) | ||||
|       #if HOTENDS > 1 | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if HOTENDS > 1 | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(6) .button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_OFFSETS_MENU)) | ||||
| 
 | ||||
| 
 | ||||
| @@ -73,17 +73,17 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) { | ||||
|       #else | ||||
|         .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXT_F(MSG_JERK)) | ||||
|       #endif | ||||
|       #if ENABLED(BACKLASH_GCODE) | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if ENABLED(BACKLASH_GCODE) | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(11) .button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXT_F(MSG_BACKLASH)) | ||||
|       #if ENABLED(LIN_ADVANCE) | ||||
|       .enabled(1) | ||||
|       #else | ||||
|       .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if ENABLED(LIN_ADVANCE) | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .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(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_FAILSAFE)) | ||||
| @@ -40,16 +40,20 @@ const PROGMEM uint16_t syringe[] = {0xB8AD, 0x6BB1, 0xB8AD, 0x6E0C, 0xBE02, 0x6E | ||||
| const PROGMEM uint16_t syringe_outline[] = {0xB396, 0x110A, 0xB396, 0x1818, 0xB995, 0x1818, 0xB995, 0x22AD, 0xB396, 0x22AD, 0xB396, 0x7ADA, 0xB995, 0x7E61, 0xB995, 0x88F5, 0xBB95, 0x88F5, 0xBB95, 0xA8B4, 0xBD94, 0xAC3B, 0xBD94, 0x88F5, 0xBF94, 0x88F5, 0xBF94, 0x7E61, 0xC593, 0x7ADA, 0xC593, 0x22AD, 0xBF94, 0x22AD, 0xBF94, 0x1818, 0xC593, 0x1818, 0xC593, 0x110A, 0xB396, 0x110A}; | ||||
| const PROGMEM uint16_t padlock[] = {0x3FE3, 0x2A04, 0x3D34, 0x2AF9, 0x3AFF, 0x2D93, 0x397D, 0x316D, 0x38E8, 0x3626, 0x38E8, 0x3A14, 0x39B3, 0x3C8F, 0x3B50, 0x3C8F, 0x3C1C, 0x3A14, 0x3C1C, 0x363C, 0x3C6B, 0x33A9, 0x3D3A, 0x3193, 0x3E6C, 0x302D, 0x3FE3, 0x2FAA, 0x415A, 0x302D, 0x428C, 0x3192, 0x435B, 0x33A8, 0x43AB, 0x363C, 0x43AB, 0x4492, 0x38C3, 0x4492, 0x3741, 0x45AC, 0x36A1, 0x4856, 0x36A1, 0x5C41, 0x3741, 0x5EEC, 0x38C3, 0x6005, 0x4703, 0x6005, 0x4886, 0x5EEC, 0x4925, 0x5C41, 0x4925, 0x4856, 0x4886, 0x45AC, 0x4703, 0x4492, 0x46DE, 0x362B, 0x4649, 0x316D, 0x44C7, 0x2D92, 0x4292, 0x2AF9}; | ||||
| const PROGMEM uint16_t home_z[] = {0x80BB, 0x2B43, 0x712C, 0x46B9, 0x750F, 0x46B9, 0x750F, 0x622F, 0x7CD7, 0x622F, 0x7CD7, 0x5474, 0x849F, 0x5474, 0x849F, 0x622F, 0x8C67, 0x622F, 0x8C67, 0x46B9, 0x904B, 0x46B9, 0x8A48, 0x3C1D, 0x8A48, 0x2ECD, 0x8664, 0x2ECD, 0x8664, 0x3540}; | ||||
| const PROGMEM uint16_t usb_btn[] = {0x0558, 0xC0D6, 0x44A4, 0xC0D6, 0x44A4, 0xF431, 0x0558, 0xF431, 0x0558, 0xC0D6}; | ||||
| const PROGMEM uint16_t menu_btn[] = {0x4B18, 0xC0D6, 0x8A64, 0xC0D6, 0x8A64, 0xF431, 0x4B18, 0xF431, 0x4B18, 0xC0D6}; | ||||
| const PROGMEM uint16_t usb_btn[] = {0x0558, 0xC0D6, 0x3BDB, 0xC0D6, 0x3BDB, 0xF431, 0x0558, 0xF431, 0x0558, 0xC0D6}; | ||||
| const PROGMEM uint16_t menu_btn[] = {0x416B, 0xC0D6, 0x77EE, 0xC0D6, 0x77EE, 0xF431, 0x416B, 0xF431, 0x416B, 0xC0D6}; | ||||
| const PROGMEM uint16_t e_pos[] = {0xE04E, 0x5E7B, 0xE94C, 0x5E7B, 0xE94C, 0x7E74, 0xEDCB, 0x7E74, 0xE4CD, 0x8E70, 0xDBCF, 0x7E74, 0xE04E, 0x7E74, 0xE04E, 0x5E7B}; | ||||
| const PROGMEM uint16_t e_neg[] = {0xE04E, 0x4E7F, 0xE94C, 0x4E7F, 0xE94C, 0x2E87, 0xEDCB, 0x2E87, 0xE4CD, 0x1E8A, 0xDBCF, 0x2E87, 0xE04E, 0x2E87, 0xE04E, 0x4E7F}; | ||||
| const PROGMEM uint16_t home_e[] = {0xD705, 0x3885, 0xC775, 0x53FB, 0xCB59, 0x53FB, 0xCB59, 0x6F71, 0xD321, 0x6F71, 0xD321, 0x61B6, 0xDAE9, 0x61B6, 0xDAE9, 0x6F71, 0xE2B1, 0x6F71, 0xE2B1, 0x53FB, 0xE695, 0x53FB, 0xE092, 0x495F, 0xE092, 0x3C0E, 0xDCAE, 0x3C0E, 0xDCAE, 0x4281}; | ||||
| const PROGMEM uint16_t fine_label[] = {0x0D92, 0x9444, 0x5211, 0x9444, 0x5211, 0xA9EA, 0x0D92, 0xA9EA}; | ||||
| const PROGMEM uint16_t fine_toggle[] = {0x56E7, 0x9444, 0x8007, 0x9444, 0x8007, 0xA9EA, 0x56E7, 0xA9EA}; | ||||
| const PROGMEM uint16_t zone2_temp[] = {0xC620, 0xD35A, 0xFD0E, 0xD35A, 0xFD0E, 0xF075, 0xC620, 0xF075}; | ||||
| const PROGMEM uint16_t zone1_temp[] = {0x8E04, 0xD35A, 0xC4F3, 0xD35A, 0xC4F3, 0xF075, 0x8E04, 0xF075}; | ||||
| const PROGMEM uint16_t zone2_label[] = {0xC620, 0xB4AD, 0xFD0A, 0xB4AD, 0xFD0A, 0xD1C8, 0xC620, 0xD1C8}; | ||||
| const PROGMEM uint16_t zone1_label[] = {0x8E04, 0xB4AD, 0xC4F3, 0xB4AD, 0xC4F3, 0xD1C8, 0x8E04, 0xD1C8}; | ||||
| const PROGMEM uint16_t h1_temp[] = {0x9C2B, 0xDD3B, 0xBBDE, 0xDD3B, 0xBBDE, 0xFA57, 0x9C2B, 0xFA57}; | ||||
| const PROGMEM uint16_t h1_label[] = {0x9C2B, 0xBE8F, 0xBBDC, 0xBE8F, 0xBBDC, 0xDBAA, 0x9C2B, 0xDBAA}; | ||||
| const PROGMEM uint16_t h0_temp[] = {0x7BD0, 0xDD3B, 0x9B83, 0xDD3B, 0x9B83, 0xFA57, 0x7BD0, 0xFA57}; | ||||
| const PROGMEM uint16_t h0_label[] = {0x7BD0, 0xBE8F, 0x9B83, 0xBE8F, 0x9B83, 0xDBAA, 0x7BD0, 0xDBAA}; | ||||
| const PROGMEM uint16_t h2_temp[] = {0xBC86, 0xDD3B, 0xDC39, 0xDD3B, 0xDC39, 0xFA57, 0xBC86, 0xFA57}; | ||||
| const PROGMEM uint16_t h2_label[] = {0xBC86, 0xBE8F, 0xDC37, 0xBE8F, 0xDC37, 0xDBAA, 0xBC86, 0xDBAA}; | ||||
| const PROGMEM uint16_t h3_temp[] = {0xDCE2, 0xDD0D, 0xFC95, 0xDD0D, 0xFC95, 0xFA28, 0xDCE2, 0xFA28}; | ||||
| const PROGMEM uint16_t h3_label[] = {0xDCE2, 0xBE60, 0xFC92, 0xBE60, 0xFC92, 0xDB7C, 0xDCE2, 0xDB7C}; | ||||
| const PROGMEM uint16_t actual_temp[] = {0xCDF6, 0xD037, 0xF7CA, 0xD037, 0xF7CA, 0xF424, 0xCDF6, 0xF424}; | ||||
| const PROGMEM uint16_t bed_icon[] = {0xCDF6, 0xA5CC, 0xF7CA, 0xA5CC, 0xF7CA, 0xC9B9, 0xCDF6, 0xC9B9}; | ||||
| @@ -23,7 +23,7 @@ | ||||
| 
 | ||||
| #include "../config.h" | ||||
| 
 | ||||
| #if ENABLED(TOUCH_UI_FTDI_EVE) && (ENABLED(TOUCH_UI_LULZBOT_BIO) || ENABLED(TOUCH_UI_COCOA_PRESS)) | ||||
| #if ENABLED(TOUCH_UI_FTDI_EVE) && ANY(TOUCH_UI_LULZBOT_BIO, TOUCH_UI_COCOA_PRESS) | ||||
| 
 | ||||
| #include "screens.h" | ||||
| 
 | ||||
| @@ -95,20 +95,29 @@ void StatusScreen::draw_temperature(draw_mode_t what) { | ||||
|          .icon (x + 2, y + 2, h, v, Bed_Heat_Icon_Info, icon_scale * 2) | ||||
|          .cmd(COLOR_RGB(bg_text_enabled)) | ||||
|          .icon (x, y, h, v, Bed_Heat_Icon_Info, icon_scale * 2); | ||||
|     #endif | ||||
| 
 | ||||
|     #if ENABLED(TOUCH_UI_COCOA_PRESS) | ||||
|     #elif ENABLED(TOUCH_UI_COCOA_PRESS) && DISABLED(TOUCH_UI_PORTRAIT) | ||||
|       // The CocoaPress shows the temperature for two
 | ||||
|       // heating zones, but has no bed temperature
 | ||||
| 
 | ||||
|       cmd.cmd(COLOR_RGB(bg_text_enabled)); | ||||
|       cmd.font(font_medium); | ||||
| 
 | ||||
|       ui.bounds(POLY(zone1_label), x, y, h, v); | ||||
|       ui.bounds(POLY(h0_label), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, GET_TEXT_F(MSG_ZONE_1)); | ||||
| 
 | ||||
|       ui.bounds(POLY(zone2_label), x, y, h, v); | ||||
|       ui.bounds(POLY(h1_label), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, GET_TEXT_F(MSG_ZONE_2)); | ||||
| 
 | ||||
|       ui.bounds(POLY(h2_label), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, GET_TEXT_F(MSG_ZONE_3)); | ||||
| 
 | ||||
|       ui.bounds(POLY(h3_label), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, GET_TEXT_F(MSG_CHAMBER)); | ||||
|     #else | ||||
|       UNUSED(x); | ||||
|       UNUSED(y); | ||||
|       UNUSED(h); | ||||
|       UNUSED(v); | ||||
|     #endif | ||||
| 
 | ||||
|     #ifdef TOUCH_UI_USE_UTF8 | ||||
| @@ -143,9 +152,8 @@ 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 | ||||
| 
 | ||||
|     #if ENABLED(TOUCH_UI_COCOA_PRESS) | ||||
|     #elif ENABLED(TOUCH_UI_COCOA_PRESS) && DISABLED(TOUCH_UI_PORTRAIT) | ||||
|       // The CocoaPress shows the temperature for two
 | ||||
|       // heating zones, but has no bed temperature
 | ||||
| 
 | ||||
| @@ -156,7 +164,7 @@ void StatusScreen::draw_temperature(draw_mode_t what) { | ||||
|       else | ||||
|         format_temp_and_idle(str, getActualTemp_celsius(E0)); | ||||
| 
 | ||||
|       ui.bounds(POLY(zone1_temp), x, y, h, v); | ||||
|       ui.bounds(POLY(h0_temp), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, str); | ||||
| 
 | ||||
|       if (!isHeaterIdle(E1) && getTargetTemp_celsius(E1) > 0) | ||||
| @@ -164,8 +172,26 @@ void StatusScreen::draw_temperature(draw_mode_t what) { | ||||
|       else | ||||
|         format_temp_and_idle(str, getActualTemp_celsius(E1)); | ||||
| 
 | ||||
|       ui.bounds(POLY(zone2_temp), x, y, h, v); | ||||
|       ui.bounds(POLY(h1_temp), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, str); | ||||
| 
 | ||||
|       if (!isHeaterIdle(E2) && getTargetTemp_celsius(E2) > 0) | ||||
|         format_temp_and_temp(str, getActualTemp_celsius(E2), getTargetTemp_celsius(E2)); | ||||
|       else | ||||
|         format_temp_and_idle(str, getActualTemp_celsius(E2)); | ||||
| 
 | ||||
|       ui.bounds(POLY(h2_temp), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, str); | ||||
| 
 | ||||
|       if (!isHeaterIdle(CHAMBER) && getTargetTemp_celsius(CHAMBER) > 0) | ||||
|         format_temp_and_temp(str, getActualTemp_celsius(CHAMBER), getTargetTemp_celsius(CHAMBER)); | ||||
|       else | ||||
|         format_temp_and_idle(str, getActualTemp_celsius(CHAMBER)); | ||||
| 
 | ||||
|       ui.bounds(POLY(h3_temp), x, y, h, v); | ||||
|       cmd.text(x, y, h, v, str); | ||||
|     #else | ||||
|       UNUSED(str); | ||||
|     #endif | ||||
|   } | ||||
| } | ||||
| @@ -238,7 +264,9 @@ void StatusScreen::draw_arrows(draw_mode_t what) { | ||||
|   } | ||||
| 
 | ||||
|   if ((what & BACKGROUND) || e_homed) { | ||||
|     ui.button(7, POLY(e_neg)); | ||||
|     #if DISABLED(TOUCH_UI_COCOA_PRESS) | ||||
|       ui.button(7, POLY(e_neg)); | ||||
|     #endif | ||||
|     ui.button(8, POLY(e_pos)); | ||||
|   } | ||||
| } | ||||
| @@ -50,11 +50,11 @@ void TuneMenu::onRedraw(draw_mode_t what) { | ||||
|        .font(font_medium) | ||||
|        .enabled( isPrinting()).tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXT_F(MSG_PRINT_SPEED)) | ||||
|                               .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXT_F(MSG_BED_TEMPERATURE)) | ||||
|         #if ENABLED(BABYSTEPPING) | ||||
|           .enabled(true) | ||||
|         #else | ||||
|           .enabled(false) | ||||
|         #endif | ||||
|         .enabled( | ||||
|           #if ENABLED(BABYSTEPPING) | ||||
|             true | ||||
|           #endif | ||||
|         ) | ||||
|                               .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXT_F(MSG_NUDGE_NOZZLE)) | ||||
|        .enabled(!isPrinting()).tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_MOVE_TO_HOME)) | ||||
|        .enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_RAISE_PLUNGER)) | ||||
| @@ -0,0 +1,62 @@ | ||||
| /************************* | ||||
|  * case_light_screen.cpp * | ||||
|  *************************/ | ||||
|  | ||||
| /**************************************************************************** | ||||
|  *   Written By Marcio Teixeira 2019 - 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 BOTH(TOUCH_UI_FTDI_EVE, CASE_LIGHT_ENABLE) | ||||
|  | ||||
| #include "screens.h" | ||||
|  | ||||
| using namespace FTDI; | ||||
| using namespace ExtUI; | ||||
| using namespace Theme; | ||||
|  | ||||
| void CaseLightScreen::onRedraw(draw_mode_t what) { | ||||
|   widgets_t w(what); | ||||
|   w.heading(   GET_TEXT_F(MSG_CASE_LIGHT)); | ||||
|   w.toggle( 2, GET_TEXT_F(MSG_LEDS), getCaseLightState()); | ||||
|   #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS) | ||||
|   w.precision(0).units(GET_TEXT_F(MSG_UNITS_PERCENT)) | ||||
|                 .adjuster(10, GET_TEXT_F(MSG_CASE_LIGHT_BRIGHTNESS), getCaseLightBrightness_percent()); | ||||
|   w.precision(0).increments(); | ||||
|   #endif | ||||
| } | ||||
|  | ||||
| bool CaseLightScreen::onTouchHeld(uint8_t tag) { | ||||
|   using namespace ExtUI; | ||||
|   #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS) | ||||
|     const float increment = getIncrement(); | ||||
|   #endif | ||||
|   switch (tag) { | ||||
|     case 2: setCaseLightState(!getCaseLightState()); break; | ||||
|     #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS) | ||||
|       case  10: UI_DECREMENT(CaseLightBrightness_percent); break; | ||||
|       case  11: UI_INCREMENT(CaseLightBrightness_percent); break; | ||||
|     #endif | ||||
|     default: | ||||
|       return false; | ||||
|   } | ||||
|  | ||||
|   SaveSettingsDialogBox::settingsChanged(); | ||||
|   return true; | ||||
| } | ||||
|  | ||||
| #endif // TOUCH_UI_FTDI_EVE | ||||
| @@ -195,11 +195,14 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) { | ||||
|     const bool tog8 = screen_data.ChangeFilamentScreen.repeat_tag == 8; | ||||
| 
 | ||||
| 
 | ||||
|     #ifdef TOUCH_UI_PORTRAIT | ||||
|       cmd.font(font_large); | ||||
|     #else | ||||
|       cmd.font(font_small); | ||||
|     #endif | ||||
|     cmd.font( | ||||
|       #ifdef TOUCH_UI_PORTRAIT | ||||
|         font_large | ||||
|       #else | ||||
|         font_small | ||||
|       #endif | ||||
|     ); | ||||
| 
 | ||||
|     { | ||||
|       char str[30]; | ||||
| 
 | ||||
| @@ -52,13 +52,15 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) { | ||||
|   #define PIN_ENABLED(X,Y,LABEL,PIN,INV)  cmd.enabled(1).colors(READ(PIN##_PIN) != INV ? action_btn : normal_btn).PIN_BTN(X,Y,PIN,LABEL); | ||||
|   #define PIN_DISABLED(X,Y,LABEL,PIN)     cmd.enabled(0).PIN_BTN(X,Y,PIN,LABEL); | ||||
| 
 | ||||
|   #ifdef TOUCH_UI_PORTRAIT | ||||
|   cmd.font(font_large) | ||||
|   #else | ||||
|   cmd.font(font_medium) | ||||
|   #endif | ||||
|      .text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) | ||||
|      .font(font_tiny); | ||||
|   cmd.font( | ||||
|     #ifdef TOUCH_UI_PORTRAIT | ||||
|       font_large | ||||
|     #else | ||||
|       font_medium | ||||
|     #endif | ||||
|   ) | ||||
|   .text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) | ||||
|   .font(font_tiny); | ||||
|   #if PIN_EXISTS(X_MAX) | ||||
|     PIN_ENABLED (1, 2, PSTR(MSG_X_MAX), X_MAX, X_MAX_ENDSTOP_INVERTING) | ||||
|   #else | ||||
| @@ -46,17 +46,17 @@ void FilamentMenu::onRedraw(draw_mode_t what) { | ||||
|       #define GRID_COLS 2 | ||||
|          .text  ( BTN_POS(1,1),      BTN_SIZE(2,1), GET_TEXT_F(MSG_FILAMENT)) | ||||
|          .font(font_medium).colors(normal_btn) | ||||
|       #if ENABLED(FILAMENT_RUNOUT_SENSOR) | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|          .enabled( | ||||
|            #if ENABLED(FILAMENT_RUNOUT_SENSOR) | ||||
|              1 | ||||
|            #endif | ||||
|          ) | ||||
|       .tag(2).button( BTN_POS(1,2),  BTN_SIZE(2,1), GET_TEXT_F(MSG_RUNOUT_SENSOR)) | ||||
|       #if ENABLED(LIN_ADVANCE) | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if ENABLED(LIN_ADVANCE) | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(3).button( BTN_POS(1,3),  BTN_SIZE(2,1), GET_TEXT_F(MSG_LINEAR_ADVANCE)) | ||||
|       .colors(action_btn) | ||||
|       .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK)); | ||||
| @@ -67,17 +67,17 @@ void FilamentMenu::onRedraw(draw_mode_t what) { | ||||
|       #define GRID_COLS 3 | ||||
|          .text  ( BTN_POS(1,1),      BTN_SIZE(3,1), GET_TEXT_F(MSG_FILAMENT)) | ||||
|          .font(font_medium).colors(normal_btn) | ||||
|       #if ENABLED(FILAMENT_RUNOUT_SENSOR) | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|          .enabled( | ||||
|            #if ENABLED(FILAMENT_RUNOUT_SENSOR) | ||||
|              1 | ||||
|            #endif | ||||
|          ) | ||||
|       .tag(2).button( BTN_POS(1,2),  BTN_SIZE(3,1), GET_TEXT_F(MSG_RUNOUT_SENSOR)) | ||||
|       #if ENABLED(LIN_ADVANCE) | ||||
|         .enabled(1) | ||||
|       #else | ||||
|         .enabled(0) | ||||
|       #endif | ||||
|       .enabled( | ||||
|         #if ENABLED(LIN_ADVANCE) | ||||
|           1 | ||||
|         #endif | ||||
|       ) | ||||
|       .tag(3).button( BTN_POS(1,3),  BTN_SIZE(3,1), GET_TEXT_F(MSG_LINEAR_ADVANCE)) | ||||
|       .colors(action_btn) | ||||
|       .tag(1) .button( BTN_POS(1,6), BTN_SIZE(3,1), GET_TEXT_F(MSG_BACK)); | ||||
| @@ -41,7 +41,7 @@ void FilamentRunoutScreen::onRedraw(draw_mode_t what) { | ||||
|     w.units(GET_TEXT_F(MSG_UNITS_MM)); | ||||
|     w.precision(0); | ||||
|     w.color(e_axis); | ||||
|     w.adjuster( 10, NUL_STR, getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled()); | ||||
|     w.adjuster( 10, progmem_str(NUL_STR), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled()); | ||||
|     w.increments(); | ||||
|   #endif | ||||
| } | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user