Improve and fix LULZBOT_TOUCH_UI (#15434)
- Add start print confirmation dialog box - Fix incorrect text colors in UI - Adjust bio printer UI
This commit is contained in:
parent
b198f321c8
commit
087fe0e9d6
14 changed files with 178 additions and 100 deletions
|
@ -184,6 +184,7 @@ namespace Language_en {
|
|||
PROGMEM Language_Str ERASING = u8"Erasing...";
|
||||
PROGMEM Language_Str ERASED = u8"SPI flash erased";
|
||||
PROGMEM Language_Str CALIBRATION_WARNING = u8"For best results, unload the filament and clean the hotend prior to starting calibration. Continue?";
|
||||
PROGMEM Language_Str START_PRINT_CONFIRMATION = u8"Start printing %s?";
|
||||
PROGMEM Language_Str ABORT_WARNING = u8"Are you sure you want to cancel the print?";
|
||||
PROGMEM Language_Str EXTRUDER_SELECTION = u8"Extruder Selection";
|
||||
PROGMEM Language_Str CURRENT_TEMPERATURE = u8"Current Temp";
|
||||
|
@ -222,10 +223,12 @@ namespace Language_en {
|
|||
|
||||
#ifdef LULZBOT_USE_BIOPRINTER_UI
|
||||
PROGMEM Language_Str MAIN_MENU = u8"Main Menu";
|
||||
PROGMEM Language_Str RELEASE_XY_AXIS = u8"Release XY Axis";
|
||||
PROGMEM Language_Str LOAD_SYRINGE = u8"Load Syringe";
|
||||
PROGMEM Language_Str MOVE_TO_HOME = u8"Move To Home";
|
||||
PROGMEM Language_Str RAISE_PLUNGER = u8"Raise Plunger";
|
||||
PROGMEM Language_Str RELEASE_XY_AXIS = u8"Release X and Y Axis";
|
||||
PROGMEM Language_Str AUTOLEVEL_X_AXIS = u8"Auto-level X Axis";
|
||||
PROGMEM Language_Str BED_TEMPERATURE = u8"Bed Temperature";
|
||||
PROGMEM Language_Str LOADING_WARNING = u8"About to home to loading position. Ensure the top and the bed of the printer are clear.\n\nContinue?";
|
||||
PROGMEM Language_Str HOMING_WARNING = u8"About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?";
|
||||
PROGMEM Language_Str 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 HOME_E_WARNING = u8"About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?";
|
||||
#endif
|
||||
}; // namespace Language_en
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
/***************
|
||||
* languages.h *
|
||||
***************/
|
||||
|
||||
/****************************************************************************
|
||||
* Written By Marcio Teixeira 2019 - Aleph Objects, Inc. *
|
||||
* *
|
||||
* 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/>. *
|
||||
****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "language_en.h"
|
||||
#include "language_de.h"
|
||||
#include "language_fr.h"
|
|
@ -85,12 +85,14 @@ void BaseNumericAdjustmentScreen::widgets_t::_button_style(CommandProcessor &cmd
|
|||
default: break;
|
||||
}
|
||||
|
||||
const bool rgb_changed = old_colors->rgb != new_colors->rgb;
|
||||
const bool rgb_changed = (old_colors->rgb != new_colors->rgb) ||
|
||||
(_style == TEXT_LABEL && style != TEXT_LABEL) ||
|
||||
(_style != TEXT_LABEL && style == TEXT_LABEL);
|
||||
const bool grad_changed = old_colors->grad != new_colors->grad;
|
||||
const bool fg_changed = (old_colors->fg != new_colors->fg) || (_style == TEXT_AREA);
|
||||
const bool bg_changed = old_colors->bg != new_colors->bg;
|
||||
|
||||
if (rgb_changed) cmd.cmd(COLOR_RGB(new_colors->rgb));
|
||||
if (rgb_changed) cmd.cmd(COLOR_RGB(style == TEXT_LABEL ? bg_text_enabled : new_colors->rgb));
|
||||
if (grad_changed) cmd.gradcolor(new_colors->grad);
|
||||
if (fg_changed) cmd.fgcolor(new_colors->fg);
|
||||
if (bg_changed) cmd.bgcolor(new_colors->bg);
|
||||
|
@ -122,6 +124,7 @@ BaseNumericAdjustmentScreen::widgets_t &BaseNumericAdjustmentScreen::widgets_t::
|
|||
void BaseNumericAdjustmentScreen::widgets_t::heading(progmem_str label) {
|
||||
if (_what & BACKGROUND) {
|
||||
CommandProcessor cmd;
|
||||
_button_style(cmd, TEXT_LABEL);
|
||||
cmd.font(font_medium)
|
||||
.text(
|
||||
#ifdef TOUCH_UI_PORTRAIT
|
||||
|
@ -208,11 +211,12 @@ void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, prog
|
|||
CommandProcessor cmd;
|
||||
|
||||
if (_what & BACKGROUND) {
|
||||
_button_style(cmd, TEXT_AREA);
|
||||
_button_style(cmd, TEXT_LABEL);
|
||||
cmd.tag(0)
|
||||
.font(font_small)
|
||||
.text( BTN_POS(1,_line), BTN_SIZE(4,1), label)
|
||||
.fgcolor(_color).button( BTN_POS(5,_line), BTN_SIZE(5,1), F(""), OPT_FLAT);
|
||||
.text( BTN_POS(1,_line), BTN_SIZE(4,1), label);
|
||||
_button_style(cmd, TEXT_AREA);
|
||||
cmd.fgcolor(_color).button( BTN_POS(5,_line), BTN_SIZE(5,1), F(""), OPT_FLAT);
|
||||
}
|
||||
|
||||
cmd.font(font_medium);
|
||||
|
@ -267,12 +271,13 @@ void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, progmem_str
|
|||
CommandProcessor cmd;
|
||||
|
||||
if (_what & BACKGROUND) {
|
||||
_button_style(cmd, TEXT_AREA);
|
||||
_button_style(cmd, TEXT_LABEL);
|
||||
cmd.enabled(1)
|
||||
.tag(0)
|
||||
.font(font_small)
|
||||
.text( BTN_POS(1,_line), BTN_SIZE(4,1), label)
|
||||
.fgcolor(_color)
|
||||
.text( BTN_POS(1,_line), BTN_SIZE(4,1), label);
|
||||
_button_style(cmd, TEXT_AREA);
|
||||
cmd.fgcolor(_color)
|
||||
.tag(tag)
|
||||
.button( BTN_POS(5,_line), BTN_SIZE(9,1), F(""), OPT_FLAT);
|
||||
}
|
||||
|
@ -297,14 +302,15 @@ void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, progmem_str lab
|
|||
CommandProcessor cmd;
|
||||
|
||||
if (_what & BACKGROUND) {
|
||||
_button_style(cmd, TEXT_LABEL);
|
||||
cmd.font(font_small)
|
||||
.text(
|
||||
#ifdef TOUCH_UI_PORTRAIT
|
||||
BTN_POS(1, _line), BTN_SIZE( 8,1),
|
||||
#else
|
||||
BTN_POS(1, _line), BTN_SIZE(10,1),
|
||||
#endif
|
||||
label
|
||||
#ifdef TOUCH_UI_PORTRAIT
|
||||
BTN_POS(1, _line), BTN_SIZE( 8,1),
|
||||
#else
|
||||
BTN_POS(1, _line), BTN_SIZE(10,1),
|
||||
#endif
|
||||
label
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -314,12 +320,12 @@ void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, progmem_str lab
|
|||
.enabled(is_enabled)
|
||||
.font(font_small)
|
||||
.toggle2(
|
||||
#ifdef TOUCH_UI_PORTRAIT
|
||||
BTN_POS( 9,_line), BTN_SIZE(5,1),
|
||||
#else
|
||||
BTN_POS(10,_line), BTN_SIZE(4,1),
|
||||
#endif
|
||||
GET_TEXTF(NO), GET_TEXTF(YES), value
|
||||
#ifdef TOUCH_UI_PORTRAIT
|
||||
BTN_POS( 9,_line), BTN_SIZE(5,1),
|
||||
#else
|
||||
BTN_POS(10,_line), BTN_SIZE(4,1),
|
||||
#endif
|
||||
GET_TEXTF(NO), GET_TEXTF(YES), value
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -330,6 +336,7 @@ void BaseNumericAdjustmentScreen::widgets_t::home_buttons(uint8_t tag) {
|
|||
CommandProcessor cmd;
|
||||
|
||||
if (_what & BACKGROUND) {
|
||||
_button_style(cmd, TEXT_LABEL);
|
||||
cmd.font(font_small)
|
||||
.text(BTN_POS(1, _line), BTN_SIZE(4,1), GET_TEXTF(HOME));
|
||||
}
|
||||
|
|
|
@ -29,14 +29,18 @@
|
|||
using namespace FTDI;
|
||||
|
||||
void BioConfirmHomeE::onRedraw(draw_mode_t) {
|
||||
drawMessage(GET_TEXTF(HOMING_WARNING));
|
||||
drawMessage(GET_TEXTF(HOME_E_WARNING));
|
||||
drawYesNoButtons(1);
|
||||
}
|
||||
|
||||
bool BioConfirmHomeE::onTouchEnd(uint8_t tag) {
|
||||
switch (tag) {
|
||||
case 1:
|
||||
SpinnerDialogBox::enqueueAndWait_P(F(LULZBOT_HOME_E_COMMANDS));
|
||||
SpinnerDialogBox::enqueueAndWait_P(F(
|
||||
"G112\n"
|
||||
LULZBOT_AXIS_LEVELING_COMMANDS "\n"
|
||||
LULZBOT_PARK_AND_RELEASE_COMMANDS
|
||||
));
|
||||
current_screen.forget();
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
@ -29,14 +29,17 @@
|
|||
using namespace FTDI;
|
||||
|
||||
void BioConfirmHomeXYZ::onRedraw(draw_mode_t) {
|
||||
drawMessage(GET_TEXTF(LOADING_WARNING));
|
||||
drawMessage(GET_TEXTF(HOME_XYZ_WARNING));
|
||||
drawYesNoButtons(1);
|
||||
}
|
||||
|
||||
bool BioConfirmHomeXYZ::onTouchEnd(uint8_t tag) {
|
||||
switch (tag) {
|
||||
case 1:
|
||||
SpinnerDialogBox::enqueueAndWait_P(F(LULZBOT_HOME_XYZ_COMMANDS));
|
||||
SpinnerDialogBox::enqueueAndWait_P(F(
|
||||
"G28\n"
|
||||
LULZBOT_PARK_AND_RELEASE_COMMANDS
|
||||
));
|
||||
current_screen.forget();
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace FTDI;
|
|||
using namespace Theme;
|
||||
|
||||
void MainMenu::onRedraw(draw_mode_t what) {
|
||||
#define GRID_ROWS 8
|
||||
#define GRID_ROWS 10
|
||||
#define GRID_COLS 2
|
||||
|
||||
if (what & BACKGROUND) {
|
||||
|
@ -45,14 +45,16 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
|||
.font(font_large).text( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(MAIN_MENU))
|
||||
.colors(normal_btn)
|
||||
.font(font_medium)
|
||||
.tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(LOAD_SYRINGE))
|
||||
.tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(RELEASE_XY_AXIS))
|
||||
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(BED_TEMPERATURE))
|
||||
.tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
|
||||
.tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(ADVANCED_SETTINGS))
|
||||
.tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(ABOUT_PRINTER))
|
||||
.tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(MOVE_TO_HOME))
|
||||
.tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(RAISE_PLUNGER))
|
||||
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(RELEASE_XY_AXIS))
|
||||
.tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(AUTOLEVEL_X_AXIS))
|
||||
.tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(BED_TEMPERATURE))
|
||||
.tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
|
||||
.tag(8).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(ADVANCED_SETTINGS))
|
||||
.tag(9).button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXTF(ABOUT_PRINTER))
|
||||
.colors(action_btn)
|
||||
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||
.tag(1).button( BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||
}
|
||||
|
||||
#undef GRID_COLS
|
||||
|
@ -62,14 +64,18 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
|||
bool MainMenu::onTouchEnd(uint8_t tag) {
|
||||
using namespace ExtUI;
|
||||
|
||||
const bool e_homed = isAxisPositionKnown(E0);
|
||||
|
||||
switch (tag) {
|
||||
case 1: SaveSettingsDialogBox::promptToSaveSettings(); break;
|
||||
case 2: GOTO_SCREEN(BioConfirmHomeXYZ); break;
|
||||
case 3: StatusScreen::unlockMotors(); break;
|
||||
case 4: GOTO_SCREEN(TemperatureScreen); break;
|
||||
case 5: GOTO_SCREEN(InterfaceSettingsScreen); break;
|
||||
case 6: GOTO_SCREEN(AdvancedSettingsMenu); break;
|
||||
case 7: GOTO_SCREEN(AboutScreen); break;
|
||||
case 3: SpinnerDialogBox::enqueueAndWait_P(e_homed ? F("G0 E0 F120") : F("G112")); break;
|
||||
case 4: StatusScreen::unlockMotors(); break;
|
||||
case 5: SpinnerDialogBox::enqueueAndWait_P(F(LULZBOT_AXIS_LEVELING_COMMANDS)); break;
|
||||
case 6: GOTO_SCREEN(TemperatureScreen); break;
|
||||
case 7: GOTO_SCREEN(InterfaceSettingsScreen); break;
|
||||
case 8: GOTO_SCREEN(AdvancedSettingsMenu); break;
|
||||
case 9: GOTO_SCREEN(AboutScreen); break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -275,7 +275,7 @@ bool StatusScreen::onTouchEnd(uint8_t tag) {
|
|||
break;
|
||||
case 9: GOTO_SCREEN(FilesScreen); break;
|
||||
case 10: GOTO_SCREEN(MainMenu); break;
|
||||
case 13: SpinnerDialogBox::enqueueAndWait_P(F("G112")); break;
|
||||
case 13: GOTO_SCREEN(BioConfirmHomeE); break;
|
||||
case 14: SpinnerDialogBox::enqueueAndWait_P(F("G28 Z")); break;
|
||||
case 15: GOTO_SCREEN(TemperatureScreen); break;
|
||||
case 16: fine_motion = !fine_motion; break;
|
||||
|
|
|
@ -38,7 +38,7 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
|||
.font(font_medium);
|
||||
}
|
||||
|
||||
#define GRID_ROWS 7
|
||||
#define GRID_ROWS 8
|
||||
#define GRID_COLS 2
|
||||
|
||||
if (what & FOREGROUND) {
|
||||
|
@ -55,9 +55,10 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
|||
.enabled(false)
|
||||
#endif
|
||||
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(NUDGE_NOZZLE))
|
||||
.enabled(!isPrinting()).tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(LOAD_SYRINGE))
|
||||
.enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(RELEASE_XY_AXIS))
|
||||
.colors(action_btn) .tag(1).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||
.enabled(!isPrinting()).tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(MOVE_TO_HOME))
|
||||
.enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(RAISE_PLUNGER))
|
||||
.enabled(!isPrinting()).tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(RELEASE_XY_AXIS))
|
||||
.colors(action_btn) .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||
}
|
||||
#undef GRID_COLS
|
||||
#undef GRID_ROWS
|
||||
|
@ -65,12 +66,13 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
|||
|
||||
bool TuneMenu::onTouchEnd(uint8_t tag) {
|
||||
switch (tag) {
|
||||
case 1: GOTO_PREVIOUS(); break;
|
||||
case 2: GOTO_SCREEN(FeedratePercentScreen); break;
|
||||
case 3: GOTO_SCREEN(TemperatureScreen); break;
|
||||
case 4: GOTO_SCREEN(NudgeNozzleScreen); break;
|
||||
case 5: GOTO_SCREEN(BioConfirmHomeXYZ); break;
|
||||
case 6: StatusScreen::unlockMotors(); break;
|
||||
case 1: GOTO_PREVIOUS(); break;
|
||||
case 2: GOTO_SCREEN(FeedratePercentScreen); break;
|
||||
case 3: GOTO_SCREEN(TemperatureScreen); break;
|
||||
case 4: GOTO_SCREEN(NudgeNozzleScreen); break;
|
||||
case 5: GOTO_SCREEN(BioConfirmHomeXYZ); break;
|
||||
case 6: SpinnerDialogBox::enqueueAndWait_P(F("G0 E0 F120")); break;
|
||||
case 7: StatusScreen::unlockMotors(); break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
/**************************************
|
||||
* confirm_start_print_dialog_box.cpp *
|
||||
**************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Written By Mark Pelletier 2017 - Aleph Objects, Inc. *
|
||||
* Written By Marcio Teixeira 2018 - Aleph Objects, Inc. *
|
||||
* *
|
||||
* 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(LULZBOT_TOUCH_UI)
|
||||
|
||||
#include "screens.h"
|
||||
#include "screen_data.h"
|
||||
|
||||
using namespace FTDI;
|
||||
using namespace Theme;
|
||||
using namespace ExtUI;
|
||||
|
||||
void ConfirmStartPrintDialogBox::onEntry() {
|
||||
BaseScreen::onEntry();
|
||||
sound.play(twinkle, PLAY_ASYNCHRONOUS);
|
||||
}
|
||||
|
||||
void ConfirmStartPrintDialogBox::onRedraw(draw_mode_t) {
|
||||
const char *filename = getLongFilename();
|
||||
char buffer[strlen_P(GET_TEXT(START_PRINT_CONFIRMATION)) + strlen(filename) + 1];
|
||||
sprintf_P(buffer, GET_TEXT(START_PRINT_CONFIRMATION), filename);
|
||||
drawMessage((const char *)buffer);
|
||||
drawYesNoButtons(1);
|
||||
}
|
||||
|
||||
bool ConfirmStartPrintDialogBox::onTouchEnd(uint8_t tag) {
|
||||
switch (tag) {
|
||||
case 1:
|
||||
printFile(getShortFilename());
|
||||
StatusScreen::setStatusMessage(GET_TEXTF(PRINT_STARTING));
|
||||
GOTO_SCREEN(StatusScreen);
|
||||
return true;
|
||||
case 2: GOTO_PREVIOUS(); return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
const char *ConfirmStartPrintDialogBox::getFilename(bool longName) {
|
||||
FileList files;
|
||||
files.seek(screen_data.ConfirmStartPrintDialogBox.file_index, true);
|
||||
return longName ? files.longFilename() : files.shortFilename();
|
||||
}
|
||||
|
||||
void ConfirmStartPrintDialogBox::show(uint8_t file_index) {
|
||||
screen_data.ConfirmStartPrintDialogBox.file_index = file_index;
|
||||
GOTO_SCREEN(ConfirmStartPrintDialogBox);
|
||||
}
|
||||
|
||||
#endif // LULZBOT_TOUCH_UI
|
|
@ -41,21 +41,15 @@ void FilesScreen::onEntry() {
|
|||
BaseScreen::onEntry();
|
||||
}
|
||||
|
||||
const char *FilesScreen::getSelectedShortFilename() {
|
||||
const char *FilesScreen::getSelectedFilename(bool longName) {
|
||||
FileList files;
|
||||
files.seek(getFileForTag(screen_data.FilesScreen.selected_tag), true);
|
||||
return files.shortFilename();
|
||||
}
|
||||
|
||||
const char *FilesScreen::getSelectedLongFilename() {
|
||||
FileList files;
|
||||
files.seek(getFileForTag(screen_data.FilesScreen.selected_tag), true);
|
||||
return files.longFilename();
|
||||
files.seek(getSelectedFileIndex(), true);
|
||||
return longName ? files.longFilename() : files.shortFilename();
|
||||
}
|
||||
|
||||
void FilesScreen::drawSelectedFile() {
|
||||
FileList files;
|
||||
files.seek(getFileForTag(screen_data.FilesScreen.selected_tag), true);
|
||||
files.seek(getSelectedFileIndex(), true);
|
||||
screen_data.FilesScreen.flags.is_dir = files.isDir();
|
||||
drawFileButton(
|
||||
files.filename(),
|
||||
|
@ -65,6 +59,10 @@ void FilesScreen::drawSelectedFile() {
|
|||
);
|
||||
}
|
||||
|
||||
uint16_t FilesScreen::getSelectedFileIndex() {
|
||||
return getFileForTag(screen_data.FilesScreen.selected_tag);
|
||||
}
|
||||
|
||||
uint16_t FilesScreen::getFileForTag(uint8_t tag) {
|
||||
return screen_data.FilesScreen.cur_page * files_per_page + tag - 2;
|
||||
}
|
||||
|
@ -213,9 +211,7 @@ bool FilesScreen::onTouchEnd(uint8_t tag) {
|
|||
}
|
||||
break;
|
||||
case 243:
|
||||
printFile(getSelectedShortFilename());
|
||||
StatusScreen::setStatusMessage(GET_TEXTF(PRINT_STARTING));
|
||||
GOTO_SCREEN(StatusScreen);
|
||||
ConfirmStartPrintDialogBox::show(getSelectedFileIndex());
|
||||
return true;
|
||||
case 244:
|
||||
{
|
||||
|
|
|
@ -35,6 +35,7 @@ union screen_data_t {
|
|||
struct {char passcode[5];} LockScreen;
|
||||
struct {bool isError;} AlertDialogBox;
|
||||
struct {bool auto_hide;} SpinnerDialogBox;
|
||||
struct {uint8_t file_index;} ConfirmStartPrintDialogBox;
|
||||
struct {
|
||||
uint8_t e_tag, t_tag, repeat_tag;
|
||||
ExtUI::extruder_t saved_extruder;
|
||||
|
|
|
@ -43,6 +43,7 @@ SCREEN_TABLE {
|
|||
DECL_SCREEN(ConfirmUserRequestAlertBox),
|
||||
DECL_SCREEN(RestoreFailsafeDialogBox),
|
||||
DECL_SCREEN(SaveSettingsDialogBox),
|
||||
DECL_SCREEN(ConfirmStartPrintDialogBox),
|
||||
DECL_SCREEN(ConfirmAbortPrintDialogBox),
|
||||
#if ENABLED(CALIBRATION_GCODE)
|
||||
DECL_SCREEN(ConfirmAutoCalibrationDialogBox),
|
||||
|
|
|
@ -179,6 +179,20 @@ class SaveSettingsDialogBox : public DialogBoxBaseClass, public UncachedScreen {
|
|||
static void settingsChanged() {needs_save = true;}
|
||||
};
|
||||
|
||||
class ConfirmStartPrintDialogBox : public DialogBoxBaseClass, public UncachedScreen {
|
||||
private:
|
||||
inline static const char *getShortFilename() {return getFilename(false);}
|
||||
inline static const char *getLongFilename() {return getFilename(true);}
|
||||
|
||||
static const char *getFilename(bool longName);
|
||||
public:
|
||||
static void onEntry();
|
||||
static void onRedraw(draw_mode_t);
|
||||
static bool onTouchEnd(uint8_t);
|
||||
|
||||
static void show(uint8_t file_index);
|
||||
};
|
||||
|
||||
class ConfirmAbortPrintDialogBox : public DialogBoxBaseClass, public UncachedScreen {
|
||||
public:
|
||||
static void onRedraw(draw_mode_t);
|
||||
|
@ -360,7 +374,8 @@ class BaseNumericAdjustmentScreen : public BaseScreen {
|
|||
BTN_ACTION,
|
||||
BTN_TOGGLE,
|
||||
BTN_DISABLED,
|
||||
TEXT_AREA
|
||||
TEXT_AREA,
|
||||
TEXT_LABEL
|
||||
} _style;
|
||||
|
||||
protected:
|
||||
|
@ -637,9 +652,11 @@ class FilesScreen : public BaseScreen, public CachedScreen<FILES_SCREEN_CACHE, F
|
|||
static uint8_t getTagForLine(uint8_t line) {return line + 2;}
|
||||
static uint8_t getLineForTag(uint8_t tag) {return tag - 2;}
|
||||
static uint16_t getFileForTag(uint8_t tag);
|
||||
static uint16_t getSelectedFileIndex();
|
||||
|
||||
static const char *getSelectedShortFilename();
|
||||
static const char *getSelectedLongFilename();
|
||||
inline static const char *getSelectedShortFilename() {return getSelectedFilename(false);}
|
||||
inline static const char *getSelectedLongFilename() {return getSelectedFilename(true);}
|
||||
static const char *getSelectedFilename(bool longName);
|
||||
|
||||
static void drawFileButton(const char* filename, uint8_t tag, bool is_dir, bool is_highlighted);
|
||||
static void drawFileList();
|
||||
|
|
|
@ -30,12 +30,6 @@
|
|||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wno-format"
|
||||
|
||||
#ifdef __AVR__
|
||||
#define S_FMT "%S"
|
||||
#else
|
||||
#define S_FMT "%s"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Formats a temperature string (e.g. "100°C")
|
||||
*/
|
||||
|
|
Reference in a new issue