LULZBOT_TOUCH_UI: Localization, runtime language selection (#15249)
This commit is contained in:
parent
15bea5043c
commit
18821f29d5
|
@ -691,9 +691,9 @@ LIBWARN = -w -Wno-packed-bitfield-compat
|
||||||
CSTANDARD = -std=gnu99
|
CSTANDARD = -std=gnu99
|
||||||
CXXSTANDARD = -std=gnu++11
|
CXXSTANDARD = -std=gnu++11
|
||||||
CDEBUG = -g$(DEBUG)
|
CDEBUG = -g$(DEBUG)
|
||||||
CWARN = -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
|
CWARN = -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter -Wno-format
|
||||||
CXXWARN = -Wall -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
|
CXXWARN = -Wall -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter -Wno-format
|
||||||
CTUNING = -fsigned-char -funsigned-bitfields -fpack-struct -fno-exceptions \
|
CTUNING = -fsigned-char -funsigned-bitfields -fno-exceptions \
|
||||||
-fshort-enums -ffunction-sections -fdata-sections
|
-fshort-enums -ffunction-sections -fdata-sections
|
||||||
ifneq ($(HARDWARE_MOTHERBOARD),)
|
ifneq ($(HARDWARE_MOTHERBOARD),)
|
||||||
CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
|
CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
|
||||||
|
|
|
@ -82,6 +82,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
//#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Parental lock".
|
// Use a numeric passcode for "Parental lock".
|
||||||
// This is a recommended for smaller displays.
|
// This is a recommended for smaller displays.
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -66,7 +66,7 @@ uint16_t CLCD::FontMetrics::get_text_width(const char *str, size_t n) const {
|
||||||
return width;
|
return width;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t CLCD::FontMetrics::get_text_width_P(const char *str, size_t n) const {
|
uint16_t CLCD::FontMetrics::get_text_width(progmem_str str, size_t n) const {
|
||||||
uint16_t width = 0;
|
uint16_t width = 0;
|
||||||
const uint8_t *p = (const uint8_t *) str;
|
const uint8_t *p = (const uint8_t *) str;
|
||||||
for(;;) {
|
for(;;) {
|
||||||
|
|
|
@ -166,7 +166,7 @@ class CLCD::FontMetrics {
|
||||||
|
|
||||||
// Returns width of string, up to a maximum of n characters.
|
// Returns width of string, up to a maximum of n characters.
|
||||||
uint16_t get_text_width(const char *str, size_t n = SIZE_MAX) const;
|
uint16_t get_text_width(const char *str, size_t n = SIZE_MAX) const;
|
||||||
uint16_t get_text_width_P(const char *str, size_t n = SIZE_MAX) const;
|
uint16_t get_text_width(progmem_str str, size_t n = SIZE_MAX) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************* FT800/810 Graphic Commands *********************************/
|
/******************* FT800/810 Graphic Commands *********************************/
|
||||||
|
|
|
@ -220,6 +220,14 @@ class CommandProcessor : public CLCD::CommandFifo {
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CommandProcessor& toggle2(int16_t x, int16_t y, int16_t w, int16_t h, progmem_str no, progmem_str yes, bool state, uint16_t options = FTDI::OPT_3D) {
|
||||||
|
char text[strlen_P((const char *)no) + strlen_P((const char *)yes) + 2];
|
||||||
|
strcpy_P(text, (const char *)no);
|
||||||
|
strcat(text, "\xFF");
|
||||||
|
strcat_P(text, (const char *)yes);
|
||||||
|
return toggle(x, y, w, h, text, state, options);
|
||||||
|
}
|
||||||
|
|
||||||
// Contrained drawing routines. These constrain the widget inside a box for easier layout.
|
// Contrained drawing routines. These constrain the widget inside a box for easier layout.
|
||||||
// The FORCEDINLINE ensures that the code is inlined so that all the math is done at compile time.
|
// The FORCEDINLINE ensures that the code is inlined so that all the math is done at compile time.
|
||||||
|
|
||||||
|
@ -288,8 +296,28 @@ class CommandProcessor : public CLCD::CommandFifo {
|
||||||
|
|
||||||
void apply_text_alignment(int16_t &x, int16_t &y, int16_t w, int16_t h, uint16_t options) {
|
void apply_text_alignment(int16_t &x, int16_t &y, int16_t w, int16_t h, uint16_t options) {
|
||||||
using namespace FTDI;
|
using namespace FTDI;
|
||||||
x += ((options & OPT_CENTERX) ? w / 2 : ((options & OPT_RIGHTX) ? w : 0));
|
x += ((options & OPT_CENTERX) ? w/2 : ((options & OPT_RIGHTX) ? w : 0));
|
||||||
y += ((options & OPT_CENTERY) ? h / 2 : h);
|
y += ((options & OPT_CENTERY) ? h/2 : h);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reduce font size until text fits the enclosing box.
|
||||||
|
template<typename T>
|
||||||
|
int8_t apply_fit_text(int16_t w, int16_t h, T text) {
|
||||||
|
using namespace FTDI;
|
||||||
|
int8_t font = _font;
|
||||||
|
for (;;) {
|
||||||
|
#ifdef TOUCH_UI_USE_UTF8
|
||||||
|
const int16_t width = get_utf8_text_width(text, font_size_t::from_romfont(font));
|
||||||
|
const int16_t height = font_size_t::from_romfont(font).get_height();
|
||||||
|
#else
|
||||||
|
CLCD::FontMetrics fm(font);
|
||||||
|
const int16_t width = fm.get_text_width(text);
|
||||||
|
const int16_t height = fm.height;
|
||||||
|
#endif
|
||||||
|
if ((width < w && height < h) || font == 26) break;
|
||||||
|
font--;
|
||||||
|
}
|
||||||
|
return font;
|
||||||
}
|
}
|
||||||
|
|
||||||
CommandProcessor& number(int16_t x, int16_t y, int16_t w, int16_t h, int32_t n, uint16_t options = FTDI::OPT_CENTER) {
|
CommandProcessor& number(int16_t x, int16_t y, int16_t w, int16_t h, int32_t n, uint16_t options = FTDI::OPT_CENTER) {
|
||||||
|
@ -299,14 +327,19 @@ class CommandProcessor : public CLCD::CommandFifo {
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T> FORCEDINLINE
|
template<typename T>
|
||||||
CommandProcessor& text(int16_t x, int16_t y, int16_t w, int16_t h, T text, uint16_t options = FTDI::OPT_CENTER) {
|
CommandProcessor& text(int16_t x, int16_t y, int16_t w, int16_t h, T text, uint16_t options = FTDI::OPT_CENTER) {
|
||||||
using namespace FTDI;
|
using namespace FTDI;
|
||||||
apply_text_alignment(x, y, w, h, options);
|
apply_text_alignment(x, y, w, h, options);
|
||||||
#ifdef TOUCH_UI_USE_UTF8
|
#ifdef TOUCH_UI_FIT_TEXT
|
||||||
draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(_font), options);
|
const int8_t font = apply_fit_text(w, h, text);
|
||||||
#else
|
#else
|
||||||
CLCD::CommandFifo::text(x, y, _font, options);
|
const int8_t font = _font;
|
||||||
|
#endif
|
||||||
|
#ifdef TOUCH_UI_USE_UTF8
|
||||||
|
draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(font), options);
|
||||||
|
#else
|
||||||
|
CLCD::CommandFifo::text(x, y, font, options);
|
||||||
CLCD::CommandFifo::str(text);
|
CLCD::CommandFifo::str(text);
|
||||||
#endif
|
#endif
|
||||||
return *this;
|
return *this;
|
||||||
|
@ -319,8 +352,8 @@ class CommandProcessor : public CLCD::CommandFifo {
|
||||||
cmd(BITMAP_TRANSFORM_A(uint32_t(float(256)/scale)));
|
cmd(BITMAP_TRANSFORM_A(uint32_t(float(256)/scale)));
|
||||||
cmd(BITMAP_TRANSFORM_E(uint32_t(float(256)/scale)));
|
cmd(BITMAP_TRANSFORM_E(uint32_t(float(256)/scale)));
|
||||||
}
|
}
|
||||||
cmd(BITMAP_SIZE(info.filter, info.wrapx, info.wrapy, info.width * scale, info.height * scale));
|
cmd(BITMAP_SIZE(info.filter, info.wrapx, info.wrapy, info.width*scale, info.height*scale));
|
||||||
cmd(VERTEX2F((x + w / 2 - info.width * scale / 2) * 16, (y + h / 2 - info.height * scale / 2) * 16));
|
cmd(VERTEX2F((x + w/2 - info.width*scale/2)*16, (y + h/2 - info.height*scale/2)*16));
|
||||||
if (scale != 1) {
|
if (scale != 1) {
|
||||||
cmd(BITMAP_TRANSFORM_A(256));
|
cmd(BITMAP_TRANSFORM_A(256));
|
||||||
cmd(BITMAP_TRANSFORM_E(256));
|
cmd(BITMAP_TRANSFORM_E(256));
|
||||||
|
@ -333,11 +366,16 @@ class CommandProcessor : public CLCD::CommandFifo {
|
||||||
using namespace FTDI;
|
using namespace FTDI;
|
||||||
bool styleModified = false;
|
bool styleModified = false;
|
||||||
if (_btn_style_callback) styleModified = _btn_style_callback(*this, _tag, _style, options, false);
|
if (_btn_style_callback) styleModified = _btn_style_callback(*this, _tag, _style, options, false);
|
||||||
CLCD::CommandFifo::button(x, y, w, h, _font, options);
|
#ifdef TOUCH_UI_FIT_TEXT
|
||||||
|
const int8_t font = apply_fit_text(w, h, text);
|
||||||
|
#else
|
||||||
|
const int8_t font = _font;
|
||||||
|
#endif
|
||||||
|
CLCD::CommandFifo::button(x, y, w, h, font, options);
|
||||||
#ifdef TOUCH_UI_USE_UTF8
|
#ifdef TOUCH_UI_USE_UTF8
|
||||||
apply_text_alignment(x, y, w, h, OPT_CENTER);
|
apply_text_alignment(x, y, w, h, OPT_CENTER);
|
||||||
CLCD::CommandFifo::str(F(""));
|
CLCD::CommandFifo::str(F(""));
|
||||||
draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(_font), OPT_CENTER);
|
draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(font), OPT_CENTER);
|
||||||
#else
|
#else
|
||||||
CLCD::CommandFifo::str(text);
|
CLCD::CommandFifo::str(text);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
/*****************
|
||||||
|
* language.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 "../compat.h"
|
||||||
|
|
||||||
|
#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LANGUAGE_MENU)
|
||||||
|
|
||||||
|
#include "language_de.h"
|
||||||
|
#include "language_en.h"
|
||||||
|
#include "language_fr.h"
|
||||||
|
|
||||||
|
PROGMEM Language_List languages = {
|
||||||
|
&Language_de::strings,
|
||||||
|
&Language_en::strings,
|
||||||
|
&Language_fr::strings
|
||||||
|
};
|
||||||
|
|
||||||
|
uint8_t get_language_count() {
|
||||||
|
return sizeof(languages)/sizeof(languages[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint8_t lang = 0;
|
||||||
|
|
||||||
|
void set_language(uint8_t l) {
|
||||||
|
lang = l;
|
||||||
|
};
|
||||||
|
|
||||||
|
const char *get_text(uint8_t lang, String_Indices index) {
|
||||||
|
const Language_Strings* strings = (const Language_Strings*) pgm_read_ptr(&languages[lang]);
|
||||||
|
return (const char *)pgm_read_ptr(&(*strings)[int(index)]);
|
||||||
|
};
|
||||||
|
|
||||||
|
const char *get_text(String_Indices index) {
|
||||||
|
return get_text(lang, index);
|
||||||
|
};
|
||||||
|
#endif
|
46
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h
Normal file
46
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
/**************
|
||||||
|
* language.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
|
||||||
|
|
||||||
|
enum class String_Indices { LANGUAGE_STRINGS, COUNT };
|
||||||
|
|
||||||
|
typedef const char Language_Str[];
|
||||||
|
typedef const char* const Language_Strings[int(String_Indices::COUNT)];
|
||||||
|
typedef const Language_Strings* const Language_List[];
|
||||||
|
|
||||||
|
#ifndef TOUCH_UI_LANGUAGE_MENU
|
||||||
|
// Default mode, support only one language.
|
||||||
|
#define __GET_TEXTF(MSG,LANG) Language_##LANG::MSG
|
||||||
|
#define _GET_TEXTF(MSG,LANG) __GET_TEXTF(MSG,LANG)
|
||||||
|
#define GET_TEXTF(MSG) reinterpret_cast<const __FlashStringHelper *>(_GET_TEXTF(MSG,LCD_LANGUAGE))
|
||||||
|
#define GET_TEXT(MSG) _GET_TEXTF(MSG,LCD_LANGUAGE)
|
||||||
|
#define MAKE_LANGUAGE_STRINGS()
|
||||||
|
#else
|
||||||
|
// Support multiple languages at run-time.
|
||||||
|
uint8_t get_language_count();
|
||||||
|
void set_language(uint8_t index);
|
||||||
|
const char *get_text(String_Indices index);
|
||||||
|
const char *get_text(uint8_t lang, String_Indices index);
|
||||||
|
#define GET_TEXT(MSG) get_text(String_Indices::MSG)
|
||||||
|
#define GET_TEXTF(MSG) reinterpret_cast<const __FlashStringHelper *>(get_text(String_Indices::MSG))
|
||||||
|
#define MAKE_LANGUAGE_STRINGS() PROGMEM Language_Strings strings = { LANGUAGE_STRINGS }
|
||||||
|
#endif
|
|
@ -0,0 +1,84 @@
|
||||||
|
/*****************
|
||||||
|
* language_de.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"
|
||||||
|
|
||||||
|
namespace Language_de {
|
||||||
|
using namespace Language_en;
|
||||||
|
|
||||||
|
PROGMEM Language_Str LANGUAGE = u8"Deutsche";
|
||||||
|
|
||||||
|
PROGMEM Language_Str YES = u8"JA";
|
||||||
|
PROGMEM Language_Str NO = u8"NEIN";
|
||||||
|
PROGMEM Language_Str BACK = u8"Zurück";
|
||||||
|
|
||||||
|
PROGMEM Language_Str MOVE_AXIS = u8"Achsen bewegen";
|
||||||
|
PROGMEM Language_Str MOTORS_OFF = u8"Motoren deaktivieren";
|
||||||
|
PROGMEM Language_Str TEMPERATURE = u8"Temperatur";
|
||||||
|
PROGMEM Language_Str CHANGE_FILAMENT = u8"Filament wechseln";
|
||||||
|
PROGMEM Language_Str ADVANCED_SETTINGS = u8"Erw. Einstellungen";
|
||||||
|
PROGMEM Language_Str ABOUT_PRINTER = u8"Über den Drucker";
|
||||||
|
PROGMEM Language_Str PRINTER_STATISTICS = u8"Drucker-Statistik";
|
||||||
|
|
||||||
|
PROGMEM Language_Str ZPROBE_ZOFFSET = u8"Sondenversatz Z";
|
||||||
|
PROGMEM Language_Str TOOL_OFFSETS = u8"Werkzeugversätze";
|
||||||
|
PROGMEM Language_Str VELOCITY = u8"Geschwindigkeit";
|
||||||
|
PROGMEM Language_Str ACCELERATION = u8"Beschleunigung";
|
||||||
|
PROGMEM Language_Str ACCEL_PRINTING = u8"Beschleunigung";
|
||||||
|
PROGMEM Language_Str ACCEL_TRAVEL = u8"A Einzug";
|
||||||
|
PROGMEM Language_Str ACCEL_RETRACT = u8"A Leerfahrt";
|
||||||
|
PROGMEM Language_Str BACKLASH = u8"Spiel";
|
||||||
|
PROGMEM Language_Str SMOOTHING = u8"Glätten";
|
||||||
|
PROGMEM Language_Str CORRECTION = u8"Korrektur";
|
||||||
|
PROGMEM Language_Str ENDSTOPS = u8"Endstopp";
|
||||||
|
PROGMEM Language_Str SOFT_ENDSTOPS = u8"Software-Endstopp";
|
||||||
|
PROGMEM Language_Str RESTORE_DEFAULTS = u8"Standardwerte laden";
|
||||||
|
|
||||||
|
|
||||||
|
PROGMEM Language_Str HOTEND = u8"Düse";
|
||||||
|
PROGMEM Language_Str HOTEND1 = u8"Düse 1";
|
||||||
|
PROGMEM Language_Str HOTEND2 = u8"Düse 2";
|
||||||
|
PROGMEM Language_Str HOTEND3 = u8"Düse 3";
|
||||||
|
PROGMEM Language_Str HOTEND4 = u8"Düse 4";
|
||||||
|
PROGMEM Language_Str BED = u8"Bett";
|
||||||
|
PROGMEM Language_Str AXIS_ALL = u8"Alle";
|
||||||
|
|
||||||
|
PROGMEM Language_Str FAN_SPEED = u8"Lüfter";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PRINT_FILE = u8"Drucken";
|
||||||
|
|
||||||
|
PROGMEM Language_Str RESUME_PRINT = u8"SD-Druck fortsetzen";
|
||||||
|
PROGMEM Language_Str PAUSE_PRINT = u8"SD-Druck pausieren";
|
||||||
|
PROGMEM Language_Str STOP_PRINT = u8"SD-Druck abbrechen";
|
||||||
|
|
||||||
|
PROGMEM Language_Str INFO_PRINT_COUNT = u8"Gesamte Drucke";
|
||||||
|
PROGMEM Language_Str INFO_COMPLETED_PRINTS = u8"Komplette Drucke";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_TIME = u8"Gesamte Druckzeit";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_LONGEST = u8"Längste Druckzeit";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_FILAMENT = u8"Gesamt Extrudiert";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PRINTER_HALTED = u8"DRUCKER GESTOPPT";
|
||||||
|
PROGMEM Language_Str PLEASE_RESET = u8"Bitte neustarten";
|
||||||
|
|
||||||
|
MAKE_LANGUAGE_STRINGS();
|
||||||
|
}; // namespace Language_de
|
410
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h
Normal file
410
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h
Normal file
|
@ -0,0 +1,410 @@
|
||||||
|
/*****************
|
||||||
|
* language_en.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
|
||||||
|
|
||||||
|
// The list LANGUAGE_STRINGS should define all the strings used in the default
|
||||||
|
// language (Language_en). Translations do *not* need to re-define this.
|
||||||
|
|
||||||
|
#define LANGUAGE_STRINGS \
|
||||||
|
LANGUAGE, \
|
||||||
|
YES, \
|
||||||
|
NO, \
|
||||||
|
BACK, \
|
||||||
|
COLOR_TOUCH_PANEL, \
|
||||||
|
ABOUT_ALEPH_OBJECTS, OKAY, \
|
||||||
|
FIRMWARE_FOR_TOOLHEAD, \
|
||||||
|
AUTO_HOME, \
|
||||||
|
CLEAN_NOZZLE, \
|
||||||
|
CHANGE_FILAMENT, \
|
||||||
|
ADVANCED_SETTINGS, \
|
||||||
|
PRINTER_STATISTICS, \
|
||||||
|
ABOUT_PRINTER, \
|
||||||
|
MOTORS_OFF, \
|
||||||
|
ZPROBE_ZOFFSET, \
|
||||||
|
STEPS_PER_MM, \
|
||||||
|
HOME_SENSE, \
|
||||||
|
TOOL_OFFSETS, \
|
||||||
|
MOTOR_CURRENT, \
|
||||||
|
FILAMENT, \
|
||||||
|
ENDSTOPS, \
|
||||||
|
X_MAX, \
|
||||||
|
X_MIN, \
|
||||||
|
Y_MAX, \
|
||||||
|
Y_MIN, \
|
||||||
|
Z_MAX, \
|
||||||
|
Z_MIN, \
|
||||||
|
Z_PROBE, \
|
||||||
|
RUNOUT_1, \
|
||||||
|
RUNOUT_2, \
|
||||||
|
SOFT_ENDSTOPS, \
|
||||||
|
DISPLAY_MENU, \
|
||||||
|
INTERFACE_SETTINGS, \
|
||||||
|
RESTORE_DEFAULTS, \
|
||||||
|
VELOCITY, \
|
||||||
|
VMAX_X, \
|
||||||
|
VMAX_Y, \
|
||||||
|
VMAX_Z, \
|
||||||
|
VMAX_E1, \
|
||||||
|
VMAX_E2, \
|
||||||
|
VMAX_E3, \
|
||||||
|
VMAX_E4, \
|
||||||
|
ACCELERATION, \
|
||||||
|
ACCEL_PRINTING, \
|
||||||
|
ACCEL_TRAVEL, \
|
||||||
|
ACCEL_RETRACT, \
|
||||||
|
AMAX_X, \
|
||||||
|
AMAX_Y, \
|
||||||
|
AMAX_Z, \
|
||||||
|
AMAX_E1, \
|
||||||
|
AMAX_E2, \
|
||||||
|
AMAX_E3, \
|
||||||
|
AMAX_E4, \
|
||||||
|
JERK, \
|
||||||
|
JUNCTION_DEVIATION, \
|
||||||
|
BACKLASH, \
|
||||||
|
MEASURE_AUTOMATICALLY, \
|
||||||
|
H_OFFSET, \
|
||||||
|
V_OFFSET, \
|
||||||
|
TOUCH_SCREEN, \
|
||||||
|
CALIBRATE, \
|
||||||
|
HOME, \
|
||||||
|
UNITS_MILLIAMP, \
|
||||||
|
UNITS_MM, \
|
||||||
|
UNITS_MM_S, \
|
||||||
|
UNITS_MM_S2, \
|
||||||
|
UNITS_STEP_MM, \
|
||||||
|
UNITS_PERCENT, \
|
||||||
|
UNITS_C, \
|
||||||
|
TEMP_IDLE, \
|
||||||
|
MATERIAL_PLA, \
|
||||||
|
MATERIAL_ABS, \
|
||||||
|
MATERIAL_HIGH_TEMP, \
|
||||||
|
AXIS_X, \
|
||||||
|
AXIS_Y, \
|
||||||
|
AXIS_Z, \
|
||||||
|
AXIS_E, \
|
||||||
|
AXIS_E1, \
|
||||||
|
AXIS_E2, \
|
||||||
|
AXIS_E3, \
|
||||||
|
AXIS_E4, \
|
||||||
|
AXIS_ALL, \
|
||||||
|
HOTEND, \
|
||||||
|
HOTEND1, \
|
||||||
|
HOTEND2, \
|
||||||
|
HOTEND3, \
|
||||||
|
HOTEND4, \
|
||||||
|
BED, \
|
||||||
|
SMOOTHING, \
|
||||||
|
CORRECTION, \
|
||||||
|
PRINTING, \
|
||||||
|
SET_MAXIMUM, \
|
||||||
|
RUNOUT_SENSOR, \
|
||||||
|
DETECTION_THRESHOLD, \
|
||||||
|
DISTANCE, \
|
||||||
|
TEMPERATURE, \
|
||||||
|
COOLDOWN, \
|
||||||
|
FAN_SPEED, \
|
||||||
|
PRINT_SPEED, \
|
||||||
|
SPEED, \
|
||||||
|
MOVE_AXIS, \
|
||||||
|
LINEAR_ADVANCE, \
|
||||||
|
LINEAR_ADVANCE_K, \
|
||||||
|
LINEAR_ADVANCE_K1, \
|
||||||
|
LINEAR_ADVANCE_K2, \
|
||||||
|
LINEAR_ADVANCE_K3, \
|
||||||
|
LINEAR_ADVANCE_K4, \
|
||||||
|
NUDGE_NOZZLE, \
|
||||||
|
ADJUST_BOTH_NOZZLES, \
|
||||||
|
SHOW_OFFSETS, \
|
||||||
|
INCREMENT, \
|
||||||
|
ERASE_FLASH_WARNING, \
|
||||||
|
ERASING, \
|
||||||
|
ERASED, \
|
||||||
|
CALIBRATION_WARNING, \
|
||||||
|
ABORT_WARNING, \
|
||||||
|
EXTRUDER_SELECTION, \
|
||||||
|
CURRENT_TEMPERATURE, \
|
||||||
|
REMOVAL_TEMPERATURE, \
|
||||||
|
HEATING, \
|
||||||
|
CAUTION, \
|
||||||
|
HOT, \
|
||||||
|
UNLOAD_FILAMENT, \
|
||||||
|
LOAD_FILAMENT, \
|
||||||
|
MOMENTARY, \
|
||||||
|
CONTINUOUS, \
|
||||||
|
PLEASE_WAIT, \
|
||||||
|
PRINT_MENU, \
|
||||||
|
FINE_MOTION, \
|
||||||
|
MEDIA, \
|
||||||
|
ENABLE_MEDIA, \
|
||||||
|
INSERT_MEDIA, \
|
||||||
|
MENU, \
|
||||||
|
LCD_BRIGHTNESS, \
|
||||||
|
SOUND_VOLUME, \
|
||||||
|
SCREEN_LOCK, \
|
||||||
|
BOOT_SCREEN, \
|
||||||
|
INTERFACE_SOUNDS, \
|
||||||
|
EEPROM_RESTORED, \
|
||||||
|
EEPROM_RESET, \
|
||||||
|
EEPROM_SAVED, \
|
||||||
|
EEPROM_SAVE_PROMPT, \
|
||||||
|
EEPROM_RESET_WARNING, \
|
||||||
|
OPEN_DIR, \
|
||||||
|
PRINT_FILE, \
|
||||||
|
PRINT_STARTING, \
|
||||||
|
PRINT_FINISHED, \
|
||||||
|
PRINT_ERROR, \
|
||||||
|
PASSCODE_REJECTED, \
|
||||||
|
PASSCODE_ACCEPTED, \
|
||||||
|
PASSCODE_SELECT, \
|
||||||
|
PASSCODE_REQUEST, \
|
||||||
|
PRINTER_HALTED, \
|
||||||
|
PLEASE_RESET, \
|
||||||
|
CLICK_SOUNDS, \
|
||||||
|
INFO_PRINT_COUNT, \
|
||||||
|
INFO_COMPLETED_PRINTS, \
|
||||||
|
INFO_PRINT_TIME, \
|
||||||
|
INFO_PRINT_LONGEST, \
|
||||||
|
INFO_PRINT_FILAMENT, \
|
||||||
|
RESUME_PRINT, \
|
||||||
|
PAUSE_PRINT, \
|
||||||
|
STOP_PRINT, \
|
||||||
|
TOUCH_CALIBRATION_START, \
|
||||||
|
TOUCH_CALIBRATION_PROMPT \
|
||||||
|
LULZBOT_BIOPRINTER_STRINGS
|
||||||
|
|
||||||
|
#ifndef LULZBOT_USE_BIOPRINTER_UI
|
||||||
|
#define LULZBOT_BIOPRINTER_STRINGS
|
||||||
|
#else
|
||||||
|
#define LULZBOT_BIOPRINTER_STRINGS ,\
|
||||||
|
MAIN_MENU, \
|
||||||
|
UNLOCK_XY_AXIS, \
|
||||||
|
LOAD_SYRINGE, \
|
||||||
|
BED_TEMPERATURE, \
|
||||||
|
LOADING_WARNING, \
|
||||||
|
HOMING_WARNING
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "language.h" // This must be included after LANGUAGE_STRINGS
|
||||||
|
|
||||||
|
// The string table for this language.
|
||||||
|
|
||||||
|
namespace Language_en {
|
||||||
|
PROGMEM Language_Str LANGUAGE = u8"English";
|
||||||
|
|
||||||
|
PROGMEM Language_Str YES = u8"Yes";
|
||||||
|
PROGMEM Language_Str NO = u8"No";
|
||||||
|
PROGMEM Language_Str BACK = u8"Back";
|
||||||
|
PROGMEM Language_Str OKAY = u8"Okay";
|
||||||
|
PROGMEM Language_Str MENU = u8"Menu";
|
||||||
|
PROGMEM Language_Str MEDIA = u8"Media";
|
||||||
|
|
||||||
|
PROGMEM Language_Str AUTO_HOME = u8"Auto Home";
|
||||||
|
PROGMEM Language_Str CLEAN_NOZZLE = u8"Clean Nozzle";
|
||||||
|
PROGMEM Language_Str MOVE_AXIS = u8"Move Axis";
|
||||||
|
PROGMEM Language_Str MOTORS_OFF = u8"Motors Off";
|
||||||
|
PROGMEM Language_Str TEMPERATURE = u8"Temperature";
|
||||||
|
PROGMEM Language_Str CHANGE_FILAMENT = u8"Change Filament";
|
||||||
|
PROGMEM Language_Str ADVANCED_SETTINGS = u8"Advanced Settings";
|
||||||
|
PROGMEM Language_Str ABOUT_PRINTER = u8"About Printer";
|
||||||
|
PROGMEM Language_Str PRINTER_STATISTICS = u8"Printer Statistics";
|
||||||
|
|
||||||
|
PROGMEM Language_Str ZPROBE_ZOFFSET = u8"Z Offset";
|
||||||
|
PROGMEM Language_Str STEPS_PER_MM = u8"Steps/mm";
|
||||||
|
PROGMEM Language_Str TOOL_OFFSETS = u8"Tool Offsets";
|
||||||
|
PROGMEM Language_Str VELOCITY = u8"Velocity";
|
||||||
|
PROGMEM Language_Str VMAX_X = u8"Vmax X";
|
||||||
|
PROGMEM Language_Str VMAX_Y = u8"Vmax Y";
|
||||||
|
PROGMEM Language_Str VMAX_Z = u8"Vmax Z";
|
||||||
|
PROGMEM Language_Str VMAX_E1 = u8"Vmax E1";
|
||||||
|
PROGMEM Language_Str VMAX_E2 = u8"Vmax E2";
|
||||||
|
PROGMEM Language_Str VMAX_E3 = u8"Vmax E3";
|
||||||
|
PROGMEM Language_Str VMAX_E4 = u8"Vmax E4";
|
||||||
|
PROGMEM Language_Str ACCELERATION = u8"Acceleration";
|
||||||
|
PROGMEM Language_Str ACCEL_PRINTING = u8"Printing";
|
||||||
|
PROGMEM Language_Str ACCEL_TRAVEL = u8"Travel";
|
||||||
|
PROGMEM Language_Str ACCEL_RETRACT = u8"Retraction";
|
||||||
|
PROGMEM Language_Str AMAX_X = u8"Amax X";
|
||||||
|
PROGMEM Language_Str AMAX_Y = u8"Amax Y";
|
||||||
|
PROGMEM Language_Str AMAX_Z = u8"Amax Z";
|
||||||
|
PROGMEM Language_Str AMAX_E1 = u8"Amax E1";
|
||||||
|
PROGMEM Language_Str AMAX_E2 = u8"Amax E2";
|
||||||
|
PROGMEM Language_Str AMAX_E3 = u8"Amax E3";
|
||||||
|
PROGMEM Language_Str AMAX_E4 = u8"Amax E4";
|
||||||
|
PROGMEM Language_Str JERK = u8"Jerk";
|
||||||
|
PROGMEM Language_Str JUNCTION_DEVIATION = u8"Junc Dev";
|
||||||
|
PROGMEM Language_Str BACKLASH = u8"Backlash";
|
||||||
|
PROGMEM Language_Str SMOOTHING = u8"Smoothing";
|
||||||
|
PROGMEM Language_Str CORRECTION = u8"Correction";
|
||||||
|
PROGMEM Language_Str MOTOR_CURRENT = u8"Currents";
|
||||||
|
PROGMEM Language_Str FILAMENT = u8"Filament";
|
||||||
|
PROGMEM Language_Str ENDSTOPS = u8"Endstops";
|
||||||
|
PROGMEM Language_Str SOFT_ENDSTOPS = u8"Soft Endstops";
|
||||||
|
PROGMEM Language_Str RESTORE_DEFAULTS = u8"Restore Defaults";
|
||||||
|
|
||||||
|
PROGMEM Language_Str HOTEND = u8"Hot End";
|
||||||
|
PROGMEM Language_Str HOTEND1 = u8"Hot End 1";
|
||||||
|
PROGMEM Language_Str HOTEND2 = u8"Hot End 2";
|
||||||
|
PROGMEM Language_Str HOTEND3 = u8"Hot End 3";
|
||||||
|
PROGMEM Language_Str HOTEND4 = u8"Hot End 4";
|
||||||
|
PROGMEM Language_Str BED = u8"Bed";
|
||||||
|
PROGMEM Language_Str AXIS_X = u8"X";
|
||||||
|
PROGMEM Language_Str AXIS_Y = u8"Y";
|
||||||
|
PROGMEM Language_Str AXIS_Z = u8"Z";
|
||||||
|
PROGMEM Language_Str AXIS_E = u8"E";
|
||||||
|
PROGMEM Language_Str AXIS_E1 = u8"E1";
|
||||||
|
PROGMEM Language_Str AXIS_E2 = u8"E2";
|
||||||
|
PROGMEM Language_Str AXIS_E3 = u8"E3";
|
||||||
|
PROGMEM Language_Str AXIS_E4 = u8"E4";
|
||||||
|
PROGMEM Language_Str AXIS_ALL = u8"All";
|
||||||
|
PROGMEM Language_Str HOME = u8"Home";
|
||||||
|
|
||||||
|
PROGMEM Language_Str FAN_SPEED = u8"Fan Speed";
|
||||||
|
PROGMEM Language_Str RUNOUT_SENSOR = u8"Runout Sensor";
|
||||||
|
|
||||||
|
PROGMEM Language_Str OPEN_DIR = u8"Open";
|
||||||
|
PROGMEM Language_Str PRINT_FILE = u8"Print";
|
||||||
|
|
||||||
|
PROGMEM Language_Str RESUME_PRINT = u8"Resume Print";
|
||||||
|
PROGMEM Language_Str PAUSE_PRINT = u8"Pause Print";
|
||||||
|
PROGMEM Language_Str STOP_PRINT = u8"Stop Print";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PRINT_STARTING = u8"Print starting";
|
||||||
|
PROGMEM Language_Str PRINT_FINISHED = u8"Print finished";
|
||||||
|
PROGMEM Language_Str PRINT_ERROR = u8"Print error";
|
||||||
|
|
||||||
|
PROGMEM Language_Str INFO_PRINT_COUNT = u8"Print Count";
|
||||||
|
PROGMEM Language_Str INFO_COMPLETED_PRINTS = u8"Total Prints";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_TIME = u8"Total Print Time";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_LONGEST = u8"Longest Print";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_FILAMENT = u8"Filament Used";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PRINTER_HALTED = u8"PRINTER HALTED";
|
||||||
|
PROGMEM Language_Str PLEASE_RESET = u8"Please reset";
|
||||||
|
|
||||||
|
PROGMEM Language_Str COLOR_TOUCH_PANEL = u8"Color Touch Panel";
|
||||||
|
PROGMEM Language_Str ABOUT_ALEPH_OBJECTS = u8"(C) 2019 Aleph Objects, Inc.\n\nwww.lulzbot.com";
|
||||||
|
|
||||||
|
PROGMEM Language_Str FIRMWARE_FOR_TOOLHEAD = u8"Firmware for toolhead:\n%s\n\n";
|
||||||
|
|
||||||
|
PROGMEM Language_Str HOME_SENSE = u8"Home Sense";
|
||||||
|
PROGMEM Language_Str X_MAX = u8"X Max";
|
||||||
|
PROGMEM Language_Str X_MIN = u8"X Min";
|
||||||
|
PROGMEM Language_Str Y_MAX = u8"Y Max";
|
||||||
|
PROGMEM Language_Str Y_MIN = u8"Y Min";
|
||||||
|
PROGMEM Language_Str Z_MAX = u8"Z Max";
|
||||||
|
PROGMEM Language_Str Z_MIN = u8"Z Min";
|
||||||
|
PROGMEM Language_Str Z_PROBE = u8"Z Probe";
|
||||||
|
PROGMEM Language_Str RUNOUT_1 = u8"Runout 1";
|
||||||
|
PROGMEM Language_Str RUNOUT_2 = u8"Runout 2";
|
||||||
|
PROGMEM Language_Str DISPLAY_MENU = u8"Display";
|
||||||
|
PROGMEM Language_Str INTERFACE_SETTINGS = u8"Interface Settings";
|
||||||
|
PROGMEM Language_Str MEASURE_AUTOMATICALLY = u8"Measure automatically";
|
||||||
|
PROGMEM Language_Str H_OFFSET = u8"H Offset";
|
||||||
|
PROGMEM Language_Str V_OFFSET = u8"V Offset";
|
||||||
|
PROGMEM Language_Str TOUCH_SCREEN = u8"Touch Screen";
|
||||||
|
PROGMEM Language_Str CALIBRATE = u8"Calibrate";
|
||||||
|
|
||||||
|
PROGMEM Language_Str UNITS_MILLIAMP = u8"mA";
|
||||||
|
PROGMEM Language_Str UNITS_MM = u8"mm";
|
||||||
|
PROGMEM Language_Str UNITS_MM_S = u8"mm/s";
|
||||||
|
PROGMEM Language_Str UNITS_MM_S2 = u8"mm/s^2";
|
||||||
|
PROGMEM Language_Str UNITS_STEP_MM = u8"st/mm";
|
||||||
|
PROGMEM Language_Str UNITS_PERCENT = u8"%";
|
||||||
|
#if defined(TOUCH_UI_USE_UTF8) && defined(TOUCH_UI_UTF8_WESTERN_CHARSET)
|
||||||
|
PROGMEM Language_Str UNITS_C = u8"°C";
|
||||||
|
#else
|
||||||
|
PROGMEM Language_Str UNITS_C = u8" C";
|
||||||
|
#endif
|
||||||
|
PROGMEM Language_Str MATERIAL_PLA = u8"PLA";
|
||||||
|
PROGMEM Language_Str MATERIAL_ABS = u8"ABS";
|
||||||
|
PROGMEM Language_Str MATERIAL_HIGH_TEMP = u8"High";
|
||||||
|
PROGMEM Language_Str TEMP_IDLE = u8"idle";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PRINTING = u8"Printing";
|
||||||
|
PROGMEM Language_Str SET_MAXIMUM = u8"Set Maximum";
|
||||||
|
PROGMEM Language_Str DETECTION_THRESHOLD = u8"Detection Threshold";
|
||||||
|
PROGMEM Language_Str DISTANCE = u8"Distance";
|
||||||
|
PROGMEM Language_Str COOLDOWN = u8"Cooldown (All Off)";
|
||||||
|
PROGMEM Language_Str PRINT_SPEED = u8"Print Speed";
|
||||||
|
PROGMEM Language_Str SPEED = u8"Speed";
|
||||||
|
PROGMEM Language_Str LINEAR_ADVANCE = u8"Linear Advance";
|
||||||
|
PROGMEM Language_Str LINEAR_ADVANCE_K = u8"K";
|
||||||
|
PROGMEM Language_Str LINEAR_ADVANCE_K1 = u8"K E1";
|
||||||
|
PROGMEM Language_Str LINEAR_ADVANCE_K2 = u8"K E2";
|
||||||
|
PROGMEM Language_Str LINEAR_ADVANCE_K3 = u8"K E3";
|
||||||
|
PROGMEM Language_Str LINEAR_ADVANCE_K4 = u8"K E4";
|
||||||
|
PROGMEM Language_Str NUDGE_NOZZLE = u8"Nudge Nozzle";
|
||||||
|
PROGMEM Language_Str ADJUST_BOTH_NOZZLES = u8"Adjust Both Nozzles";
|
||||||
|
PROGMEM Language_Str SHOW_OFFSETS = u8"Show Offsets";
|
||||||
|
PROGMEM Language_Str INCREMENT = u8"Increment";
|
||||||
|
PROGMEM Language_Str ERASE_FLASH_WARNING = u8"Are you sure? SPI flash will be erased.";
|
||||||
|
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 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";
|
||||||
|
PROGMEM Language_Str REMOVAL_TEMPERATURE = u8"Removal Temp";
|
||||||
|
PROGMEM Language_Str HEATING = u8"Heating";
|
||||||
|
PROGMEM Language_Str CAUTION = u8"Caution:";
|
||||||
|
PROGMEM Language_Str HOT = u8"Hot!";
|
||||||
|
PROGMEM Language_Str UNLOAD_FILAMENT = u8"Unload";
|
||||||
|
PROGMEM Language_Str LOAD_FILAMENT = u8"Load/Extruder";
|
||||||
|
PROGMEM Language_Str MOMENTARY = u8"Momentary";
|
||||||
|
PROGMEM Language_Str CONTINUOUS = u8"Continuous";
|
||||||
|
PROGMEM Language_Str PLEASE_WAIT = u8"Please wait...";
|
||||||
|
PROGMEM Language_Str PRINT_MENU = u8"Print Menu";
|
||||||
|
PROGMEM Language_Str FINE_MOTION = u8"Fine motion";
|
||||||
|
PROGMEM Language_Str ENABLE_MEDIA = u8"Enable Media";
|
||||||
|
PROGMEM Language_Str INSERT_MEDIA = u8"Insert Media...";
|
||||||
|
PROGMEM Language_Str LCD_BRIGHTNESS = u8"LCD brightness";
|
||||||
|
PROGMEM Language_Str SOUND_VOLUME = u8"Sound volume";
|
||||||
|
PROGMEM Language_Str SCREEN_LOCK = u8"Screen lock";
|
||||||
|
PROGMEM Language_Str BOOT_SCREEN = u8"Boot screen";
|
||||||
|
PROGMEM Language_Str INTERFACE_SOUNDS = u8"Interface Sounds";
|
||||||
|
PROGMEM Language_Str CLICK_SOUNDS = u8"Click sounds";
|
||||||
|
PROGMEM Language_Str EEPROM_RESTORED = u8"Settings restored from backup";
|
||||||
|
PROGMEM Language_Str EEPROM_RESET = u8"Settings restored to default";
|
||||||
|
PROGMEM Language_Str EEPROM_SAVED = u8"Settings saved!";
|
||||||
|
PROGMEM Language_Str EEPROM_SAVE_PROMPT = u8"Do you wish to save these settings as defaults?";
|
||||||
|
PROGMEM Language_Str EEPROM_RESET_WARNING = u8"Are you sure? Customizations will be lost.";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PASSCODE_REJECTED = u8"Wrong passcode!";
|
||||||
|
PROGMEM Language_Str PASSCODE_ACCEPTED = u8"Passcode accepted!";
|
||||||
|
PROGMEM Language_Str PASSCODE_SELECT = u8"Select Passcode:";
|
||||||
|
PROGMEM Language_Str PASSCODE_REQUEST = u8"Enter Passcode:";
|
||||||
|
|
||||||
|
PROGMEM Language_Str TOUCH_CALIBRATION_START = u8"Release to begin screen calibration";
|
||||||
|
PROGMEM Language_Str TOUCH_CALIBRATION_PROMPT = u8"Touch the dots to calibrate";
|
||||||
|
|
||||||
|
#ifdef LULZBOT_USE_BIOPRINTER_UI
|
||||||
|
PROGMEM Language_Str MAIN_MENU = u8"Main Menu";
|
||||||
|
PROGMEM Language_Str UNLOCK_XY_AXIS = u8"Unlock XY Axis";
|
||||||
|
PROGMEM Language_Str LOAD_SYRINGE = u8"Load Syringe";
|
||||||
|
PROGMEM Language_Str BED_TEMPERATURE = u8"Bed Temperature";
|
||||||
|
PROGMEM Language_Str LOADING_WARNING = u8"About to home to loading position.\nEnsure 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?";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MAKE_LANGUAGE_STRINGS();
|
||||||
|
}; // namespace Language_en
|
|
@ -0,0 +1,90 @@
|
||||||
|
/*****************
|
||||||
|
* language_fr.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"
|
||||||
|
|
||||||
|
namespace Language_fr {
|
||||||
|
using namespace Language_en;
|
||||||
|
|
||||||
|
PROGMEM Language_Str LANGUAGE = u8"Français";
|
||||||
|
|
||||||
|
PROGMEM Language_Str YES = u8"oui";
|
||||||
|
PROGMEM Language_Str NO = u8"non";
|
||||||
|
PROGMEM Language_Str BACK = u8"Retour";
|
||||||
|
|
||||||
|
PROGMEM Language_Str AUTO_HOME = u8"Origine auto";
|
||||||
|
//PROGMEM Language_Str CLEAN_NOZZLE = u8"Clean Nozzle";
|
||||||
|
PROGMEM Language_Str MOVE_AXIS = u8"Déplacer un axe";
|
||||||
|
PROGMEM Language_Str MOTORS_OFF = u8"Arrêter moteurs";
|
||||||
|
PROGMEM Language_Str TEMPERATURE = u8"Température";
|
||||||
|
PROGMEM Language_Str CHANGE_FILAMENT = u8"Changer filament";
|
||||||
|
PROGMEM Language_Str ADVANCED_SETTINGS = u8"Config. avancée";
|
||||||
|
PROGMEM Language_Str ABOUT_PRINTER = u8"Infos imprimante";
|
||||||
|
PROGMEM Language_Str PRINTER_STATISTICS = u8"Stats. imprimante";
|
||||||
|
|
||||||
|
PROGMEM Language_Str ZPROBE_ZOFFSET = u8"Décalage Z";
|
||||||
|
PROGMEM Language_Str STEPS_PER_MM = u8"Pas/mm";
|
||||||
|
PROGMEM Language_Str TOOL_OFFSETS = u8"Offsets Outil";
|
||||||
|
PROGMEM Language_Str VELOCITY = u8"Vélocité";
|
||||||
|
PROGMEM Language_Str ACCELERATION = u8"Accélération";
|
||||||
|
PROGMEM Language_Str ACCEL_PRINTING = u8"A impr.";
|
||||||
|
PROGMEM Language_Str ACCEL_TRAVEL = u8"A dépl.";
|
||||||
|
PROGMEM Language_Str ACCEL_RETRACT = u8"A retrait";
|
||||||
|
PROGMEM Language_Str JUNCTION_DEVIATION = u8"Déviat. jonct.";
|
||||||
|
//PROGMEM Language_Str BACKLASH = u8"Backlash";
|
||||||
|
PROGMEM Language_Str SMOOTHING = u8"Lissage";
|
||||||
|
PROGMEM Language_Str MOTOR_CURRENT = u8"Courant";
|
||||||
|
PROGMEM Language_Str ENDSTOPS = u8"Butées";
|
||||||
|
PROGMEM Language_Str SOFT_ENDSTOPS = u8"Butées SW";
|
||||||
|
PROGMEM Language_Str RESTORE_DEFAULTS = u8"Restaurer défauts";
|
||||||
|
|
||||||
|
|
||||||
|
PROGMEM Language_Str HOTEND = u8"Buse";
|
||||||
|
PROGMEM Language_Str HOTEND1 = u8"Buse 1";
|
||||||
|
PROGMEM Language_Str HOTEND2 = u8"Buse 2";
|
||||||
|
PROGMEM Language_Str HOTEND3 = u8"Buse 3";
|
||||||
|
PROGMEM Language_Str HOTEND4 = u8"Buse 4";
|
||||||
|
PROGMEM Language_Str BED = u8"Lit";
|
||||||
|
PROGMEM Language_Str AXIS_ALL = u8"Tous";
|
||||||
|
PROGMEM Language_Str HOME = u8"Origine";
|
||||||
|
|
||||||
|
PROGMEM Language_Str FAN_SPEED = u8"Vitesse ventil.";
|
||||||
|
PROGMEM Language_Str RUNOUT_SENSOR = u8"Capteur fil.";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PRINT_FILE = u8"Imprimer";
|
||||||
|
|
||||||
|
PROGMEM Language_Str RESUME_PRINT = u8"Reprendre impr.";
|
||||||
|
PROGMEM Language_Str PAUSE_PRINT = u8"Pause impression";
|
||||||
|
PROGMEM Language_Str STOP_PRINT = u8"Arrêter impr.";
|
||||||
|
|
||||||
|
PROGMEM Language_Str INFO_PRINT_COUNT = u8"Nbre impressions";
|
||||||
|
PROGMEM Language_Str INFO_COMPLETED_PRINTS = u8"Terminées";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_TIME = u8"Tps impr. total";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_LONGEST = u8"Impr. la + longue";
|
||||||
|
PROGMEM Language_Str INFO_PRINT_FILAMENT = u8"Total filament";
|
||||||
|
|
||||||
|
PROGMEM Language_Str PRINTER_HALTED = u8"IMPR. STOPPÉE";
|
||||||
|
PROGMEM Language_Str PLEASE_RESET = u8"Redémarrer SVP";
|
||||||
|
|
||||||
|
MAKE_LANGUAGE_STRINGS();
|
||||||
|
}; // namespace Language_fr
|
|
@ -0,0 +1,26 @@
|
||||||
|
/***************
|
||||||
|
* 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"
|
|
@ -49,22 +49,33 @@ void AboutScreen::onRedraw(draw_mode_t) {
|
||||||
#ifdef LULZBOT_LCD_MACHINE_NAME
|
#ifdef LULZBOT_LCD_MACHINE_NAME
|
||||||
LULZBOT_LCD_MACHINE_NAME
|
LULZBOT_LCD_MACHINE_NAME
|
||||||
#else
|
#else
|
||||||
"Color Touch Panel"
|
GET_TEXTF(COLOR_TOUCH_PANEL)
|
||||||
#endif
|
#endif
|
||||||
), OPT_CENTER, font_xlarge);
|
), OPT_CENTER, font_xlarge);
|
||||||
|
|
||||||
|
#ifdef LULZBOT_LCD_TOOLHEAD_NAME
|
||||||
|
char about_str[
|
||||||
|
strlen_P(GET_TEXT(FIRMWARE_FOR_TOOLHEAD)) +
|
||||||
|
strlen_P(LULZBOT_LCD_TOOLHEAD_NAME) +
|
||||||
|
strlen_P(GET_TEXT(ABOUT_ALEPH_OBJECTS)) + 1];
|
||||||
|
|
||||||
|
sprintf_P(about_str, GET_TEXT(FIRMWARE_FOR_TOOLHEAD), LULZBOT_LCD_TOOLHEAD_NAME);
|
||||||
|
strcat_P(about_str, GET_TEXT(ABOUT_ALEPH_OBJECTS));
|
||||||
|
#endif
|
||||||
|
|
||||||
cmd.tag(2);
|
cmd.tag(2);
|
||||||
draw_text_box(cmd, BTN_POS(1,3), BTN_SIZE(4,3), F(
|
draw_text_box(cmd, BTN_POS(1,3), BTN_SIZE(4,3),
|
||||||
#ifdef LULZBOT_LCD_TOOLHEAD_NAME
|
#ifdef LULZBOT_LCD_TOOLHEAD_NAME
|
||||||
"Firmware for toolhead:\n" LULZBOT_LCD_TOOLHEAD_NAME "\n\n"
|
about_str
|
||||||
|
#else
|
||||||
|
GET_TEXTF(ABOUT_ALEPH_OBJECTS)
|
||||||
#endif
|
#endif
|
||||||
"(C) 2019 Aleph Objects, Inc.\n\nwww.lulzbot.com"
|
, OPT_CENTER, font_medium);
|
||||||
), OPT_CENTER, font_medium);
|
|
||||||
|
|
||||||
cmd.tag(0);
|
cmd.tag(0);
|
||||||
draw_text_box(cmd, BTN_POS(1,6), BTN_SIZE(4,2), progmem_str(getFirmwareName_str()), OPT_CENTER, font_medium);
|
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), F("Okay"));
|
cmd.font(font_medium).colors(action_btn).tag(1).button(BTN_POS(2,8), BTN_SIZE(2,1), GET_TEXTF(OKAY));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AboutScreen::onTouchEnd(uint8_t tag) {
|
bool AboutScreen::onTouchEnd(uint8_t tag) {
|
||||||
|
|
|
@ -49,52 +49,52 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), F("Z Offset "))
|
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(ZPROBE_ZOFFSET))
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
.tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), F("Steps/mm"))
|
.tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(STEPS_PER_MM))
|
||||||
#if HAS_TRINAMIC
|
#if HAS_TRINAMIC
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(13).button( BTN_POS(1,5), BTN_SIZE(1,1), F("Motor mA"))
|
.tag(13).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(MOTOR_CURRENT))
|
||||||
#if HAS_TRINAMIC
|
#if HAS_TRINAMIC
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(14).button( BTN_POS(1,4), BTN_SIZE(1,1), F("Bump Sense"))
|
.tag(14).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(HOME_SENSE))
|
||||||
#if HOTENDS > 1
|
#if HOTENDS > 1
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), F("Nozzle Offset"))
|
.tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(TOOL_OFFSETS))
|
||||||
#if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
|
#if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), F("Filament"))
|
.tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXTF(FILAMENT))
|
||||||
.tag(12).button( BTN_POS(1,6), BTN_SIZE(1,1), F("Endstops"))
|
.tag(12).button( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(ENDSTOPS))
|
||||||
.tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), F("Display"))
|
.tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), GET_TEXTF(DISPLAY_MENU))
|
||||||
.tag(9) .button( BTN_POS(1,7), BTN_SIZE(2,1), F("Interface Settings"))
|
.tag(9) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
|
||||||
.tag(10).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Restore Factory Defaults"))
|
.tag(10).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(RESTORE_DEFAULTS))
|
||||||
.tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), F("Velocity "))
|
.tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(VELOCITY))
|
||||||
.tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), F("Acceleration"))
|
.tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(ACCELERATION))
|
||||||
#if ENABLED(JUNCTION_DEVIATION)
|
#if ENABLED(JUNCTION_DEVIATION)
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Junc Dev"))
|
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JUNCTION_DEVIATION))
|
||||||
#else
|
#else
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Jerk"))
|
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JERK))
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(BACKLASH_GCODE)
|
#if ENABLED(BACKLASH_GCODE)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), F("Backlash"))
|
.tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(BACKLASH))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), F("Back"));
|
.tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
#else
|
#else
|
||||||
|
@ -105,47 +105,47 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,2), F("Z Offset "))
|
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,2), GET_TEXTF(ZPROBE_ZOFFSET))
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
.tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), F("Steps/mm"))
|
.tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(STEPS_PER_MM))
|
||||||
#if HAS_TRINAMIC
|
#if HAS_TRINAMIC
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), F("Motor mA"))
|
.tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), GET_TEXTF(MOTOR_CURRENT))
|
||||||
#if HAS_TRINAMIC
|
#if HAS_TRINAMIC
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), F("Bump Sense"))
|
.tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), GET_TEXTF(HOME_SENSE))
|
||||||
#if ENABLED(BACKLASH_GCODE)
|
#if ENABLED(BACKLASH_GCODE)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(8).button( BTN_POS(3,3), BTN_SIZE(1,1), F("Backlash"))
|
.tag(8).button( BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXTF(BACKLASH))
|
||||||
#if HOTENDS > 1
|
#if HOTENDS > 1
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), F("Nozzle Offsets"))
|
.tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXTF(TOOL_OFFSETS))
|
||||||
.tag(12).button( BTN_POS(3,4), BTN_SIZE(1,1), F("Endstops"))
|
.tag(12).button( BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXTF(ENDSTOPS))
|
||||||
.tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), F("Velocity "))
|
.tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(VELOCITY))
|
||||||
.tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), F("Acceleration"))
|
.tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(ACCELERATION))
|
||||||
#if ENABLED(JUNCTION_DEVIATION)
|
#if ENABLED(JUNCTION_DEVIATION)
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Junc Dev"))
|
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JUNCTION_DEVIATION))
|
||||||
#else
|
#else
|
||||||
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Jerk"))
|
.tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JERK))
|
||||||
#endif
|
#endif
|
||||||
.tag(11).button( BTN_POS(1,4), BTN_SIZE(1,1), F("Filament"))
|
.tag(11).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(FILAMENT))
|
||||||
.tag(15).button( BTN_POS(3,5), BTN_SIZE(1,1), F("Display"))
|
.tag(15).button( BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXTF(DISPLAY_MENU))
|
||||||
.tag(9) .button( BTN_POS(1,5), BTN_SIZE(2,1), F("Interface Settings"))
|
.tag(9) .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
|
||||||
.tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), F("Restore Defaults"))
|
.tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(RESTORE_DEFAULTS))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1) .button( BTN_POS(3,6), BTN_SIZE(1,1), F("Back"));
|
.tag(1) .button( BTN_POS(3,6), BTN_SIZE(1,1), GET_TEXTF(BACK));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,17 +32,17 @@ using namespace Theme;
|
||||||
|
|
||||||
void BacklashCompensationScreen::onRedraw(draw_mode_t what) {
|
void BacklashCompensationScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(2).units(PSTR("mm"));
|
w.precision(2).units( GET_TEXTF(UNITS_MM));
|
||||||
w.heading( PSTR("Axis Backlash"));
|
w.heading( GET_TEXTF(BACKLASH));
|
||||||
w.color(x_axis).adjuster(2, PSTR("X:"), getAxisBacklash_mm(X));
|
w.color(x_axis).adjuster(2, GET_TEXTF(AXIS_X), getAxisBacklash_mm(X));
|
||||||
w.color(y_axis).adjuster(4, PSTR("Y:"), getAxisBacklash_mm(Y));
|
w.color(y_axis).adjuster(4, GET_TEXTF(AXIS_Y), getAxisBacklash_mm(Y));
|
||||||
w.color(z_axis).adjuster(6, PSTR("Z:"), getAxisBacklash_mm(Z));
|
w.color(z_axis).adjuster(6, GET_TEXTF(AXIS_Z), getAxisBacklash_mm(Z));
|
||||||
#if ENABLED(CALIBRATION_GCODE)
|
#if ENABLED(CALIBRATION_GCODE)
|
||||||
w.button(12, PSTR("Measure automatically"));
|
w.button(12, GET_TEXTF(MEASURE_AUTOMATICALLY));
|
||||||
#endif
|
#endif
|
||||||
w.color(other).adjuster(8, PSTR("Smoothing:"), getBacklashSmoothing_mm());
|
w.color(other).adjuster(8, GET_TEXTF(SMOOTHING), getBacklashSmoothing_mm());
|
||||||
w.precision(0).units(PSTR("%"))
|
w.precision(0).units(GET_TEXTF(UNITS_PERCENT))
|
||||||
.adjuster(10, PSTR("Correction:"), getBacklashCorrection_percent());
|
.adjuster(10, GET_TEXTF(CORRECTION), getBacklashCorrection_percent());
|
||||||
w.precision(2).increments();
|
w.precision(2).increments();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,15 +50,15 @@ BaseNumericAdjustmentScreen::widgets_t::widgets_t(draw_mode_t what) : _what(what
|
||||||
cmd.font(font_medium)
|
cmd.font(font_medium)
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.tag(1).button( BTN_POS(1,10), BTN_SIZE(13,1), F("Back"))
|
.tag(1).button( BTN_POS(1,10), BTN_SIZE(13,1), GET_TEXTF(BACK))
|
||||||
#else
|
#else
|
||||||
.tag(1).button( BTN_POS(15,7), BTN_SIZE(4,1), F("Back"))
|
.tag(1).button( BTN_POS(15,7), BTN_SIZE(4,1), GET_TEXTF(BACK))
|
||||||
#endif
|
#endif
|
||||||
.colors(normal_btn);
|
.colors(normal_btn);
|
||||||
}
|
}
|
||||||
|
|
||||||
_line = 1;
|
_line = 1;
|
||||||
_units = PSTR("");
|
_units = F("");
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseNumericAdjustmentScreen::widgets_t &BaseNumericAdjustmentScreen::widgets_t::precision(uint8_t decimals, precision_default_t initial) {
|
BaseNumericAdjustmentScreen::widgets_t &BaseNumericAdjustmentScreen::widgets_t::precision(uint8_t decimals, precision_default_t initial) {
|
||||||
|
@ -69,14 +69,14 @@ BaseNumericAdjustmentScreen::widgets_t &BaseNumericAdjustmentScreen::widgets_t::
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::heading(const char *label) {
|
void BaseNumericAdjustmentScreen::widgets_t::heading(progmem_str label) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.font(font_medium).cmd(COLOR_RGB(bg_text_enabled));
|
cmd.font(font_medium).cmd(COLOR_RGB(bg_text_enabled));
|
||||||
if (_what & BACKGROUND) {
|
if (_what & BACKGROUND) {
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
cmd.tag(0).fgcolor(bg_color).button( BTN_POS(1, _line), BTN_SIZE(12,1), progmem_str(label), OPT_FLAT);
|
cmd.tag(0).fgcolor(bg_color).button( BTN_POS(1, _line), BTN_SIZE(12,1), label, OPT_FLAT);
|
||||||
#else
|
#else
|
||||||
cmd.tag(0).fgcolor(bg_color).button( BTN_POS(5, _line), BTN_SIZE(8,1), progmem_str(label), OPT_FLAT);
|
cmd.tag(0).fgcolor(bg_color).button( BTN_POS(5, _line), BTN_SIZE(8,1), label, OPT_FLAT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,9 +140,9 @@ void BaseNumericAdjustmentScreen::widgets_t::increments() {
|
||||||
cmd.fgcolor(bg_color)
|
cmd.fgcolor(bg_color)
|
||||||
.tag(0)
|
.tag(0)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.font(font_small).button( BTN_POS(1, _line), BTN_SIZE(4,1), F("Increment:"), OPT_FLAT);
|
.font(font_small).button( BTN_POS(1, _line), BTN_SIZE(4,1), GET_TEXTF(INCREMENT), OPT_FLAT);
|
||||||
#else
|
#else
|
||||||
.font(font_medium).button( BTN_POS(15,1), BTN_SIZE(4,1), F("Increment:"), OPT_FLAT);
|
.font(font_medium).button( BTN_POS(15,1), BTN_SIZE(4,1), GET_TEXTF(INCREMENT), OPT_FLAT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ void BaseNumericAdjustmentScreen::widgets_t::increments() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, const char *label, const char *value, bool is_enabled) {
|
void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
|
|
||||||
if (_what & BACKGROUND) {
|
if (_what & BACKGROUND) {
|
||||||
|
@ -179,7 +179,7 @@ void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, cons
|
||||||
_line++;
|
_line++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, const char *label, const char *value, bool is_enabled) {
|
void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
|
||||||
if (_what & BACKGROUND) {
|
if (_what & BACKGROUND) {
|
||||||
adjuster_sram_val(tag, label, nullptr);
|
adjuster_sram_val(tag, label, nullptr);
|
||||||
}
|
}
|
||||||
|
@ -191,7 +191,7 @@ void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, const char *l
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, const char *label, float value, bool is_enabled) {
|
void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, progmem_str label, float value, bool is_enabled) {
|
||||||
if (_what & BACKGROUND) {
|
if (_what & BACKGROUND) {
|
||||||
adjuster_sram_val(tag, label, nullptr);
|
adjuster_sram_val(tag, label, nullptr);
|
||||||
}
|
}
|
||||||
|
@ -205,7 +205,7 @@ void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, const char *l
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::button(uint8_t tag, const char *label, bool is_enabled) {
|
void BaseNumericAdjustmentScreen::widgets_t::button(uint8_t tag, progmem_str label, bool is_enabled) {
|
||||||
if (_what & FOREGROUND) {
|
if (_what & FOREGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.colors(normal_btn)
|
cmd.colors(normal_btn)
|
||||||
|
@ -216,13 +216,13 @@ void BaseNumericAdjustmentScreen::widgets_t::button(uint8_t tag, const char *lab
|
||||||
#else
|
#else
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
#endif
|
#endif
|
||||||
.button(BTN_POS(5,_line), BTN_SIZE(9,1), progmem_str(label));
|
.button(BTN_POS(5,_line), BTN_SIZE(9,1), label);
|
||||||
}
|
}
|
||||||
|
|
||||||
_line++;
|
_line++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, const char *label, const char *value, bool is_enabled) {
|
void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
|
|
||||||
if (_what & BACKGROUND) {
|
if (_what & BACKGROUND) {
|
||||||
|
@ -230,7 +230,7 @@ void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, const char
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
.cmd(COLOR_RGB(bg_text_enabled))
|
.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
.fgcolor(_color).tag(0).button( BTN_POS(5,_line), BTN_SIZE(9,1), F(""), OPT_FLAT)
|
.fgcolor(_color).tag(0).button( BTN_POS(5,_line), BTN_SIZE(9,1), F(""), OPT_FLAT)
|
||||||
.fgcolor(bg_color) .tag(0).button( BTN_POS(1,_line), BTN_SIZE(4,1), (progmem_str) label, OPT_FLAT);
|
.fgcolor(bg_color) .tag(0).button( BTN_POS(1,_line), BTN_SIZE(4,1), label, OPT_FLAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_what & FOREGROUND) {
|
if (_what & FOREGROUND) {
|
||||||
|
@ -242,7 +242,7 @@ void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, const char
|
||||||
_line++;
|
_line++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::two_buttons(uint8_t tag1, const char *label1, uint8_t tag2, const char *label2, bool is_enabled) {
|
void BaseNumericAdjustmentScreen::widgets_t::two_buttons(uint8_t tag1, progmem_str label1, uint8_t tag2, progmem_str label2, bool is_enabled) {
|
||||||
if (_what & FOREGROUND) {
|
if (_what & FOREGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.enabled(is_enabled)
|
cmd.enabled(is_enabled)
|
||||||
|
@ -251,23 +251,23 @@ void BaseNumericAdjustmentScreen::widgets_t::two_buttons(uint8_t tag1, const cha
|
||||||
#else
|
#else
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
#endif
|
#endif
|
||||||
.tag(is_enabled ? tag1: 0).button(BTN_POS(5,_line), BTN_SIZE(4.5,1), progmem_str(label1))
|
.tag(is_enabled ? tag1: 0).button(BTN_POS(5,_line), BTN_SIZE(4.5,1), label1)
|
||||||
.tag(is_enabled ? tag2: 0).button(BTN_POS(9.5,_line), BTN_SIZE(4.5,1), progmem_str(label2));
|
.tag(is_enabled ? tag2: 0).button(BTN_POS(9.5,_line), BTN_SIZE(4.5,1), label2);
|
||||||
}
|
}
|
||||||
|
|
||||||
_line++;
|
_line++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, const char *label, const char *text, bool value, bool is_enabled) {
|
void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, progmem_str label, bool value, bool is_enabled) {
|
||||||
if (_what & BACKGROUND) {
|
if (_what & BACKGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.fgcolor(bg_color)
|
cmd.fgcolor(bg_color)
|
||||||
.tag(0)
|
.tag(0)
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.button( BTN_POS(1, _line), BTN_SIZE( 8,1), progmem_str(label), OPT_FLAT);
|
.button( BTN_POS(1, _line), BTN_SIZE( 8,1), label, OPT_FLAT);
|
||||||
#else
|
#else
|
||||||
.button( BTN_POS(1, _line), BTN_SIZE(10,1), progmem_str(label), OPT_FLAT);
|
.button( BTN_POS(1, _line), BTN_SIZE(10,1), label, OPT_FLAT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,9 +278,9 @@ void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, const char *lab
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
.colors(ui_toggle)
|
.colors(ui_toggle)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.toggle(BTN_POS( 9,_line), BTN_SIZE(5,1), progmem_str(text), value);
|
.toggle2(BTN_POS( 9,_line), BTN_SIZE(5,1), GET_TEXTF(NO), GET_TEXTF(YES), value);
|
||||||
#else
|
#else
|
||||||
.toggle(BTN_POS(10,_line), BTN_SIZE(4,1), progmem_str(text), value);
|
.toggle2(BTN_POS(10,_line), BTN_SIZE(4,1), GET_TEXTF(NO), GET_TEXTF(YES), value);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,7 +293,7 @@ void BaseNumericAdjustmentScreen::widgets_t::home_buttons(uint8_t tag) {
|
||||||
cmd.fgcolor(bg_color)
|
cmd.fgcolor(bg_color)
|
||||||
.tag(0)
|
.tag(0)
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
.button( BTN_POS(1, _line), BTN_SIZE(4,1), F("Home:"), OPT_FLAT);
|
.button( BTN_POS(1, _line), BTN_SIZE(4,1), GET_TEXTF(HOME), OPT_FLAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_what & FOREGROUND) {
|
if (_what & FOREGROUND) {
|
||||||
|
@ -304,10 +304,10 @@ void BaseNumericAdjustmentScreen::widgets_t::home_buttons(uint8_t tag) {
|
||||||
#else
|
#else
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
#endif
|
#endif
|
||||||
.tag(tag+0).button(BTN_POS(5,_line), BTN_SIZE(2,1), F("X"))
|
.tag(tag+0).button(BTN_POS(5,_line), BTN_SIZE(2,1), GET_TEXTF(AXIS_X))
|
||||||
.tag(tag+1).button(BTN_POS(7,_line), BTN_SIZE(2,1), F("Y"))
|
.tag(tag+1).button(BTN_POS(7,_line), BTN_SIZE(2,1), GET_TEXTF(AXIS_Y))
|
||||||
.tag(tag+2).button(BTN_POS(9,_line), BTN_SIZE(2,1), F("Z"))
|
.tag(tag+2).button(BTN_POS(9,_line), BTN_SIZE(2,1), GET_TEXTF(AXIS_Z))
|
||||||
.tag(tag+3).button(BTN_POS(11,_line), BTN_SIZE(3,1), F("All"));
|
.tag(tag+3).button(BTN_POS(11,_line), BTN_SIZE(3,1), GET_TEXTF(AXIS_ALL));
|
||||||
}
|
}
|
||||||
|
|
||||||
_line++;
|
_line++;
|
||||||
|
|
|
@ -43,52 +43,52 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||||
#define GRID_ROWS 9
|
#define GRID_ROWS 9
|
||||||
#define GRID_COLS 2
|
#define GRID_COLS 2
|
||||||
|
|
||||||
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), F("Display"))
|
.tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(DISPLAY_MENU))
|
||||||
#if HAS_TRINAMIC
|
#if HAS_TRINAMIC
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(3) .button( BTN_POS(1,2), BTN_SIZE(1,1), F("Motor mA"))
|
.tag(3) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(MOTOR_CURRENT))
|
||||||
#if HAS_TRINAMIC
|
#if HAS_TRINAMIC
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), F("Bump Sense"))
|
.tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXTF(BUMP_SENSE))
|
||||||
.tag(5) .button( BTN_POS(1,4), BTN_SIZE(1,1), F("Endstops"))
|
.tag(5) .button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(ENDSTOPS))
|
||||||
#if HOTENDS > 1
|
#if HOTENDS > 1
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(6) .button( BTN_POS(1,5), BTN_SIZE(1,1), F("Nozzle Offset"))
|
.tag(6) .button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(NOZZLE_OFFSETS))
|
||||||
|
|
||||||
|
|
||||||
.tag(7) .button( BTN_POS(2,1), BTN_SIZE(1,1), F("Steps/mm"))
|
.tag(7) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(STEPS_PER_MM))
|
||||||
.tag(8) .button( BTN_POS(2,2), BTN_SIZE(1,1), F("Velocity "))
|
.tag(8) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(MAX_VELOCITY))
|
||||||
.tag(9) .button( BTN_POS(2,3), BTN_SIZE(1,1), F("Acceleration"))
|
.tag(9) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(MAX_ACCELERATION))
|
||||||
#if ENABLED(JUNCTION_DEVIATION)
|
#if ENABLED(JUNCTION_DEVIATION)
|
||||||
.tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Junc Dev"))
|
.tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JUNCTION_DEVIATION))
|
||||||
#else
|
#else
|
||||||
.tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Jerk"))
|
.tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(MAX_JERK))
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(BACKLASH_GCODE)
|
#if ENABLED(BACKLASH_GCODE)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(11) .button( BTN_POS(2,5), BTN_SIZE(1,1), F("Backlash"))
|
.tag(11) .button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(BACKLASH))
|
||||||
#if ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), F("Linear Advance"))
|
.tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(LINEAR_ADVANCE))
|
||||||
.tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), F("Interface Settings"))
|
.tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
|
||||||
.tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), F("Restore Factory Defaults"))
|
.tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(RESTORE_FAILSAFE))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), F("Back"));
|
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
using namespace FTDI;
|
using namespace FTDI;
|
||||||
|
|
||||||
void BioConfirmHomeE::onRedraw(draw_mode_t) {
|
void BioConfirmHomeE::onRedraw(draw_mode_t) {
|
||||||
drawMessage(F("About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?"));
|
drawMessage(GET_TEXTF(HOMING_WARNING));
|
||||||
drawYesNoButtons(1);
|
drawYesNoButtons(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
using namespace FTDI;
|
using namespace FTDI;
|
||||||
|
|
||||||
void BioConfirmHomeXYZ::onRedraw(draw_mode_t) {
|
void BioConfirmHomeXYZ::onRedraw(draw_mode_t) {
|
||||||
drawMessage(F("About to home to loading position.\nEnsure the top and the bed of the printer are clear.\n\nContinue?"));
|
drawMessage(GET_TEXTF(LOADING_WARNING));
|
||||||
drawYesNoButtons(1);
|
drawYesNoButtons(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,17 +42,17 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
.font(font_large).text( BTN_POS(1,1), BTN_SIZE(2,1), F("Main Menu"))
|
.font(font_large).text( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(MAIN_MENU))
|
||||||
.colors(normal_btn)
|
.colors(normal_btn)
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
.tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), F("Load Syringe"))
|
.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), F("Unlock XY Axis"))
|
.tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(UNLOCK_XY_AXIS))
|
||||||
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), F("Bed Temperature"))
|
.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), F("Interface Settings"))
|
.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), F("Advanced 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), F("About Printer"))
|
.tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(ABOUT_PRINTER))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
|
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
|
|
|
@ -91,12 +91,12 @@ void StatusScreen::draw_temperature(draw_mode_t what) {
|
||||||
.cmd(COLOR_RGB(bg_text_enabled));
|
.cmd(COLOR_RGB(bg_text_enabled));
|
||||||
|
|
||||||
if (!isHeaterIdle(BED) && getTargetTemp_celsius(BED) > 0) {
|
if (!isHeaterIdle(BED) && getTargetTemp_celsius(BED) > 0) {
|
||||||
sprintf_P(bed_str, PSTR("%-3d C"), ROUND(getTargetTemp_celsius(BED)));
|
sprintf_P(bed_str, F("%3d%S"), ROUND(getTargetTemp_celsius(BED), GET_TEXT(UNITS_C)));
|
||||||
ui.bounds(POLY(target_temp), x, y, h, v);
|
ui.bounds(POLY(target_temp), x, y, h, v);
|
||||||
cmd.text(x, y, h, v, bed_str);
|
cmd.text(x, y, h, v, bed_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf_P(bed_str, PSTR("%-3d C"), ROUND(getActualTemp_celsius(BED)));
|
sprintf_P(bed_str, F("%3d%S"), ROUND(getActualTemp_celsius(BED)), GET_TEXT(UNITS_C));
|
||||||
ui.bounds(POLY(actual_temp), x, y, h, v);
|
ui.bounds(POLY(actual_temp), x, y, h, v);
|
||||||
cmd.text(x, y, h, v, bed_str);
|
cmd.text(x, y, h, v, bed_str);
|
||||||
}
|
}
|
||||||
|
@ -175,13 +175,13 @@ void StatusScreen::draw_fine_motion(draw_mode_t what) {
|
||||||
|
|
||||||
ui.bounds(POLY(fine_label), x, y, h, v);
|
ui.bounds(POLY(fine_label), x, y, h, v);
|
||||||
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
.text(x, y, h, v, F("Fine motion:"));
|
.text(x, y, h, v, GET_TEXTF(FINE_MOTION));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
ui.bounds(POLY(fine_toggle), x, y, h, v);
|
ui.bounds(POLY(fine_toggle), x, y, h, v);
|
||||||
cmd.colors(ui_toggle)
|
cmd.colors(ui_toggle)
|
||||||
.toggle(x, y, h, v, F("no\xFFyes"), fine_motion);
|
.toggle2(x, y, h, v, GET_TEXTF(NO), GET_TEXTF(YES), fine_motion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,16 +226,12 @@ void StatusScreen::draw_buttons(draw_mode_t) {
|
||||||
.colors(has_media ? action_btn : normal_btn)
|
.colors(has_media ? action_btn : normal_btn)
|
||||||
.tag(9).button(BTN_POS(1,9), BTN_SIZE(1,1),
|
.tag(9).button(BTN_POS(1,9), BTN_SIZE(1,1),
|
||||||
isPrintingFromMedia() ?
|
isPrintingFromMedia() ?
|
||||||
F("Printing") :
|
GET_TEXTF(PRINTING) :
|
||||||
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
|
||||||
#ifdef LULZBOT_MANUAL_USB_STARTUP
|
#ifdef LULZBOT_MANUAL_USB_STARTUP
|
||||||
(Sd2Card::ready() ? F("USB Drive") : F("Enable USB"))
|
(Sd2Card::ready() ? GET_TEXTF(MEDIA) : GET_TEXTF(ENABLE_MEDIA))
|
||||||
#else
|
#else
|
||||||
F("USB Drive")
|
GET_TEXTF(MEDIA)
|
||||||
#endif
|
#endif
|
||||||
#else
|
|
||||||
F("SD Card")
|
|
||||||
#endif
|
|
||||||
);
|
);
|
||||||
|
|
||||||
cmd.colors(!has_media ? action_btn : normal_btn).tag(10).button(BTN_POS(2,9), BTN_SIZE(1,1), F("Menu"));
|
cmd.colors(!has_media ? action_btn : normal_btn).tag(10).button(BTN_POS(2,9), BTN_SIZE(1,1), F("Menu"));
|
||||||
|
@ -282,7 +278,7 @@ bool StatusScreen::onTouchEnd(uint8_t tag) {
|
||||||
case 9:
|
case 9:
|
||||||
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
|
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
|
||||||
if (!Sd2Card::ready()) {
|
if (!Sd2Card::ready()) {
|
||||||
StatusScreen::setStatusMessage(F("Insert USB drive..."));
|
StatusScreen::setStatusMessage(GET_TEXTF(INSERT_MEDIA));
|
||||||
Sd2Card::usbStartup();
|
Sd2Card::usbStartup();
|
||||||
} else {
|
} else {
|
||||||
GOTO_SCREEN(FilesScreen);
|
GOTO_SCREEN(FilesScreen);
|
||||||
|
|
|
@ -38,27 +38,26 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
||||||
.font(font_medium);
|
.font(font_medium);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define GRID_ROWS 8
|
#define GRID_ROWS 7
|
||||||
#define GRID_COLS 2
|
#define GRID_COLS 2
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
cmd.cmd(COLOR_RGB(bg_text_enabled))
|
||||||
.font(font_large).text ( BTN_POS(1,1), BTN_SIZE(2,1), F("Print Menu"))
|
.font(font_large).text ( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(PRINT_MENU))
|
||||||
.colors(normal_btn)
|
.colors(normal_btn)
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
.enabled(!isPrinting()).tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), isPrinting() ? F("Printing...") : F("Print Again"))
|
.enabled( isPrinting()).tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(PRINT_SPEED))
|
||||||
.enabled( isPrinting()).tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Print Speed"))
|
.tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(BED_TEMPERATURE))
|
||||||
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), F("Bed Temperature"))
|
|
||||||
#if ENABLED(BABYSTEPPING)
|
#if ENABLED(BABYSTEPPING)
|
||||||
.enabled(true)
|
.enabled(true)
|
||||||
#else
|
#else
|
||||||
.enabled(false)
|
.enabled(false)
|
||||||
#endif
|
#endif
|
||||||
.tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), F("Nudge Nozzle"))
|
.tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(NUDGE_NOZZLE))
|
||||||
.enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), F("Load Syringe"))
|
.enabled(!isPrinting()).tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(LOAD_SYRINGE))
|
||||||
.enabled(!isPrinting()).tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), F("Unlock XY Axis"))
|
.enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(UNLOCK_XY_AXIS))
|
||||||
.colors(action_btn) .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
|
.colors(action_btn) .tag(1).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
}
|
}
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
|
@ -66,18 +65,12 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
||||||
|
|
||||||
bool TuneMenu::onTouchEnd(uint8_t tag) {
|
bool TuneMenu::onTouchEnd(uint8_t tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 1: GOTO_PREVIOUS(); break;
|
case 1: GOTO_PREVIOUS(); break;
|
||||||
case 2: {
|
case 2: GOTO_SCREEN(FeedratePercentScreen); break;
|
||||||
FileList files;
|
case 3: GOTO_SCREEN(TemperatureScreen); break;
|
||||||
printFile(files.shortFilename());
|
case 4: GOTO_SCREEN(NudgeNozzleScreen); break;
|
||||||
GOTO_PREVIOUS();
|
case 5: GOTO_SCREEN(BioConfirmHomeXYZ); break;
|
||||||
break;
|
case 6: StatusScreen::unlockMotors(); break;
|
||||||
}
|
|
||||||
case 3: GOTO_SCREEN(FeedratePercentScreen); break;
|
|
||||||
case 4: GOTO_SCREEN(TemperatureScreen); break;
|
|
||||||
case 5: GOTO_SCREEN(NudgeNozzleScreen); break;
|
|
||||||
case 6: GOTO_SCREEN(BioConfirmHomeXYZ); break;
|
|
||||||
case 7: StatusScreen::unlockMotors(); break;
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,13 +57,14 @@ void BootScreen::onIdle() {
|
||||||
// in case the display is borked.
|
// in case the display is borked.
|
||||||
InterfaceSettingsScreen::failSafeSettings();
|
InterfaceSettingsScreen::failSafeSettings();
|
||||||
|
|
||||||
|
StatusScreen::loadBitmaps();
|
||||||
GOTO_SCREEN(TouchCalibrationScreen);
|
GOTO_SCREEN(TouchCalibrationScreen);
|
||||||
current_screen.forget();
|
current_screen.forget();
|
||||||
PUSH_SCREEN(StatusScreen);
|
PUSH_SCREEN(StatusScreen);
|
||||||
} else {
|
} else {
|
||||||
if (!UIFlashStorage::is_valid()) {
|
if (!UIFlashStorage::is_valid()) {
|
||||||
StatusScreen::loadBitmaps();
|
StatusScreen::loadBitmaps();
|
||||||
SpinnerDialogBox::show(F("Please wait..."));
|
SpinnerDialogBox::show(GET_TEXTF(PLEASE_WAIT));
|
||||||
UIFlashStorage::format_flash();
|
UIFlashStorage::format_flash();
|
||||||
SpinnerDialogBox::hide();
|
SpinnerDialogBox::hide();
|
||||||
}
|
}
|
||||||
|
@ -82,6 +83,9 @@ void BootScreen::onIdle() {
|
||||||
current_screen.forget();
|
current_screen.forget();
|
||||||
PUSH_SCREEN(StatusScreen);
|
PUSH_SCREEN(StatusScreen);
|
||||||
PUSH_SCREEN(BioConfirmHomeE);
|
PUSH_SCREEN(BioConfirmHomeE);
|
||||||
|
#elif defined(TOUCH_UI_LANGUAGE_MENU)
|
||||||
|
StatusScreen::setStatusMessage(F(WELCOME_MSG));
|
||||||
|
GOTO_SCREEN(LanguageMenu);
|
||||||
#else
|
#else
|
||||||
StatusScreen::setStatusMessage(F(WELCOME_MSG));
|
StatusScreen::setStatusMessage(F(WELCOME_MSG));
|
||||||
GOTO_SCREEN(StatusScreen);
|
GOTO_SCREEN(StatusScreen);
|
||||||
|
|
|
@ -114,29 +114,24 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||||
#else
|
#else
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
#endif
|
#endif
|
||||||
.text(BTN_POS(1,1), BTN_SIZE(2,1), F("Extruder Selection:"))
|
.text(BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(EXTRUDER_SELECTION))
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.text(BTN_POS(1,7), BTN_SIZE(1,1), F("Current Temp:"))
|
.text(BTN_POS(1,7), BTN_SIZE(1,1), F(""))
|
||||||
#else
|
#else
|
||||||
.text(BTN_POS(3,1), BTN_SIZE(2,1), F("Current Temp:"))
|
.text(BTN_POS(3,1), BTN_SIZE(2,1), GET_TEXTF(CURRENT_TEMPERATURE))
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
#endif
|
#endif
|
||||||
.text(BTN_POS(1,3), BTN_SIZE(2,1), F("Removal Temp:"));
|
.text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(REMOVAL_TEMPERATURE));
|
||||||
drawTempGradient(BTN_POS(1,4), BTN_SIZE(1,3));
|
drawTempGradient(BTN_POS(1,4), BTN_SIZE(1,3));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
char e_str[15];
|
char e_str[15];
|
||||||
|
|
||||||
const char *idle = PSTR("%-3d C / idle");
|
if (isHeaterIdle(getExtruder()))
|
||||||
const char *not_idle = PSTR("%-3d / %-3d C");
|
sprintf_P(e_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(getExtruder())), GET_TEXT(UNITS_C), GET_TEXT(TEMP_IDLE));
|
||||||
|
else
|
||||||
sprintf_P(
|
sprintf_P(e_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(getExtruder())), ROUND(getTargetTemp_celsius(getExtruder())), GET_TEXT(UNITS_C));
|
||||||
e_str,
|
|
||||||
isHeaterIdle(getExtruder()) ? idle : not_idle,
|
|
||||||
ROUND(getActualTemp_celsius(getExtruder())),
|
|
||||||
ROUND(getTargetTemp_celsius(getExtruder()))
|
|
||||||
);
|
|
||||||
|
|
||||||
const rgb_t tcol = getWarmColor(getActualTemp_celsius(getExtruder()), COOL_TEMP, LOW_TEMP, MED_TEMP, HIGH_TEMP);
|
const rgb_t tcol = getWarmColor(getActualTemp_celsius(getExtruder()), COOL_TEMP, LOW_TEMP, MED_TEMP, HIGH_TEMP);
|
||||||
cmd.cmd(COLOR_RGB(tcol))
|
cmd.cmd(COLOR_RGB(tcol))
|
||||||
|
@ -158,12 +153,12 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||||
const bool t_ok = getActualTemp_celsius(getExtruder()) > getSoftenTemp() - 10;
|
const bool t_ok = getActualTemp_celsius(getExtruder()) > getSoftenTemp() - 10;
|
||||||
|
|
||||||
if (screen_data.ChangeFilamentScreen.t_tag && !t_ok) {
|
if (screen_data.ChangeFilamentScreen.t_tag && !t_ok) {
|
||||||
cmd.text(BTN_POS(1,6), BTN_SIZE(1,1), F("Heating..."));
|
cmd.text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(HEATING));
|
||||||
} else if (getActualTemp_celsius(getExtruder()) > 100) {
|
} else if (getActualTemp_celsius(getExtruder()) > 100) {
|
||||||
cmd.cmd(COLOR_RGB(0xFF0000))
|
cmd.cmd(COLOR_RGB(0xFF0000))
|
||||||
.text(BTN_POS(1,4), BTN_SIZE(1,1), F("Caution:"))
|
.text(BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(CAUTION))
|
||||||
.colors(normal_btn)
|
.colors(normal_btn)
|
||||||
.text(BTN_POS(1,6), BTN_SIZE(1,1), F("Hot!"));
|
.text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(HOT));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TOG_STYLE(A) colors(A ? action_btn : normal_btn)
|
#define TOG_STYLE(A) colors(A ? action_btn : normal_btn)
|
||||||
|
@ -195,15 +190,28 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||||
const bool tog7 = screen_data.ChangeFilamentScreen.repeat_tag == 7;
|
const bool tog7 = screen_data.ChangeFilamentScreen.repeat_tag == 7;
|
||||||
const bool tog8 = screen_data.ChangeFilamentScreen.repeat_tag == 8;
|
const bool tog8 = screen_data.ChangeFilamentScreen.repeat_tag == 8;
|
||||||
|
|
||||||
|
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
cmd.font(font_large)
|
cmd.font(font_large);
|
||||||
#else
|
#else
|
||||||
cmd.font(font_small)
|
cmd.font(font_small);
|
||||||
#endif
|
#endif
|
||||||
.tag(2) .TOG_STYLE(tog2) .button (BTN_POS(2,6), BTN_SIZE(1,1), F( STRINGIFY(LOW_TEMP) "C (PLA)"))
|
{
|
||||||
.tag(3) .TOG_STYLE(tog3) .button (BTN_POS(2,5), BTN_SIZE(1,1), F( STRINGIFY(MED_TEMP) "C (ABS)"))
|
char str[30];
|
||||||
.tag(4) .TOG_STYLE(tog4) .button (BTN_POS(2,4), BTN_SIZE(1,1), F( STRINGIFY(HIGH_TEMP) "C (High)"))
|
sprintf_P(str, PSTR("%3d%S (%S)"), LOW_TEMP, GET_TEXT(UNITS_C), GET_TEXT(MATERIAL_PLA));
|
||||||
.colors(normal_btn)
|
cmd.tag(2) .TOG_STYLE(tog2) .button (BTN_POS(2,6), BTN_SIZE(1,1), str);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
char str[30];
|
||||||
|
sprintf_P(str, PSTR("%3d%S (%S)"), MED_TEMP, GET_TEXT(UNITS_C), GET_TEXT(MATERIAL_ABS));
|
||||||
|
cmd.tag(3) .TOG_STYLE(tog3) .button (BTN_POS(2,5), BTN_SIZE(1,1), str);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
char str[30];
|
||||||
|
sprintf_P(str, PSTR("%3d%S (%S)"), HIGH_TEMP, GET_TEXT(UNITS_C), GET_TEXT(MATERIAL_HIGH_TEMP));
|
||||||
|
cmd.tag(4) .TOG_STYLE(tog4) .button (BTN_POS(2,4), BTN_SIZE(1,1), str);
|
||||||
|
}
|
||||||
|
cmd.colors(normal_btn)
|
||||||
|
|
||||||
// Add tags to color gradient
|
// Add tags to color gradient
|
||||||
.cmd(COLOR_MASK(0,0,0,0))
|
.cmd(COLOR_MASK(0,0,0,0))
|
||||||
|
@ -215,23 +223,23 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||||
.cmd(COLOR_RGB(t_ok ? bg_text_enabled : bg_text_disabled))
|
.cmd(COLOR_RGB(t_ok ? bg_text_enabled : bg_text_disabled))
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.font(font_large)
|
.font(font_large)
|
||||||
.tag(0) .text (BTN_POS(1,8), BTN_SIZE(1,1), F("Unload"))
|
.tag(0) .text (BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXTF(UNLOAD_FILAMENT))
|
||||||
.text (BTN_POS(2,8), BTN_SIZE(1,1), F("Load/Extrude"))
|
.text (BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXTF(LOAD_FILAMENT))
|
||||||
.tag(5) .enabled(t_ok).button (BTN_POS(1,9), BTN_SIZE(1,1), F("Momentary"))
|
.tag(5) .enabled(t_ok).button (BTN_POS(1,9), BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
|
||||||
.tag(6) .enabled(t_ok).button (BTN_POS(2,9), BTN_SIZE(1,1), F("Momentary"))
|
.tag(6) .enabled(t_ok).button (BTN_POS(2,9), BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
|
||||||
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(1,10), BTN_SIZE(1,1), F("Continuous"))
|
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(1,10), BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
|
||||||
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(2,10), BTN_SIZE(1,1), F("Continuous"))
|
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(2,10), BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
|
||||||
.tag(1).colors(action_btn) .button (BTN_POS(1,11), BTN_SIZE(2,1), F("Back"));
|
.tag(1).colors(action_btn) .button (BTN_POS(1,11), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#else
|
#else
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
.tag(0) .text (BTN_POS(3,3), BTN_SIZE(1,1), F("Unload"))
|
.tag(0) .text (BTN_POS(3,3), BTN_SIZE(1,1), GET_TEXTF(UNLOAD_FILAMENT))
|
||||||
.text (BTN_POS(4,3), BTN_SIZE(1,1), F("Load/Extrude"))
|
.text (BTN_POS(4,3), BTN_SIZE(1,1), GET_TEXTF(LOAD_FILAMENT))
|
||||||
.tag(5) .enabled(t_ok).button (BTN_POS(3,4), BTN_SIZE(1,1), F("Momentary"))
|
.tag(5) .enabled(t_ok).button (BTN_POS(3,4), BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
|
||||||
.tag(6) .enabled(t_ok).button (BTN_POS(4,4), BTN_SIZE(1,1), F("Momentary"))
|
.tag(6) .enabled(t_ok).button (BTN_POS(4,4), BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
|
||||||
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(3,5), BTN_SIZE(1,1), F("Continuous"))
|
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
|
||||||
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(4,5), BTN_SIZE(1,1), F("Continuous"))
|
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(4,5), BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
.tag(1).colors(action_btn) .button (BTN_POS(3,6), BTN_SIZE(2,1), F("Back"));
|
.tag(1).colors(action_btn) .button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
using namespace ExtUI;
|
using namespace ExtUI;
|
||||||
|
|
||||||
void ConfirmAbortPrintDialogBox::onRedraw(draw_mode_t) {
|
void ConfirmAbortPrintDialogBox::onRedraw(draw_mode_t) {
|
||||||
drawMessage(F("Are you sure you want to cancel the print?"));
|
drawMessage(GET_TEXTF(ABORT_WARNING));
|
||||||
drawYesNoButtons();
|
drawYesNoButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ using namespace ExtUI;
|
||||||
using namespace Theme;
|
using namespace Theme;
|
||||||
|
|
||||||
void ConfirmAutoCalibrationDialogBox::onRedraw(draw_mode_t) {
|
void ConfirmAutoCalibrationDialogBox::onRedraw(draw_mode_t) {
|
||||||
drawMessage(F("For best results, unload the filament and clean the hotend prior to starting calibration. Continue?"));
|
drawMessage(GET_TEXTF(CALIBRATION_WARNING));
|
||||||
drawYesNoButtons();
|
drawYesNoButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,17 +31,17 @@
|
||||||
using namespace FTDI;
|
using namespace FTDI;
|
||||||
|
|
||||||
void ConfirmEraseFlashDialogBox::onRedraw(draw_mode_t) {
|
void ConfirmEraseFlashDialogBox::onRedraw(draw_mode_t) {
|
||||||
drawMessage(F("Are you sure? SPI flash will be erased."));
|
drawMessage(GET_TEXTF(ERASE_FLASH_WARNING));
|
||||||
drawYesNoButtons();
|
drawYesNoButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ConfirmEraseFlashDialogBox::onTouchEnd(uint8_t tag) {
|
bool ConfirmEraseFlashDialogBox::onTouchEnd(uint8_t tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 1:
|
case 1:
|
||||||
SpinnerDialogBox::show(F("Erasing..."));
|
SpinnerDialogBox::show(GET_TEXTF(ERASING));
|
||||||
UIFlashStorage::format_flash();
|
UIFlashStorage::format_flash();
|
||||||
SpinnerDialogBox::hide();
|
SpinnerDialogBox::hide();
|
||||||
AlertDialogBox::show(F("SPI flash erased"));
|
AlertDialogBox::show(GET_TEXTF(ERASED));
|
||||||
// Remove ConfirmEraseFlashDialogBox from the stack
|
// Remove ConfirmEraseFlashDialogBox from the stack
|
||||||
// so the alert box doesn't return to me.
|
// so the alert box doesn't return to me.
|
||||||
current_screen.forget();
|
current_screen.forget();
|
||||||
|
|
|
@ -33,14 +33,14 @@ using namespace Theme;
|
||||||
void DefaultAccelerationScreen::onRedraw(draw_mode_t what) {
|
void DefaultAccelerationScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0);
|
w.precision(0);
|
||||||
w.units(PSTR("mm/s^2"));
|
w.units(GET_TEXTF(UNITS_MM_S2));
|
||||||
w.heading( PSTR("Default Acceleration"));
|
w.heading( GET_TEXTF(ACCELERATION));
|
||||||
w.color(other);
|
w.color(other);
|
||||||
w.adjuster( 2, PSTR("Printing:"), getPrintingAcceleration_mm_s2() );
|
w.adjuster( 2, GET_TEXTF(ACCEL_PRINTING), getPrintingAcceleration_mm_s2() );
|
||||||
w.adjuster( 4, PSTR("Travel:"), getTravelAcceleration_mm_s2() );
|
w.adjuster( 4, GET_TEXTF(ACCEL_TRAVEL), getTravelAcceleration_mm_s2() );
|
||||||
w.adjuster( 6, PSTR("Retraction:"), getRetractAcceleration_mm_s2() );
|
w.adjuster( 6, GET_TEXTF(ACCEL_RETRACT), getRetractAcceleration_mm_s2() );
|
||||||
w.increments();
|
w.increments();
|
||||||
w.button( 8, PSTR("Set Axis Maximum"));
|
w.button( 8, GET_TEXTF(SET_MAXIMUM));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DefaultAccelerationScreen::onTouchHeld(uint8_t tag) {
|
bool DefaultAccelerationScreen::onTouchHeld(uint8_t tag) {
|
||||||
|
|
|
@ -45,19 +45,19 @@ void DialogBoxBaseClass::drawMessage(const T message, int16_t font) {
|
||||||
}
|
}
|
||||||
|
|
||||||
template void DialogBoxBaseClass::drawMessage(const char *, int16_t font);
|
template void DialogBoxBaseClass::drawMessage(const char *, int16_t font);
|
||||||
template void DialogBoxBaseClass::drawMessage(const progmem_str, int16_t font);
|
template void DialogBoxBaseClass::drawMessage(progmem_str, int16_t font);
|
||||||
|
|
||||||
void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) {
|
void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.font(font_medium)
|
cmd.font(font_medium)
|
||||||
.colors(default_btn == 1 ? action_btn : normal_btn).tag(1).button( BTN_POS(1,8), BTN_SIZE(1,1), F("Yes"))
|
.colors(default_btn == 1 ? action_btn : normal_btn).tag(1).button( BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXTF(YES))
|
||||||
.colors(default_btn == 2 ? action_btn : normal_btn).tag(2).button( BTN_POS(2,8), BTN_SIZE(1,1), F("No"));
|
.colors(default_btn == 2 ? action_btn : normal_btn).tag(2).button( BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXTF(NO));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogBoxBaseClass::drawOkayButton() {
|
void DialogBoxBaseClass::drawOkayButton() {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.font(font_medium)
|
cmd.font(font_medium)
|
||||||
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Okay"));
|
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(OKAY));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogBoxBaseClass::drawButton(const progmem_str label) {
|
void DialogBoxBaseClass::drawButton(const progmem_str label) {
|
||||||
|
|
|
@ -32,14 +32,14 @@ using namespace Theme;
|
||||||
void DisplayTuningScreen::onRedraw(draw_mode_t what) {
|
void DisplayTuningScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
|
w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
|
||||||
w.units(PSTR(""));
|
w.units(F(""));
|
||||||
w.heading( PSTR("Display Tuning"));
|
w.heading(GET_TEXTF(DISPLAY_MENU));
|
||||||
w.color(other);
|
w.color(other);
|
||||||
w.adjuster( 2, PSTR("H Offset:"), CLCD::mem_read_16(CLCD::REG::HOFFSET) );
|
w.adjuster( 2, GET_TEXTF(H_OFFSET), CLCD::mem_read_16(CLCD::REG::HOFFSET) );
|
||||||
w.adjuster( 4, PSTR("V Offset:"), CLCD::mem_read_16(CLCD::REG::VOFFSET) );
|
w.adjuster( 4, GET_TEXTF(V_OFFSET), CLCD::mem_read_16(CLCD::REG::VOFFSET) );
|
||||||
w.increments();
|
w.increments();
|
||||||
w.heading( PSTR("Touch Screen"));
|
w.heading( GET_TEXTF(TOUCH_SCREEN));
|
||||||
w.button(6, PSTR("Calibrate"));
|
w.button(6, GET_TEXTF(CALIBRATE));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DisplayTuningScreen::onTouchHeld(uint8_t tag) {
|
bool DisplayTuningScreen::onTouchHeld(uint8_t tag) {
|
||||||
|
|
|
@ -48,7 +48,7 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) {
|
||||||
#define GRID_ROWS 7
|
#define GRID_ROWS 7
|
||||||
#define GRID_COLS 6
|
#define GRID_COLS 6
|
||||||
|
|
||||||
#define PIN_BTN(X,Y,PIN,LABEL) button(BTN_POS(X,Y), BTN_SIZE(2,1), F(LABEL))
|
#define PIN_BTN(X,Y,PIN,LABEL) button(BTN_POS(X,Y), BTN_SIZE(2,1), LABEL)
|
||||||
#define PIN_ENABLED(LABEL,PIN,INV,X,Y) cmd.enabled(1).colors(READ(PIN##_PIN) != INV ? action_btn : normal_btn).PIN_BTN(X,Y,PIN,LABEL);
|
#define PIN_ENABLED(LABEL,PIN,INV,X,Y) cmd.enabled(1).colors(READ(PIN##_PIN) != INV ? action_btn : normal_btn).PIN_BTN(X,Y,PIN,LABEL);
|
||||||
#define PIN_DISABLED(LABEL,PIN,INV,X,Y) cmd.enabled(0).PIN_BTN(X,Y,PIN,LABEL);
|
#define PIN_DISABLED(LABEL,PIN,INV,X,Y) cmd.enabled(0).PIN_BTN(X,Y,PIN,LABEL);
|
||||||
|
|
||||||
|
@ -57,68 +57,68 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) {
|
||||||
#else
|
#else
|
||||||
cmd.font(font_medium)
|
cmd.font(font_medium)
|
||||||
#endif
|
#endif
|
||||||
.text(BTN_POS(1,1), BTN_SIZE(6,1), F("Endstop States:"))
|
.text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXTF(ENDSTOPS))
|
||||||
.font(font_tiny);
|
.font(font_tiny);
|
||||||
#if PIN_EXISTS(X_MAX)
|
#if PIN_EXISTS(X_MAX)
|
||||||
PIN_ENABLED ("X Max", X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
|
PIN_ENABLED (GET_TEXTF(X_MAX), X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("X Max",X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
|
PIN_DISABLED(GET_TEXTF(X_MAX),X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
|
||||||
#endif
|
#endif
|
||||||
#if PIN_EXISTS(Y_MAX)
|
#if PIN_EXISTS(Y_MAX)
|
||||||
PIN_ENABLED ("Y Max",Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
|
PIN_ENABLED (GET_TEXTF(Y_MAX),Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("Y Max",Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
|
PIN_DISABLED(GET_TEXTF(Y_MAX),Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
|
||||||
#endif
|
#endif
|
||||||
#if PIN_EXISTS(Z_MAX)
|
#if PIN_EXISTS(Z_MAX)
|
||||||
PIN_ENABLED ("Z Max",Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
|
PIN_ENABLED (GET_TEXTF(Z_MAX),Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("Z Max",Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
|
PIN_DISABLED(GET_TEXTF(Z_MAX),Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
|
||||||
#endif
|
#endif
|
||||||
#if PIN_EXISTS(X_MIN)
|
#if PIN_EXISTS(X_MIN)
|
||||||
PIN_ENABLED ("X Min",X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
|
PIN_ENABLED (GET_TEXTF(X_MIN),X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("X Min",X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
|
PIN_DISABLED(GET_TEXTF(X_MIN),X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
|
||||||
#endif
|
#endif
|
||||||
#if PIN_EXISTS(Y_MIN)
|
#if PIN_EXISTS(Y_MIN)
|
||||||
PIN_ENABLED ("Y Min",Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
|
PIN_ENABLED (GET_TEXTF(Y_MIN),Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("Y Min",Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
|
PIN_DISABLED(GET_TEXTF(Y_MIN),Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
|
||||||
#endif
|
#endif
|
||||||
#if PIN_EXISTS(Z_MIN)
|
#if PIN_EXISTS(Z_MIN)
|
||||||
PIN_ENABLED ("Z Min",Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
|
PIN_ENABLED (GET_TEXTF(Z_MIN),Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("Z Min",Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
|
PIN_DISABLED(GET_TEXTF(Z_MIN),Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT)
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT)
|
||||||
PIN_ENABLED ("Runout 1",FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
|
PIN_ENABLED (GET_TEXTF(RUNOUT_1),FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("Runout 1",FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
|
PIN_DISABLED(GET_TEXTF(RUNOUT_1),FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT2)
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT2)
|
||||||
PIN_ENABLED ("Runout 2",FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
|
PIN_ENABLED (GET_TEXTF(RUNOUT_2),FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("Runout 2",FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
|
PIN_DISABLED(GET_TEXTF(RUNOUT_2),FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
|
||||||
#endif
|
#endif
|
||||||
#if PIN_EXISTS(Z_MIN_PROBE)
|
#if PIN_EXISTS(Z_MIN_PROBE)
|
||||||
PIN_ENABLED ("Z Probe",Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
|
PIN_ENABLED (GET_TEXTF(Z_PROBE),Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
|
||||||
#else
|
#else
|
||||||
PIN_DISABLED("Z Probe",Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
|
PIN_DISABLED(GET_TEXTF(Z_PROBE),Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_SOFTWARE_ENDSTOPS
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
#define EDGE_R 30
|
#define EDGE_R 30
|
||||||
cmd.font(font_small)
|
cmd.font(font_small)
|
||||||
.text (BTN_POS(1,5), BTN_SIZE(3,1), F("Soft Limits:"), OPT_RIGHTX | OPT_CENTERY)
|
.text (BTN_POS(1,5), BTN_SIZE(3,1), GET_TEXTF(SOFT_ENDSTOPS), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.colors(ui_toggle)
|
.colors(ui_toggle)
|
||||||
.tag(2).toggle(BTN_POS(4,5), BTN_SIZE(3,1), F("off\xFFon"), getSoftEndstopState());
|
.tag(2).toggle2(BTN_POS(4,5), BTN_SIZE(3,1), GET_TEXTF(NO), GET_TEXTF(YES), getSoftEndstopState());
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
#define EDGE_R 0
|
#define EDGE_R 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cmd.font(font_medium)
|
cmd.font(font_medium)
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button( BTN_POS(1,7), BTN_SIZE(6,1), F("Back"));
|
.tag(1).button( BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXTF(BACK));
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,10 +31,10 @@ using namespace ExtUI;
|
||||||
|
|
||||||
void FeedratePercentScreen::onRedraw(draw_mode_t what) {
|
void FeedratePercentScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0).units(PSTR("%"));
|
w.precision(0).units(GET_TEXTF(UNITS_PERCENT));
|
||||||
|
|
||||||
w.heading(PSTR("Print Speed"));
|
w.heading(GET_TEXTF(PRINT_SPEED));
|
||||||
w.adjuster(4, PSTR("Speed"), getFeedrate_percent());
|
w.adjuster(4, GET_TEXTF(SPEED), getFeedrate_percent());
|
||||||
w.increments();
|
w.increments();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,43 +43,43 @@ void FilamentMenu::onRedraw(draw_mode_t what) {
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
#define GRID_ROWS 9
|
#define GRID_ROWS 9
|
||||||
#define GRID_COLS 2
|
#define GRID_COLS 2
|
||||||
.text ( BTN_POS(1,1), BTN_SIZE(2,1), F("Filament Options:"))
|
.text ( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(FILAMENT))
|
||||||
.font(font_medium).colors(normal_btn)
|
.font(font_medium).colors(normal_btn)
|
||||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), F("Runout Sensor"))
|
.tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(RUNOUT_SENSOR))
|
||||||
#if ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Linear Advance"))
|
.tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(LINEAR_ADVANCE))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), F("Back"));
|
.tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
#else
|
#else
|
||||||
#define GRID_ROWS 6
|
#define GRID_ROWS 6
|
||||||
#define GRID_COLS 3
|
#define GRID_COLS 3
|
||||||
.text ( BTN_POS(1,1), BTN_SIZE(3,1), F("Filament Options:"))
|
.text ( BTN_POS(1,1), BTN_SIZE(3,1), GET_TEXTF(FILAMENT))
|
||||||
.font(font_medium).colors(normal_btn)
|
.font(font_medium).colors(normal_btn)
|
||||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(2).button( BTN_POS(1,2), BTN_SIZE(3,1), F("Filament Runout"))
|
.tag(2).button( BTN_POS(1,2), BTN_SIZE(3,1), GET_TEXTF(RUNOUT_SENSOR))
|
||||||
#if ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(3).button( BTN_POS(1,3), BTN_SIZE(3,1), F("Linear Advance"))
|
.tag(3).button( BTN_POS(1,3), BTN_SIZE(3,1), GET_TEXTF(LINEAR_ADVANCE))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1) .button( BTN_POS(1,6), BTN_SIZE(3,1), F("Back"));
|
.tag(1) .button( BTN_POS(1,6), BTN_SIZE(3,1), GET_TEXTF(BACK));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,15 +32,15 @@ using namespace Theme;
|
||||||
|
|
||||||
void FilamentRunoutScreen::onRedraw(draw_mode_t what) {
|
void FilamentRunoutScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.heading( PSTR("Runout Detection:"));
|
w.heading( GET_TEXTF(FILAMENT));
|
||||||
w.toggle( 2, PSTR("Filament Sensor:"), PSTR("off\xFFon"), getFilamentRunoutEnabled());
|
w.toggle( 2, GET_TEXTF(RUNOUT_SENSOR), getFilamentRunoutEnabled());
|
||||||
|
|
||||||
#ifdef FILAMENT_RUNOUT_DISTANCE_MM
|
#ifdef FILAMENT_RUNOUT_DISTANCE_MM
|
||||||
w.heading(PSTR("Detection Threshold:"));
|
w.heading(GET_TEXTF(DETECTION_THRESHOLD));
|
||||||
w.units(PSTR("mm"));
|
w.units(GET_TEXTF(UNITS_MM));
|
||||||
w.precision(0);
|
w.precision(0);
|
||||||
w.color(e_axis);
|
w.color(e_axis);
|
||||||
w.adjuster( 10, PSTR("Distance:"), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled());
|
w.adjuster( 10, GET_TEXTF(DISTANCE), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled());
|
||||||
w.increments();
|
w.increments();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,13 +165,13 @@ void FilesScreen::drawFooter() {
|
||||||
cmd.colors(normal_btn)
|
cmd.colors(normal_btn)
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
.colors(has_selection ? normal_btn : action_btn)
|
.colors(has_selection ? normal_btn : action_btn)
|
||||||
.tag(back_tag).button( BTN_POS(4,y), BTN_SIZE(3,h), F("Back"))
|
.tag(back_tag).button( BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXTF(BACK))
|
||||||
.enabled(has_selection)
|
.enabled(has_selection)
|
||||||
.colors(has_selection ? action_btn : normal_btn);
|
.colors(has_selection ? action_btn : normal_btn);
|
||||||
if (screen_data.FilesScreen.flags.is_dir) {
|
if (screen_data.FilesScreen.flags.is_dir) {
|
||||||
cmd.tag(244).button( BTN_POS(1, y), BTN_SIZE(3,h), F("Open"));
|
cmd.tag(244).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXTF(OPEN_DIR));
|
||||||
} else {
|
} else {
|
||||||
cmd.tag(243).button( BTN_POS(1, y), BTN_SIZE(3,h), F("Print"));
|
cmd.tag(243).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXTF(PRINT_FILE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ bool FilesScreen::onTouchEnd(uint8_t tag) {
|
||||||
break;
|
break;
|
||||||
case 243:
|
case 243:
|
||||||
printFile(getSelectedShortFilename());
|
printFile(getSelectedShortFilename());
|
||||||
StatusScreen::setStatusMessage(F("Print Starting"));
|
StatusScreen::setStatusMessage(GET_TEXTF(PRINT_STARTING));
|
||||||
GOTO_SCREEN(StatusScreen);
|
GOTO_SCREEN(StatusScreen);
|
||||||
return true;
|
return true;
|
||||||
case 244:
|
case 244:
|
||||||
|
|
|
@ -69,15 +69,15 @@ 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), F("Interface Settings"))
|
.text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXTF(INTERFACE_SETTINGS))
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
#define EDGE_R 30
|
#define EDGE_R 30
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
.tag(0)
|
.tag(0)
|
||||||
.text(BTN_POS(1,2), BTN_SIZE(2,1), F("LCD brightness:"), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(LCD_BRIGHTNESS), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,3), BTN_SIZE(2,1), F("Sound volume:"), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,4), BTN_SIZE(2,1), F("Screen lock:"), OPT_RIGHTX | OPT_CENTERY);
|
.text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(SCREEN_LOCK), OPT_RIGHTX | OPT_CENTERY);
|
||||||
cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), F("Boot screen:"), OPT_RIGHTX | OPT_CENTERY);
|
cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(BOOT_SCREEN), OPT_RIGHTX | OPT_CENTERY);
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,19 +94,19 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) {
|
||||||
.tag(2).slider(BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.brightness, 128)
|
.tag(2).slider(BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.brightness, 128)
|
||||||
.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).toggle(BTN_POS(3,4), BTN_SIZE(w,1), F("off\xFFon"), LockScreen::is_enabled())
|
.tag(4).toggle2(BTN_POS(3,4), BTN_SIZE(w,1), GET_TEXTF(NO), GET_TEXTF(YES), LockScreen::is_enabled())
|
||||||
.tag(5).toggle(BTN_POS(3,5), BTN_SIZE(w,1), F("off\xFFon"), UIData::animations_enabled())
|
.tag(5).toggle2(BTN_POS(3,5), BTN_SIZE(w,1), GET_TEXTF(NO), GET_TEXTF(YES), UIData::animations_enabled())
|
||||||
#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), F("Customize Sounds"))
|
.tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXTF(INTERFACE_SOUNDS))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), F("Back"));
|
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXTF(BACK));
|
||||||
#else
|
#else
|
||||||
.tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), F("Customize Sounds"))
|
.tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SOUNDS))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), F("Back"));
|
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -263,9 +263,9 @@ void InterfaceSettingsScreen::loadSettings(const char *buff) {
|
||||||
success = persistentStore.write_data(0, data, LULZBOT_EEPROM_BACKUP_SIZE) == PERSISTENT_STORE_SUCCESS;
|
success = persistentStore.write_data(0, data, LULZBOT_EEPROM_BACKUP_SIZE) == PERSISTENT_STORE_SUCCESS;
|
||||||
|
|
||||||
if (success)
|
if (success)
|
||||||
StatusScreen::setStatusMessage(F("Settings restored from backup"));
|
StatusScreen::setStatusMessage(GET_TEXTF(EEPROM_RESTORED));
|
||||||
else
|
else
|
||||||
StatusScreen::setStatusMessage(F("Settings restored to default"));
|
StatusScreen::setStatusMessage(GET_TEXTF(EEPROM_RESET));
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,15 +71,15 @@ 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), F("Interface Sounds"))
|
.text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXTF(INTERFACE_SOUNDS))
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
#define EDGE_R 30
|
#define EDGE_R 30
|
||||||
.font(font_small)
|
.font(font_small)
|
||||||
.tag(0).text (BTN_POS(1,2), BTN_SIZE(2,1), F("Sound volume:"), OPT_RIGHTX | OPT_CENTERY)
|
.tag(0).text (BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(SOUND_VOLUME), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text (BTN_POS(1,3), BTN_SIZE(2,1), F("Click sounds:"), OPT_RIGHTX | OPT_CENTERY)
|
.text (BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(CLICK_SOUNDS), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text (BTN_POS(1,5), BTN_SIZE(2,1), F("Print starting:"), OPT_RIGHTX | OPT_CENTERY)
|
.text (BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(PRINT_STARTING), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text (BTN_POS(1,6), BTN_SIZE(2,1), F("Print finished:"), OPT_RIGHTX | OPT_CENTERY)
|
.text (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(PRINT_FINISHED), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text (BTN_POS(1,7), BTN_SIZE(2,1), F("Print error:"), OPT_RIGHTX | OPT_CENTERY);
|
.text (BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(PRINT_ERROR), OPT_RIGHTX | OPT_CENTERY);
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) {
|
||||||
#define EDGE_R 30
|
#define EDGE_R 30
|
||||||
.tag(2).slider (BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF)
|
.tag(2).slider (BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF)
|
||||||
.colors(ui_toggle)
|
.colors(ui_toggle)
|
||||||
.tag(3).toggle (BTN_POS(3,3), BTN_SIZE(w,1), F("off\xFFon"), UIData::touch_sounds_enabled())
|
.tag(3).toggle2 (BTN_POS(3,3), BTN_SIZE(w,1), GET_TEXTF(NO), GET_TEXTF(YES), UIData::touch_sounds_enabled())
|
||||||
#undef EDGE_R
|
#undef EDGE_R
|
||||||
.colors(normal_btn)
|
.colors(normal_btn)
|
||||||
#define EDGE_R 0
|
#define EDGE_R 0
|
||||||
|
@ -103,7 +103,7 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) {
|
||||||
.tag(5).button (BTN_POS(3,6), BTN_SIZE(2,1), getSoundSelection(PRINTING_FINISHED))
|
.tag(5).button (BTN_POS(3,6), BTN_SIZE(2,1), getSoundSelection(PRINTING_FINISHED))
|
||||||
.tag(6).button (BTN_POS(3,7), BTN_SIZE(2,1), getSoundSelection(PRINTING_FAILED))
|
.tag(6).button (BTN_POS(3,7), BTN_SIZE(2,1), getSoundSelection(PRINTING_FAILED))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), F("Back"));
|
.tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXTF(BACK));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,12 +34,12 @@ void JerkScreen::onRedraw(draw_mode_t what) {
|
||||||
|
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(1);
|
w.precision(1);
|
||||||
w.units(PSTR("mm/s"));
|
w.units(GET_TEXTF(UNITS_MM_S));
|
||||||
w.heading( PSTR("Maximum Jerk"));
|
w.heading(GET_TEXTF(JERK));
|
||||||
w.color(x_axis) .adjuster( 2, PSTR("X:"), getAxisMaxJerk_mm_s(X) );
|
w.color(x_axis) .adjuster( 2, GET_TEXTF(AXIS_X), getAxisMaxJerk_mm_s(X) );
|
||||||
w.color(y_axis) .adjuster( 4, PSTR("Y:"), getAxisMaxJerk_mm_s(Y) );
|
w.color(y_axis) .adjuster( 4, GET_TEXTF(AXIS_Y), getAxisMaxJerk_mm_s(Y) );
|
||||||
w.color(z_axis) .adjuster( 6, PSTR("Z:"), getAxisMaxJerk_mm_s(Z) );
|
w.color(z_axis) .adjuster( 6, GET_TEXTF(AXIS_Z), getAxisMaxJerk_mm_s(Z) );
|
||||||
w.color(e_axis) .adjuster( 8, PSTR("E:"), getAxisMaxJerk_mm_s(E0) );
|
w.color(e_axis) .adjuster( 8, GET_TEXTF(AXIS_E), getAxisMaxJerk_mm_s(E0) );
|
||||||
w.increments();
|
w.increments();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,8 @@ using namespace Theme;
|
||||||
void JunctionDeviationScreen::onRedraw(draw_mode_t what) {
|
void JunctionDeviationScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(2);
|
w.precision(2);
|
||||||
w.units(PSTR("mm"));
|
w.units(GET_TEXTF(UNITS_MM));
|
||||||
w.heading( PSTR("Junction Deviation"));
|
w.heading(GET_TEXTF(JUNCTION_DEVIATION));
|
||||||
w.color(other) .adjuster( 2, PSTR(""), getJunctionDeviation_mm() );
|
w.color(other) .adjuster( 2, PSTR(""), getJunctionDeviation_mm() );
|
||||||
w.increments();
|
w.increments();
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,8 +46,8 @@ void KillScreen::show(progmem_str message) {
|
||||||
cmd.font(Theme::font_large)
|
cmd.font(Theme::font_large)
|
||||||
.cmd(COLOR_RGB(Theme::bg_text_enabled))
|
.cmd(COLOR_RGB(Theme::bg_text_enabled))
|
||||||
.text(BTN_POS(1,2), BTN_SIZE(4,1), message)
|
.text(BTN_POS(1,2), BTN_SIZE(4,1), message)
|
||||||
.text(BTN_POS(1,3), BTN_SIZE(4,1), F("PRINTER HALTED"))
|
.text(BTN_POS(1,3), BTN_SIZE(4,1), GET_TEXTF(PRINTER_HALTED))
|
||||||
.text(BTN_POS(1,6), BTN_SIZE(4,1), F("Please reset"));
|
.text(BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXTF(PLEASE_RESET));
|
||||||
|
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
/*********************
|
||||||
|
* language_menu.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) && defined(TOUCH_UI_LANGUAGE_MENU)
|
||||||
|
|
||||||
|
#include "screens.h"
|
||||||
|
|
||||||
|
using namespace FTDI;
|
||||||
|
using namespace Theme;
|
||||||
|
|
||||||
|
void LanguageMenu::onRedraw(draw_mode_t) {
|
||||||
|
CommandProcessor cmd;
|
||||||
|
cmd.cmd(CLEAR_COLOR_RGB(Theme::bg_color))
|
||||||
|
.cmd(CLEAR(true,true,true))
|
||||||
|
.colors(normal_btn)
|
||||||
|
.font(Theme::font_medium);
|
||||||
|
|
||||||
|
#define GRID_ROWS 8
|
||||||
|
#define GRID_COLS 1
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < get_language_count(); i++)
|
||||||
|
cmd.tag(1 + i).button(BTN_POS(1,i + 1), BTN_SIZE(1,1), get_text(i, String_Indices::LANGUAGE));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LanguageMenu::onTouchEnd(uint8_t tag) {
|
||||||
|
const uint8_t lang = tag - 1;
|
||||||
|
if (tag != 0) {
|
||||||
|
set_language(lang);
|
||||||
|
GOTO_SCREEN(StatusScreen);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // LULZBOT_TOUCH_UI
|
|
@ -33,16 +33,16 @@ using namespace Theme;
|
||||||
void LinearAdvanceScreen::onRedraw(draw_mode_t what) {
|
void LinearAdvanceScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(2, DEFAULT_LOWEST).color(e_axis);
|
w.precision(2, DEFAULT_LOWEST).color(e_axis);
|
||||||
w.heading( PSTR("Linear Advance:"));
|
w.heading( GET_TEXTF(LINEAR_ADVANCE));
|
||||||
#if EXTRUDERS == 1
|
#if EXTRUDERS == 1
|
||||||
w.adjuster( 2, PSTR("K:"), getLinearAdvance_mm_mm_s(E0) );
|
w.adjuster( 2, GET_TEXTF(LINEAR_ADVANCE_K), getLinearAdvance_mm_mm_s(E0) );
|
||||||
#else
|
#else
|
||||||
w.adjuster( 2, PSTR("K E1:"), getLinearAdvance_mm_mm_s(E0) );
|
w.adjuster( 2, GET_TEXTF(LINEAR_ADVANCE_K1), getLinearAdvance_mm_mm_s(E0) );
|
||||||
w.adjuster( 4, PSTR("K E2:"), getLinearAdvance_mm_mm_s(E1) );
|
w.adjuster( 4, GET_TEXTF(LINEAR_ADVANCE_K2), getLinearAdvance_mm_mm_s(E1) );
|
||||||
#if EXTRUDERS > 2
|
#if EXTRUDERS > 2
|
||||||
w.adjuster( 6, PSTR("K E3:"), getLinearAdvance_mm_mm_s(E2) );
|
w.adjuster( 6, GET_TEXTF(LINEAR_ADVANCE_K3), getLinearAdvance_mm_mm_s(E2) );
|
||||||
#if EXTRUDERS > 3
|
#if EXTRUDERS > 3
|
||||||
w.adjuster( 8, PSTR("K E4:"), getLinearAdvance_mm_mm_s(E3) );
|
w.adjuster( 8, GET_TEXTF(LINEAR_ADVANCE_K4), getLinearAdvance_mm_mm_s(E3) );
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -65,16 +65,16 @@ void LockScreen::onRedraw(draw_mode_t what) {
|
||||||
progmem_str message;
|
progmem_str message;
|
||||||
switch (message_style()) {
|
switch (message_style()) {
|
||||||
case 'w':
|
case 'w':
|
||||||
message = F("Wrong passcode!");
|
message = GET_TEXTF(PASSCODE_REJECTED);
|
||||||
break;
|
break;
|
||||||
case 'g':
|
case 'g':
|
||||||
message = F("Passcode accepted!");
|
message = GET_TEXTF(PASSCODE_ACCEPTED);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (passcode == 0) {
|
if (passcode == 0) {
|
||||||
message = F("Select Passcode:");
|
message = GET_TEXTF(PASSCODE_SELECT);
|
||||||
} else {
|
} else {
|
||||||
message = F("Enter Passcode:");
|
message = GET_TEXTF(PASSCODE_REQUEST);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
message_style() = '\0'; // Terminate the string.
|
message_style() = '\0'; // Terminate the string.
|
||||||
|
|
|
@ -43,53 +43,53 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
#define GRID_ROWS 8
|
#define GRID_ROWS 8
|
||||||
#define GRID_COLS 2
|
#define GRID_COLS 2
|
||||||
.tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), F("Auto Home"))
|
.tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(AUTO_HOME))
|
||||||
#ifdef NOZZLE_CLEAN_FEATURE
|
#ifdef NOZZLE_CLEAN_FEATURE
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), F("Clean Nozzle"))
|
.tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(CLEAN_NOZZLE))
|
||||||
.tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), F("Move Axis"))
|
.tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(MOVE_AXIS))
|
||||||
.tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), F("Motors Off"))
|
.tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(MOTORS_OFF))
|
||||||
.tag(6).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Temperature"))
|
.tag(6).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(TEMPERATURE))
|
||||||
.tag(7).button( BTN_POS(1,4), BTN_SIZE(2,1), F("Change Filament"))
|
.tag(7).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(CHANGE_FILAMENT))
|
||||||
.tag(8).button( BTN_POS(1,5), BTN_SIZE(2,1), F("Advanced Settings"))
|
.tag(8).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(ADVANCED_SETTINGS))
|
||||||
#ifdef PRINTCOUNTER
|
#ifdef PRINTCOUNTER
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(9).button( BTN_POS(1,7), BTN_SIZE(2,1), F("Printer Statistics"))
|
.tag(9).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(PRINTER_STATISTICS))
|
||||||
.tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), F("About Printer"))
|
.tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(ABOUT_PRINTER))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
|
.tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
#else
|
#else
|
||||||
#define GRID_ROWS 5
|
#define GRID_ROWS 5
|
||||||
#define GRID_COLS 2
|
#define GRID_COLS 2
|
||||||
.tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), F("Auto Home"))
|
.tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT(AUTO_HOME))
|
||||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), F("Clean Nozzle"))
|
.tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(CLEAN_NOZZLE))
|
||||||
.tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), F("Move Axis"))
|
.tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(MOVE_AXIS))
|
||||||
.tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), F("Motors Off"))
|
.tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(MOTORS_OFF))
|
||||||
.tag(6).button( BTN_POS(1,3), BTN_SIZE(1,1), F("Temperature"))
|
.tag(6).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXTF(TEMPERATURE))
|
||||||
.tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), F("Change Filament"))
|
.tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(CHANGE_FILAMENT))
|
||||||
.tag(8).button( BTN_POS(1,4), BTN_SIZE(1,1), F("Advanced Settings"))
|
.tag(8).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(ADVANCED_SETTINGS))
|
||||||
#ifdef PRINTCOUNTER
|
#ifdef PRINTCOUNTER
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(9).button( BTN_POS(2,4), BTN_SIZE(1,1), F("Printer Statistics"))
|
.tag(9).button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(PRINTER_STATISTICS))
|
||||||
.tag(10).button( BTN_POS(1,5), BTN_SIZE(1,1), F("About Printer"))
|
.tag(10).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(ABOUT_PRINTER))
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button( BTN_POS(2,5), BTN_SIZE(1,1), F("Back"));
|
.tag(1).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(BACK));
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
#undef GRID_ROWS
|
#undef GRID_ROWS
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,21 +33,21 @@ using namespace Theme;
|
||||||
void MaxAccelerationScreen::onRedraw(draw_mode_t what) {
|
void MaxAccelerationScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0);
|
w.precision(0);
|
||||||
w.units(PSTR("mm/s^2"));
|
w.units(GET_TEXTF(UNITS_MM_S2));
|
||||||
w.heading( PSTR("Maximum Acceleration"));
|
w.heading(GET_TEXTF(ACCELERATION));
|
||||||
w.color(x_axis) .adjuster( 2, PSTR("X:"), getAxisMaxAcceleration_mm_s2(X) );
|
w.color(x_axis) .adjuster( 2, GET_TEXTF(AMAX_X), getAxisMaxAcceleration_mm_s2(X) );
|
||||||
w.color(y_axis) .adjuster( 4, PSTR("Y:"), getAxisMaxAcceleration_mm_s2(Y) );
|
w.color(y_axis) .adjuster( 4, GET_TEXTF(AMAX_Y), getAxisMaxAcceleration_mm_s2(Y) );
|
||||||
w.color(z_axis) .adjuster( 6, PSTR("Z:"), getAxisMaxAcceleration_mm_s2(Z) );
|
w.color(z_axis) .adjuster( 6, GET_TEXTF(AMAX_Z), getAxisMaxAcceleration_mm_s2(Z) );
|
||||||
#if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
|
#if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
|
||||||
w.color(e_axis).adjuster( 8, PSTR("E:"), getAxisMaxAcceleration_mm_s2(E0) );
|
w.color(e_axis).adjuster( 8, GET_TEXTF(AMAX_E1), getAxisMaxAcceleration_mm_s2(E0) );
|
||||||
#elif EXTRUDERS > 1
|
#elif EXTRUDERS > 1
|
||||||
w.color(e_axis).adjuster( 8, PSTR("E1:"), getAxisMaxAcceleration_mm_s2(E0) );
|
w.color(e_axis).adjuster( 8, GET_TEXTF(AMAX_E1), getAxisMaxAcceleration_mm_s2(E0) );
|
||||||
w.color(e_axis).adjuster(10, PSTR("E2:"), getAxisMaxAcceleration_mm_s2(E1) );
|
w.color(e_axis).adjuster(10, GET_TEXTF(AMAX_E2), getAxisMaxAcceleration_mm_s2(E1) );
|
||||||
#if EXTRUDERS > 2
|
#if EXTRUDERS > 2
|
||||||
w.color(e_axis).adjuster(12, PSTR("E3:"), getAxisMaxAcceleration_mm_s2(E2) );
|
w.color(e_axis).adjuster(12, GET_TEXTF(AMAX_E3), getAxisMaxAcceleration_mm_s2(E2) );
|
||||||
#endif
|
#endif
|
||||||
#if EXTRUDERS > 3
|
#if EXTRUDERS > 3
|
||||||
w.color(e_axis).adjuster(14, PSTR("E4:"), getAxisMaxAcceleration_mm_s2(E3) );
|
w.color(e_axis).adjuster(14, GET_TEXTF(AMAX_E4), getAxisMaxAcceleration_mm_s2(E3) );
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
w.increments();
|
w.increments();
|
||||||
|
|
|
@ -34,21 +34,21 @@ void MaxVelocityScreen::onRedraw(draw_mode_t what) {
|
||||||
using namespace ExtUI;
|
using namespace ExtUI;
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0);
|
w.precision(0);
|
||||||
w.units(PSTR("mm/s"));
|
w.units(GET_TEXTF(UNITS_MM_S));
|
||||||
w.heading( PSTR("Maximum Velocity"));
|
w.heading( GET_TEXTF(VELOCITY));
|
||||||
w.color(x_axis) .adjuster( 2, PSTR("X:"), getAxisMaxFeedrate_mm_s(X) );
|
w.color(x_axis) .adjuster( 2, GET_TEXTF(VMAX_X), getAxisMaxFeedrate_mm_s(X) );
|
||||||
w.color(y_axis) .adjuster( 4, PSTR("Y:"), getAxisMaxFeedrate_mm_s(Y) );
|
w.color(y_axis) .adjuster( 4, GET_TEXTF(VMAX_Y), getAxisMaxFeedrate_mm_s(Y) );
|
||||||
w.color(z_axis) .adjuster( 6, PSTR("Z:"), getAxisMaxFeedrate_mm_s(Z) );
|
w.color(z_axis) .adjuster( 6, GET_TEXTF(VMAX_Z), getAxisMaxFeedrate_mm_s(Z) );
|
||||||
#if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
|
#if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
|
||||||
w.color(e_axis) .adjuster( 8, PSTR("E:"), getAxisMaxFeedrate_mm_s(E0) );
|
w.color(e_axis) .adjuster( 8, GET_TEXTF(VMAX_E1), getAxisMaxFeedrate_mm_s(E0) );
|
||||||
#elif EXTRUDERS > 1
|
#elif EXTRUDERS > 1
|
||||||
w.color(e_axis) .adjuster( 8, PSTR("E1:"), getAxisMaxFeedrate_mm_s(E0) );
|
w.color(e_axis) .adjuster( 8, GET_TEXTF(VMAX_E1), getAxisMaxFeedrate_mm_s(E0) );
|
||||||
w.color(e_axis) .adjuster( 10, PSTR("E2:"), getAxisMaxFeedrate_mm_s(E1) );
|
w.color(e_axis) .adjuster( 10, GET_TEXTF(VMAX_E2), getAxisMaxFeedrate_mm_s(E1) );
|
||||||
#if EXTRUDERS > 2
|
#if EXTRUDERS > 2
|
||||||
w.color(e_axis).adjuster( 12, PSTR("E3:"), getAxisMaxFeedrate_mm_s(E2) );
|
w.color(e_axis).adjuster( 12, GET_TEXTF(VMAX_E3), getAxisMaxFeedrate_mm_s(E2) );
|
||||||
#endif
|
#endif
|
||||||
#if EXTRUDERS > 3
|
#if EXTRUDERS > 3
|
||||||
w.color(e_axis).adjuster( 14, PSTR("E4:"), getAxisMaxFeedrate_mm_s(E3) );
|
w.color(e_axis).adjuster( 14, GET_TEXTF(VMAX_E4), getAxisMaxFeedrate_mm_s(E3) );
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
w.increments();
|
w.increments();
|
||||||
|
|
|
@ -45,23 +45,23 @@ void MoveAxisScreen::onEntry() {
|
||||||
void MoveAxisScreen::onRedraw(draw_mode_t what) {
|
void MoveAxisScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(1);
|
w.precision(1);
|
||||||
w.units(PSTR("mm"));
|
w.units(GET_TEXTF(UNITS_MM));
|
||||||
w.heading( PSTR("Move Axis"));
|
w.heading( GET_TEXTF(MOVE_AXIS));
|
||||||
w.home_buttons(20);
|
w.home_buttons(20);
|
||||||
w.color(Theme::x_axis ) .adjuster( 2, PSTR("X:"), getAxisPosition_mm(X), canMove(X));
|
w.color(Theme::x_axis ) .adjuster( 2, GET_TEXTF(AXIS_X), getAxisPosition_mm(X), canMove(X));
|
||||||
w.color(Theme::y_axis ) .adjuster( 4, PSTR("Y:"), getAxisPosition_mm(Y), canMove(Y));
|
w.color(Theme::y_axis ) .adjuster( 4, GET_TEXTF(AXIS_Y), getAxisPosition_mm(Y), canMove(Y));
|
||||||
w.color(Theme::z_axis ) .adjuster( 6, PSTR("Z:"), getAxisPosition_mm(Z), canMove(Z));
|
w.color(Theme::z_axis ) .adjuster( 6, GET_TEXTF(AXIS_Z), getAxisPosition_mm(Z), canMove(Z));
|
||||||
|
|
||||||
#if EXTRUDERS == 1
|
#if EXTRUDERS == 1
|
||||||
w.color(Theme::e_axis) .adjuster( 8, PSTR("E:"), screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
|
w.color(Theme::e_axis) .adjuster( 8, GET_TEXTF(AXIS_E), screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
|
||||||
#elif EXTRUDERS > 1
|
#elif EXTRUDERS > 1
|
||||||
w.color(Theme::e_axis) .adjuster( 8, PSTR("E1:"), screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
|
w.color(Theme::e_axis) .adjuster( 8, GET_TEXTF(AXIS_E1), screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
|
||||||
w.color(Theme::e_axis) .adjuster( 10, PSTR("E2:"), screen_data.MoveAxisScreen.e_rel[1], canMove(E1));
|
w.color(Theme::e_axis) .adjuster( 10, GET_TEXTF(AXIS_E2), screen_data.MoveAxisScreen.e_rel[1], canMove(E1));
|
||||||
#if EXTRUDERS > 2
|
#if EXTRUDERS > 2
|
||||||
w.color(Theme::e_axis) .adjuster( 12, PSTR("E3:"), screen_data.MoveAxisScreen.e_rel[2], canMove(E2));
|
w.color(Theme::e_axis) .adjuster( 12, GET_TEXTF(AXIS_E3), screen_data.MoveAxisScreen.e_rel[2], canMove(E2));
|
||||||
#endif
|
#endif
|
||||||
#if EXTRUDERS > 3
|
#if EXTRUDERS > 3
|
||||||
w.color(Theme::e_axis) .adjuster( 14, PSTR("E4:"), screen_data.MoveAxisScreen.e_rel[3], canMove(E3));
|
w.color(Theme::e_axis) .adjuster( 14, GET_TEXTF(AXIS_E4), screen_data.MoveAxisScreen.e_rel[3], canMove(E3));
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
w.increments();
|
w.increments();
|
||||||
|
|
|
@ -39,14 +39,14 @@ void NozzleOffsetScreen::onEntry() {
|
||||||
|
|
||||||
void NozzleOffsetScreen::onRedraw(draw_mode_t what) {
|
void NozzleOffsetScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(2).units(PSTR("mm"));
|
w.precision(2).units(GET_TEXTF(UNITS_MM));
|
||||||
|
|
||||||
w.heading( PSTR("Nozzle Offset"));
|
w.heading( GET_TEXTF(TOOL_OFFSETS));
|
||||||
w.color(Theme::x_axis).adjuster(2, PSTR("X:"), ExtUI::getNozzleOffset_mm(X, E1));
|
w.color(Theme::x_axis).adjuster(2, GET_TEXTF(AXIS_X), ExtUI::getNozzleOffset_mm(X, E1));
|
||||||
w.color(Theme::y_axis).adjuster(4, PSTR("Y:"), ExtUI::getNozzleOffset_mm(Y, E1));
|
w.color(Theme::y_axis).adjuster(4, GET_TEXTF(AXIS_Y), ExtUI::getNozzleOffset_mm(Y, E1));
|
||||||
w.color(Theme::z_axis).adjuster(6, PSTR("Z:"), ExtUI::getNozzleOffset_mm(Z, E1));
|
w.color(Theme::z_axis).adjuster(6, GET_TEXTF(AXIS_Z), ExtUI::getNozzleOffset_mm(Z, E1));
|
||||||
#if ENABLED(CALIBRATION_GCODE)
|
#if ENABLED(CALIBRATION_GCODE)
|
||||||
w.button(8, PSTR("Measure automatically"), !isPrinting());
|
w.button(8, GET_TEXTF(MEASURE_AUTOMATICALLY), !isPrinting());
|
||||||
#endif
|
#endif
|
||||||
w.increments();
|
w.increments();
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,41 +44,42 @@ void NudgeNozzleScreen::onEntry() {
|
||||||
|
|
||||||
void NudgeNozzleScreen::onRedraw(draw_mode_t what) {
|
void NudgeNozzleScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(PSTR("mm"));
|
w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXTF(UNITS_MM));
|
||||||
|
|
||||||
w.heading( PSTR("Nudge Nozzle"));
|
w.heading( GET_TEXTF(NUDGE_NOZZLE));
|
||||||
#if ENABLED(BABYSTEP_XY)
|
#if ENABLED(BABYSTEP_XY)
|
||||||
w.color(x_axis).adjuster(2, PSTR("X:"), screen_data.NudgeNozzleScreen.rel[0] / getAxisSteps_per_mm(X));
|
w.color(x_axis).adjuster(2, GET_TEXTF(AXIS_X), screen_data.NudgeNozzleScreen.rel[0] / getAxisSteps_per_mm(X));
|
||||||
w.color(y_axis).adjuster(4, PSTR("Y:"), screen_data.NudgeNozzleScreen.rel[1] / getAxisSteps_per_mm(Y));
|
w.color(y_axis).adjuster(4, GET_TEXTF(AXIS_Y), screen_data.NudgeNozzleScreen.rel[1] / getAxisSteps_per_mm(Y));
|
||||||
#endif
|
#endif
|
||||||
w.color(z_axis).adjuster(6, PSTR("Z:"), screen_data.NudgeNozzleScreen.rel[2] / getAxisSteps_per_mm(Z));
|
w.color(z_axis).adjuster(6, GET_TEXTF(AXIS_Z), screen_data.NudgeNozzleScreen.rel[2] / getAxisSteps_per_mm(Z));
|
||||||
w.increments();
|
w.increments();
|
||||||
#if EXTRUDERS > 1
|
#if EXTRUDERS > 1
|
||||||
w.toggle (8, PSTR("Adjust Both Nozzles:"), PSTR("no\xFFyes"), screen_data.NudgeNozzleScreen.link_nozzles, PSTR("Yes\nNo"));
|
w.toggle (8, GET_TEXTF(ADJUST_BOTH_NOZZLES), screen_data.NudgeNozzleScreen.link_nozzles);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EXTRUDERS > 1 || HAS_BED_PROBE
|
#if EXTRUDERS > 1 || HAS_BED_PROBE
|
||||||
w.toggle (9, PSTR("Show Offsets:"), PSTR("no\xFFyes"), screen_data.NudgeNozzleScreen.show_offsets, PSTR("Yes\nNo"));
|
w.toggle (9, GET_TEXTF(SHOW_OFFSETS), screen_data.NudgeNozzleScreen.show_offsets);
|
||||||
|
|
||||||
if (screen_data.NudgeNozzleScreen.show_offsets) {
|
if (screen_data.NudgeNozzleScreen.show_offsets) {
|
||||||
char str[19], num1[7];
|
char str[19];
|
||||||
|
|
||||||
w.draw_mode(BOTH);
|
w.draw_mode(BOTH);
|
||||||
w.color(other);
|
w.color(other);
|
||||||
|
|
||||||
#if HAS_BED_PROBE
|
#if HAS_BED_PROBE
|
||||||
dtostrf(getZOffset_mm(), 4, 2, num1);
|
dtostrf(getZOffset_mm(), 4, 2, str);
|
||||||
sprintf_P(str, PSTR("%s mm"), num1);
|
strcat(str, " ");
|
||||||
w.text_field (0, PSTR("Z Offset"), str);
|
strcat_P(str, GET_TEXT(UNITS_MM));
|
||||||
|
w.text_field (0, GET_TEXTF(ZPROBE_ZOFFSET), str);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EXTRUDERS > 1
|
#if EXTRUDERS > 1
|
||||||
char num2[7], num3[7];
|
char num1[7], num2[7], num3[7];
|
||||||
dtostrf(getNozzleOffset_mm(X, E1), 4, 2, num1);
|
dtostrf(getNozzleOffset_mm(X, E1), 4, 2, num1);
|
||||||
dtostrf(getNozzleOffset_mm(Y, E1), 4, 2, num2);
|
dtostrf(getNozzleOffset_mm(Y, E1), 4, 2, num2);
|
||||||
dtostrf(getNozzleOffset_mm(Z, E1), 4, 2, num3);
|
dtostrf(getNozzleOffset_mm(Z, E1), 4, 2, num3);
|
||||||
sprintf_P(str, PSTR("%s; %s; %s mm"), num1, num2, num3);
|
sprintf_P(str, PSTR("%s; %s; %s %S"), num1, num2, num3, GET_TEXT(UNITS_MM));
|
||||||
w.text_field (0, PSTR("Noz. Offset"), str);
|
w.text_field (0, GET_TEXTF(TOOL_OFFSETS), str);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,15 +29,15 @@
|
||||||
using namespace ExtUI;
|
using namespace ExtUI;
|
||||||
|
|
||||||
void RestoreFailsafeDialogBox::onRedraw(draw_mode_t) {
|
void RestoreFailsafeDialogBox::onRedraw(draw_mode_t) {
|
||||||
drawMessage(F("Are you sure? Customizations will be lost."));
|
drawMessage(GET_TEXTF(EEPROM_RESET_WARNING));
|
||||||
drawYesNoButtons();
|
drawYesNoButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RestoreFailsafeDialogBox::onTouchEnd(uint8_t tag) {
|
bool RestoreFailsafeDialogBox::onTouchEnd(uint8_t tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 1:
|
case 1:
|
||||||
ExtUI::injectCommands_P(PSTR("M502\nM117 Factory settings restored."));
|
ExtUI::injectCommands_P(PSTR("M502"));
|
||||||
AlertDialogBox::show(F("Factory settings restored."));
|
AlertDialogBox::show(GET_TEXTF(EEPROM_RESET));
|
||||||
// Remove RestoreFailsafeDialogBox from the stack
|
// Remove RestoreFailsafeDialogBox from the stack
|
||||||
// so the alert box doesn't return to it.
|
// so the alert box doesn't return to it.
|
||||||
current_screen.forget();
|
current_screen.forget();
|
||||||
|
|
|
@ -31,7 +31,7 @@ using namespace ExtUI;
|
||||||
bool SaveSettingsDialogBox::needs_save = false;
|
bool SaveSettingsDialogBox::needs_save = false;
|
||||||
|
|
||||||
void SaveSettingsDialogBox::onRedraw(draw_mode_t) {
|
void SaveSettingsDialogBox::onRedraw(draw_mode_t) {
|
||||||
drawMessage(F("Do you wish to save these settings as defaults?"));
|
drawMessage(GET_TEXTF(EEPROM_SAVE_PROMPT));
|
||||||
drawYesNoButtons();
|
drawYesNoButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ bool SaveSettingsDialogBox::onTouchEnd(uint8_t tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 1:
|
case 1:
|
||||||
injectCommands_P(PSTR("M500"));
|
injectCommands_P(PSTR("M500"));
|
||||||
AlertDialogBox::show(F("Settings saved!"));
|
AlertDialogBox::show(GET_TEXTF(EEPROM_SAVED));
|
||||||
// Remove SaveSettingsDialogBox from the stack
|
// Remove SaveSettingsDialogBox from the stack
|
||||||
// so the alert box doesn't return to me.
|
// so the alert box doesn't return to me.
|
||||||
current_screen.forget();
|
current_screen.forget();
|
||||||
|
|
|
@ -31,6 +31,9 @@ screen_data_t screen_data;
|
||||||
|
|
||||||
SCREEN_TABLE {
|
SCREEN_TABLE {
|
||||||
DECL_SCREEN(BootScreen),
|
DECL_SCREEN(BootScreen),
|
||||||
|
#if ENABLED(TOUCH_UI_LANGUAGE_MENU)
|
||||||
|
DECL_SCREEN(LanguageMenu),
|
||||||
|
#endif
|
||||||
DECL_SCREEN(TouchCalibrationScreen),
|
DECL_SCREEN(TouchCalibrationScreen),
|
||||||
DECL_SCREEN(StatusScreen),
|
DECL_SCREEN(StatusScreen),
|
||||||
DECL_SCREEN(MainMenu),
|
DECL_SCREEN(MainMenu),
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../ftdi_eve_lib/ftdi_eve_lib.h"
|
#include "../ftdi_eve_lib/ftdi_eve_lib.h"
|
||||||
|
#include "../language/languages.h"
|
||||||
#include "../theme/theme.h"
|
#include "../theme/theme.h"
|
||||||
|
|
||||||
#define ROUND(val) uint16_t((val)+0.5)
|
#define ROUND(val) uint16_t((val)+0.5)
|
||||||
|
@ -219,6 +220,7 @@ class StatusScreen : public BaseScreen, public CachedScreen<STATUS_SCREEN_CACHE,
|
||||||
static void draw_status_message(draw_mode_t, const char * const);
|
static void draw_status_message(draw_mode_t, const char * const);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static void loadBitmaps();
|
||||||
static void setStatusMessage(const char *);
|
static void setStatusMessage(const char *);
|
||||||
static void setStatusMessage(progmem_str);
|
static void setStatusMessage(progmem_str);
|
||||||
static void onRedraw(draw_mode_t);
|
static void onRedraw(draw_mode_t);
|
||||||
|
@ -350,7 +352,7 @@ class BaseNumericAdjustmentScreen : public BaseScreen {
|
||||||
uint8_t _line;
|
uint8_t _line;
|
||||||
uint32_t _color;
|
uint32_t _color;
|
||||||
uint8_t _decimals;
|
uint8_t _decimals;
|
||||||
const char *_units;
|
progmem_str _units;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _draw_increment_btn(uint8_t line, const uint8_t tag);
|
void _draw_increment_btn(uint8_t line, const uint8_t tag);
|
||||||
|
@ -359,19 +361,19 @@ class BaseNumericAdjustmentScreen : public BaseScreen {
|
||||||
widgets_t(draw_mode_t);
|
widgets_t(draw_mode_t);
|
||||||
|
|
||||||
widgets_t &color(uint32_t color) {_color = color; return *this;}
|
widgets_t &color(uint32_t color) {_color = color; return *this;}
|
||||||
widgets_t &units(const char *units) {_units = units; return *this;}
|
widgets_t &units(progmem_str units) {_units = units; return *this;}
|
||||||
widgets_t &draw_mode(draw_mode_t what) {_what = what; return *this;}
|
widgets_t &draw_mode(draw_mode_t what) {_what = what; return *this;}
|
||||||
widgets_t &precision(uint8_t decimals, precision_default_t = DEFAULT_HIGHEST);
|
widgets_t &precision(uint8_t decimals, precision_default_t = DEFAULT_HIGHEST);
|
||||||
|
|
||||||
void heading (const char *label);
|
void heading (progmem_str label);
|
||||||
void adjuster_sram_val (uint8_t tag, const char *label, const char *value, bool is_enabled = true);
|
void adjuster_sram_val (uint8_t tag, progmem_str label, const char *value, bool is_enabled = true);
|
||||||
void adjuster (uint8_t tag, const char *label, const char *value, bool is_enabled = true);
|
void adjuster (uint8_t tag, progmem_str label, const char *value, bool is_enabled = true);
|
||||||
void adjuster (uint8_t tag, const char *label, float value=0, bool is_enabled = true);
|
void adjuster (uint8_t tag, progmem_str label, float value=0, bool is_enabled = true);
|
||||||
void button (uint8_t tag, const char *label, bool is_enabled = true);
|
void button (uint8_t tag, progmem_str label, bool is_enabled = true);
|
||||||
void text_field (uint8_t tag, const char *label, const char *value, bool is_enabled = true);
|
void text_field (uint8_t tag, progmem_str label, const char *value, bool is_enabled = true);
|
||||||
void two_buttons (uint8_t tag1, const char *label1,
|
void two_buttons (uint8_t tag1, progmem_str label1,
|
||||||
uint8_t tag2, const char *label2, bool is_enabled = true);
|
uint8_t tag2, progmem_str label2, bool is_enabled = true);
|
||||||
void toggle (uint8_t tag, const char *label, const char *text, bool value, bool is_enabled = true);
|
void toggle (uint8_t tag, progmem_str label, bool value, bool is_enabled = true);
|
||||||
void home_buttons (uint8_t tag);
|
void home_buttons (uint8_t tag);
|
||||||
void increments ();
|
void increments ();
|
||||||
};
|
};
|
||||||
|
@ -710,3 +712,11 @@ class MediaPlayerScreen : public BaseScreen, public UncachedScreen {
|
||||||
|
|
||||||
static void playStream(void *obj, media_streamer_func_t*);
|
static void playStream(void *obj, media_streamer_func_t*);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if ENABLED(TOUCH_UI_LANGUAGE_MENU)
|
||||||
|
class LanguageMenu : public BaseScreen, public UncachedScreen {
|
||||||
|
public:
|
||||||
|
static void onRedraw(draw_mode_t);
|
||||||
|
static bool onTouchEnd(uint8_t tag);
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
|
@ -46,7 +46,7 @@ void SpinnerDialogBox::hide() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpinnerDialogBox::enqueueAndWait_P(const progmem_str commands) {
|
void SpinnerDialogBox::enqueueAndWait_P(const progmem_str commands) {
|
||||||
enqueueAndWait_P(F("Please wait..."), commands);
|
enqueueAndWait_P(GET_TEXTF(PLEASE_WAIT), commands);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpinnerDialogBox::enqueueAndWait_P(const progmem_str message, const progmem_str commands) {
|
void SpinnerDialogBox::enqueueAndWait_P(const progmem_str message, const progmem_str commands) {
|
||||||
|
|
|
@ -44,14 +44,14 @@ void StatisticsScreen::onRedraw(draw_mode_t what) {
|
||||||
.tag(0)
|
.tag(0)
|
||||||
|
|
||||||
.font(Theme::font_medium)
|
.font(Theme::font_medium)
|
||||||
.text(BTN_POS(1,1), BTN_SIZE(4,1), F("Printer Statistics"))
|
.text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXTF(PRINTER_STATISTICS))
|
||||||
.font(Theme::font_small)
|
.font(Theme::font_small)
|
||||||
.tag(0)
|
.tag(0)
|
||||||
.text(BTN_POS(1,2), BTN_SIZE(2,1), F("Total Prints:"), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_COUNT), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,3), BTN_SIZE(2,1), F("Finished Prints:"), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(INFO_COMPLETED_PRINTS), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,4), BTN_SIZE(2,1), F("Total Print Time:"), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_TIME), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,5), BTN_SIZE(2,1), F("Longest Print:"), OPT_RIGHTX | OPT_CENTERY)
|
.text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_LONGEST), OPT_RIGHTX | OPT_CENTERY)
|
||||||
.text(BTN_POS(1,6), BTN_SIZE(2,1), F("Filament Used:"), OPT_RIGHTX | OPT_CENTERY);
|
.text(BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_FILAMENT), OPT_RIGHTX | OPT_CENTERY);
|
||||||
// Don't chain the following, it causes strange issues with evaluation ordering!
|
// Don't chain the following, it causes strange issues with evaluation ordering!
|
||||||
cmd.text(BTN_POS(3,2), BTN_SIZE(2,1), getTotalPrints_str(buffer));
|
cmd.text(BTN_POS(3,2), BTN_SIZE(2,1), getTotalPrints_str(buffer));
|
||||||
cmd.text(BTN_POS(3,3), BTN_SIZE(2,1), getFinishedPrints_str(buffer));
|
cmd.text(BTN_POS(3,3), BTN_SIZE(2,1), getFinishedPrints_str(buffer));
|
||||||
|
@ -63,7 +63,7 @@ void StatisticsScreen::onRedraw(draw_mode_t what) {
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
cmd.font(Theme::font_medium)
|
cmd.font(Theme::font_medium)
|
||||||
.colors(action_btn)
|
.colors(action_btn)
|
||||||
.tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), F("Back"));
|
.tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXTF(BACK));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,14 +22,14 @@
|
||||||
|
|
||||||
#include "../config.h"
|
#include "../config.h"
|
||||||
|
|
||||||
#if ENABLED(LULZBOT_TOUCH_UI) && !defined(LULZBOT_USE_BIOPRINTER_UI)
|
#if ENABLED(LULZBOT_TOUCH_UI) && DISABLED(LULZBOT_USE_BIOPRINTER_UI)
|
||||||
|
|
||||||
#include "screens.h"
|
#include "screens.h"
|
||||||
#include "screen_data.h"
|
#include "screen_data.h"
|
||||||
|
|
||||||
#include "../archim2-flash/flash_storage.h"
|
#include "../archim2-flash/flash_storage.h"
|
||||||
|
|
||||||
#if ENABLED(SDSUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
|
#if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
|
||||||
#include "../../../../../sd/cardreader.h"
|
#include "../../../../../sd/cardreader.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -57,9 +57,9 @@ void StatusScreen::draw_axis_position(draw_mode_t what) {
|
||||||
.button( BTN_POS(1,7), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
.button( BTN_POS(1,7), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
||||||
|
|
||||||
.font(Theme::font_small)
|
.font(Theme::font_small)
|
||||||
.text ( BTN_POS(1,5), BTN_SIZE(1,1), F("X"))
|
.text ( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_X))
|
||||||
.text ( BTN_POS(1,6), BTN_SIZE(1,1), F("Y"))
|
.text ( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(AXIS_Y))
|
||||||
.text ( BTN_POS(1,7), BTN_SIZE(1,1), F("Z"))
|
.text ( BTN_POS(1,7), BTN_SIZE(1,1), GET_TEXTF(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( BTN_POS(2,5), BTN_SIZE(2,1), F(""), OPT_FLAT)
|
||||||
|
@ -73,9 +73,9 @@ void StatusScreen::draw_axis_position(draw_mode_t what) {
|
||||||
.button( BTN_POS(3,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), F("X"))
|
.text ( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_X))
|
||||||
.text ( BTN_POS(2,5), BTN_SIZE(1,1), F("Y"))
|
.text ( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_Y))
|
||||||
.text ( BTN_POS(3,5), BTN_SIZE(1,1), F("Z"))
|
.text ( BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_Z))
|
||||||
.font(Theme::font_medium)
|
.font(Theme::font_medium)
|
||||||
|
|
||||||
.fgcolor(Theme::x_axis) .button( BTN_POS(1,6), BTN_SIZE(1,1), F(""), OPT_FLAT)
|
.fgcolor(Theme::x_axis) .button( BTN_POS(1,6), BTN_SIZE(1,1), F(""), OPT_FLAT)
|
||||||
|
@ -92,21 +92,24 @@ void StatusScreen::draw_axis_position(draw_mode_t what) {
|
||||||
|
|
||||||
if (isAxisPositionKnown(X)) {
|
if (isAxisPositionKnown(X)) {
|
||||||
dtostrf(getAxisPosition_mm(X), 5, 1, x_str);
|
dtostrf(getAxisPosition_mm(X), 5, 1, x_str);
|
||||||
strcat_P(x_str, PSTR(" mm"));
|
strcat_P(x_str, " ");
|
||||||
|
strcat_P(x_str, GET_TEXT(UNITS_MM));
|
||||||
} else {
|
} else {
|
||||||
strcpy_P(x_str, PSTR("?"));
|
strcpy_P(x_str, PSTR("?"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isAxisPositionKnown(Y)) {
|
if (isAxisPositionKnown(Y)) {
|
||||||
dtostrf(getAxisPosition_mm(Y), 5, 1, y_str);
|
dtostrf(getAxisPosition_mm(Y), 5, 1, y_str);
|
||||||
strcat_P(y_str, PSTR(" mm"));
|
strcat_P(y_str, " ");
|
||||||
|
strcat_P(y_str, GET_TEXT(UNITS_MM));
|
||||||
} else {
|
} else {
|
||||||
strcpy_P(y_str, PSTR("?"));
|
strcpy_P(y_str, PSTR("?"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isAxisPositionKnown(Z)) {
|
if (isAxisPositionKnown(Z)) {
|
||||||
dtostrf(getAxisPosition_mm(Z), 5, 1, z_str);
|
dtostrf(getAxisPosition_mm(Z), 5, 1, z_str);
|
||||||
strcat_P(z_str, PSTR(" mm"));
|
strcat_P(z_str, " ");
|
||||||
|
strcat_P(z_str, GET_TEXT(UNITS_MM));
|
||||||
} else {
|
} else {
|
||||||
strcpy_P(z_str, PSTR("?"));
|
strcpy_P(z_str, PSTR("?"));
|
||||||
}
|
}
|
||||||
|
@ -182,10 +185,10 @@ void StatusScreen::draw_temperature(draw_mode_t what) {
|
||||||
|
|
||||||
if (what & FOREGROUND) {
|
if (what & FOREGROUND) {
|
||||||
using namespace ExtUI;
|
using namespace ExtUI;
|
||||||
char e0_str[15];
|
char e0_str[20];
|
||||||
char e1_str[15];
|
char e1_str[20];
|
||||||
char bed_str[15];
|
char bed_str[20];
|
||||||
char fan_str[15];
|
char fan_str[20];
|
||||||
|
|
||||||
sprintf_P(
|
sprintf_P(
|
||||||
fan_str,
|
fan_str,
|
||||||
|
@ -193,35 +196,21 @@ void StatusScreen::draw_temperature(draw_mode_t what) {
|
||||||
int8_t(getActualFan_percent(FAN0))
|
int8_t(getActualFan_percent(FAN0))
|
||||||
);
|
);
|
||||||
|
|
||||||
#if defined(TOUCH_UI_USE_UTF8) && defined(TOUCH_UI_UTF8_WESTERN_CHARSET)
|
if (isHeaterIdle(BED))
|
||||||
const char *idle = PSTR(u8"%3d°C / idle");
|
sprintf_P(bed_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(BED)), GET_TEXT(UNITS_C), GET_TEXT(TEMP_IDLE));
|
||||||
const char *not_idle = PSTR(u8"%3d / %3d°C");
|
else
|
||||||
#else
|
sprintf_P(bed_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(BED)), ROUND(getTargetTemp_celsius(BED)), GET_TEXT(UNITS_C));
|
||||||
const char *idle = PSTR("%3d C / idle");
|
|
||||||
const char *not_idle = PSTR("%3d / %3d C");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
sprintf_P(
|
if (isHeaterIdle(H0))
|
||||||
bed_str,
|
sprintf_P(e0_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(H0)), GET_TEXT(UNITS_C), GET_TEXT(TEMP_IDLE));
|
||||||
isHeaterIdle(BED) ? idle : not_idle,
|
else
|
||||||
ROUND(getActualTemp_celsius(BED)),
|
sprintf_P(e0_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(H0)), ROUND(getTargetTemp_celsius(H0)), GET_TEXT(UNITS_C));
|
||||||
ROUND(getTargetTemp_celsius(BED))
|
|
||||||
);
|
|
||||||
|
|
||||||
sprintf_P(
|
|
||||||
e0_str,
|
|
||||||
isHeaterIdle(H0) ? idle : not_idle,
|
|
||||||
ROUND(getActualTemp_celsius(H0)),
|
|
||||||
ROUND(getTargetTemp_celsius(H0))
|
|
||||||
);
|
|
||||||
|
|
||||||
#if EXTRUDERS == 2
|
#if EXTRUDERS == 2
|
||||||
sprintf_P(
|
if (isHeaterIdle(H1))
|
||||||
e1_str,
|
sprintf_P(e1_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(H1)), PSTR(GET_TEXT(UNITS_C)), GET_TEXT(TEMP_IDLE));
|
||||||
isHeaterIdle(H1) ? idle : not_idle,
|
else
|
||||||
ROUND(getActualTemp_celsius(H1)),
|
sprintf_P(e1_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(H1)), ROUND(getTargetTemp_celsius(H1)), GET_TEXT(UNITS_C));
|
||||||
ROUND(getTargetTemp_celsius(H1))
|
|
||||||
);
|
|
||||||
#else
|
#else
|
||||||
strcpy_P(
|
strcpy_P(
|
||||||
e1_str,
|
e1_str,
|
||||||
|
@ -290,7 +279,7 @@ void StatusScreen::draw_interaction_buttons(draw_mode_t what) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
cmd.colors(normal_btn)
|
cmd.colors(normal_btn)
|
||||||
.font(Theme::font_medium)
|
.font(Theme::font_medium)
|
||||||
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
|
#if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
|
||||||
.enabled(!Sd2Card::ready() || has_media)
|
.enabled(!Sd2Card::ready() || has_media)
|
||||||
#else
|
#else
|
||||||
.enabled(has_media)
|
.enabled(has_media)
|
||||||
|
@ -301,22 +290,17 @@ void StatusScreen::draw_interaction_buttons(draw_mode_t what) {
|
||||||
#else
|
#else
|
||||||
.tag(3).button( BTN_POS(1,7), BTN_SIZE(2,2),
|
.tag(3).button( BTN_POS(1,7), BTN_SIZE(2,2),
|
||||||
#endif
|
#endif
|
||||||
isPrintingFromMedia() ? F("Printing") :
|
isPrintingFromMedia() ? GET_TEXTF(PRINTING) :
|
||||||
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
#if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
|
||||||
#ifdef LULZBOT_MANUAL_USB_STARTUP
|
(!Sd2Card::ready() ? GET_TEXTF(ENABLE_MEDIA) :
|
||||||
(Sd2Card::ready() ? F("USB Drive") : F("Enable USB"))
|
|
||||||
#else
|
|
||||||
F("USB Drive")
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
#else
|
#else
|
||||||
F("SD Card"))
|
GET_TEXTF(MEDIA))
|
||||||
#endif
|
#endif
|
||||||
.colors(!has_media ? action_btn : normal_btn)
|
.colors(!has_media ? action_btn : normal_btn)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.tag(4).button( BTN_POS(3,8), BTN_SIZE(2,1), F("MENU"));
|
.tag(4).button( BTN_POS(3,8), BTN_SIZE(2,1), GET_TEXTF(MENU));
|
||||||
#else
|
#else
|
||||||
.tag(4).button( BTN_POS(3,7), BTN_SIZE(2,2), F("MENU"));
|
.tag(4).button( BTN_POS(3,7), BTN_SIZE(2,2), GET_TEXTF(MENU));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
|
@ -423,9 +407,9 @@ bool StatusScreen::onTouchEnd(uint8_t tag) {
|
||||||
|
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case 3:
|
case 3:
|
||||||
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
|
#if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
|
||||||
if (!Sd2Card::ready()) {
|
if (!Sd2Card::ready()) {
|
||||||
StatusScreen::setStatusMessage(F("Insert USB drive..."));
|
StatusScreen::setStatusMessage(GET_TEXTF(INSERT_MEDIA));
|
||||||
Sd2Card::usbStartup();
|
Sd2Card::usbStartup();
|
||||||
} else {
|
} else {
|
||||||
GOTO_SCREEN(FilesScreen);
|
GOTO_SCREEN(FilesScreen);
|
||||||
|
|
|
@ -33,22 +33,22 @@ using namespace Theme;
|
||||||
void StepperBumpSensitivityScreen::onRedraw(draw_mode_t what) {
|
void StepperBumpSensitivityScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
|
w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
|
||||||
w.heading( PSTR("TMC Bump Sensitivity"));
|
w.heading( GET_TEXTF(HOME_SENSE));
|
||||||
w.color(x_axis) .adjuster( 2, PSTR("X:"), getTMCBumpSensitivity(X),
|
w.color(x_axis) .adjuster( 2, GET_TEXTF(AXIS_X), getTMCBumpSensitivity(X),
|
||||||
#if X_SENSORLESS && AXIS_HAS_STALLGUARD(X)
|
#if X_SENSORLESS && AXIS_HAS_STALLGUARD(X)
|
||||||
true
|
true
|
||||||
#else
|
#else
|
||||||
false
|
false
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
w.color(y_axis) .adjuster( 4, PSTR("Y:"), getTMCBumpSensitivity(Y),
|
w.color(y_axis) .adjuster( 4, GET_TEXTF(AXIS_Y), getTMCBumpSensitivity(Y),
|
||||||
#if Y_SENSORLESS && AXIS_HAS_STALLGUARD(Y)
|
#if Y_SENSORLESS && AXIS_HAS_STALLGUARD(Y)
|
||||||
true
|
true
|
||||||
#else
|
#else
|
||||||
false
|
false
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
w.color(z_axis) .adjuster( 6, PSTR("Z:"), getTMCBumpSensitivity(Z),
|
w.color(z_axis) .adjuster( 6, GET_TEXTF(AXIS_Z), getTMCBumpSensitivity(Z),
|
||||||
#if Z_SENSORLESS && AXIS_HAS_STALLGUARD(Z)
|
#if Z_SENSORLESS && AXIS_HAS_STALLGUARD(Z)
|
||||||
true
|
true
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -33,21 +33,21 @@ using namespace Theme;
|
||||||
void StepperCurrentScreen::onRedraw(draw_mode_t what) {
|
void StepperCurrentScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0);
|
w.precision(0);
|
||||||
w.units(PSTR("mA"));
|
w.units(GET_TEXTF(UNITS_MILLIAMP));
|
||||||
w.heading( PSTR("Stepper Current"));
|
w.heading( GET_TEXTF(MOTOR_CURRENT));
|
||||||
w.color(x_axis) .adjuster( 2, PSTR("X:"), getAxisCurrent_mA(X) );
|
w.color(x_axis) .adjuster( 2, GET_TEXTF(AXIS_X), getAxisCurrent_mA(X) );
|
||||||
w.color(y_axis) .adjuster( 4, PSTR("Y:"), getAxisCurrent_mA(Y) );
|
w.color(y_axis) .adjuster( 4, GET_TEXTF(AXIS_Y), getAxisCurrent_mA(Y) );
|
||||||
w.color(z_axis) .adjuster( 6, PSTR("Z:"), getAxisCurrent_mA(Z) );
|
w.color(z_axis) .adjuster( 6, GET_TEXTF(AXIS_Z), getAxisCurrent_mA(Z) );
|
||||||
#if EXTRUDERS == 1
|
#if EXTRUDERS == 1
|
||||||
w.color(e_axis).adjuster( 8, PSTR("E:"), getAxisCurrent_mA(E0) );
|
w.color(e_axis).adjuster( 8, GET_TEXTF(AXIS_E), getAxisCurrent_mA(E0) );
|
||||||
#elif EXTRUDERS > 1
|
#elif EXTRUDERS > 1
|
||||||
w.color(e_axis).adjuster( 8, PSTR("E1:"), getAxisCurrent_mA(E0) );
|
w.color(e_axis).adjuster( 8, GET_TEXTF(AXIS_E1), getAxisCurrent_mA(E0) );
|
||||||
w.color(e_axis).adjuster(10, PSTR("E2:"), getAxisCurrent_mA(E1) );
|
w.color(e_axis).adjuster(10, GET_TEXTF(AXIS_E2), getAxisCurrent_mA(E1) );
|
||||||
#if EXTRUDERS > 2
|
#if EXTRUDERS > 2
|
||||||
w.color(e_axis).adjuster(12, PSTR("E3:"), getAxisCurrent_mA(E2) );
|
w.color(e_axis).adjuster(12, GET_TEXTF(AXIS_E3), getAxisCurrent_mA(E2) );
|
||||||
#endif
|
#endif
|
||||||
#if EXTRUDERS > 3
|
#if EXTRUDERS > 3
|
||||||
w.color(e_axis).adjuster(14, PSTR("E4:"), getAxisCurrent_mA(E3) );
|
w.color(e_axis).adjuster(14, GET_TEXTF(AXIS_E4), getAxisCurrent_mA(E3) );
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
w.increments();
|
w.increments();
|
||||||
|
|
|
@ -33,21 +33,21 @@ using namespace Theme;
|
||||||
void StepsScreen::onRedraw(draw_mode_t what) {
|
void StepsScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0);
|
w.precision(0);
|
||||||
w.units(PSTR("st/mm"));
|
w.units(GET_TEXTF(UNITS_STEP_MM));
|
||||||
w.heading( PSTR("Steps/mm"));
|
w.heading( GET_TEXTF(STEPS_PER_MM));
|
||||||
w.color(x_axis) .adjuster( 2, PSTR("X:"), getAxisSteps_per_mm(X) );
|
w.color(x_axis) .adjuster( 2, GET_TEXTF(AXIS_X), getAxisSteps_per_mm(X) );
|
||||||
w.color(y_axis) .adjuster( 4, PSTR("Y:"), getAxisSteps_per_mm(Y) );
|
w.color(y_axis) .adjuster( 4, GET_TEXTF(AXIS_Y), getAxisSteps_per_mm(Y) );
|
||||||
w.color(z_axis) .adjuster( 6, PSTR("Z:"), getAxisSteps_per_mm(Z) );
|
w.color(z_axis) .adjuster( 6, GET_TEXTF(AXIS_Z), getAxisSteps_per_mm(Z) );
|
||||||
#if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
|
#if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
|
||||||
w.color(e_axis) .adjuster( 8, PSTR("E:"), getAxisSteps_per_mm(E0) );
|
w.color(e_axis) .adjuster( 8, GET_TEXTF(AXIS_E), getAxisSteps_per_mm(E0) );
|
||||||
#elif EXTRUDERS > 1
|
#elif EXTRUDERS > 1
|
||||||
w.color(e_axis) .adjuster( 8, PSTR("E1:"), getAxisSteps_per_mm(E0) );
|
w.color(e_axis) .adjuster( 8, GET_TEXTF(AXIS_E1), getAxisSteps_per_mm(E0) );
|
||||||
w.color(e_axis) .adjuster(10, PSTR("E2:"), getAxisSteps_per_mm(E1) );
|
w.color(e_axis) .adjuster(10, GET_TEXTF(AXIS_E2), getAxisSteps_per_mm(E1) );
|
||||||
#if EXTRUDERS > 2
|
#if EXTRUDERS > 2
|
||||||
w.color(e_axis) .adjuster(12, PSTR("E3:"), getAxisSteps_per_mm(E2) );
|
w.color(e_axis) .adjuster(12, GET_TEXTF(AXIS_E3), getAxisSteps_per_mm(E2) );
|
||||||
#endif
|
#endif
|
||||||
#if EXTRUDERS > 3
|
#if EXTRUDERS > 3
|
||||||
w.color(e_axis) .adjuster(14, PSTR("E4:"), getAxisSteps_per_mm(E3) );
|
w.color(e_axis) .adjuster(14, GET_TEXTF(AXIS_E4), getAxisSteps_per_mm(E3) );
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
w.increments();
|
w.increments();
|
||||||
|
|
|
@ -32,36 +32,29 @@ using namespace ExtUI;
|
||||||
|
|
||||||
void TemperatureScreen::onRedraw(draw_mode_t what) {
|
void TemperatureScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(0).color(temp).units(
|
w.precision(0).color(temp).units(GET_TEXTF(UNITS_C));
|
||||||
PSTR(
|
w.heading(GET_TEXTF(TEMPERATURE));
|
||||||
#if defined(TOUCH_UI_USE_UTF8) && defined(TOUCH_UI_UTF8_WESTERN_CHARSET)
|
w.button(30, GET_TEXTF(COOLDOWN));
|
||||||
u8"°C"
|
|
||||||
#else
|
|
||||||
"C"
|
|
||||||
#endif
|
|
||||||
));
|
|
||||||
w.heading( PSTR("Temperature:"));
|
|
||||||
w.button(30, PSTR("Cooldown (All Off)"));
|
|
||||||
#ifndef LULZBOT_DISABLE_TOOLHEAD_HEATER
|
#ifndef LULZBOT_DISABLE_TOOLHEAD_HEATER
|
||||||
#if HOTENDS == 1
|
#if HOTENDS == 1
|
||||||
w.adjuster( 2, PSTR("Hot End:"), getTargetTemp_celsius(E0));
|
w.adjuster( 2, GET_TEXTF(HOTEND), getTargetTemp_celsius(E0));
|
||||||
#else
|
#else
|
||||||
w.adjuster( 2, PSTR("Hot End 1:"), getTargetTemp_celsius(E0));
|
w.adjuster( 2, GET_TEXTF(HOTEND1), getTargetTemp_celsius(E0));
|
||||||
w.adjuster( 4, PSTR("Hot End 2:"), getTargetTemp_celsius(E1));
|
w.adjuster( 4, GET_TEXTF(HOTEND2), getTargetTemp_celsius(E1));
|
||||||
#if HOTENDS > 2
|
#if HOTENDS > 2
|
||||||
w.adjuster( 6, PSTR("Hot End 3:"), getTargetTemp_celsius(E2));
|
w.adjuster( 6, GET_TEXTF(HOTEND3), getTargetTemp_celsius(E2));
|
||||||
#endif
|
#endif
|
||||||
#if HOTENDS > 3
|
#if HOTENDS > 3
|
||||||
w.adjuster( 8, PSTR("Hot End 4:"), getTargetTemp_celsius(E3));
|
w.adjuster( 8, GET_TEXTF(HOTEND4), getTargetTemp_celsius(E3));
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if HAS_HEATED_BED
|
#if HAS_HEATED_BED
|
||||||
w.adjuster( 20, PSTR("Bed:"), getTargetTemp_celsius(BED));
|
w.adjuster( 20, GET_TEXTF(BED), getTargetTemp_celsius(BED));
|
||||||
#endif
|
#endif
|
||||||
#if FAN_COUNT > 0
|
#if FAN_COUNT > 0
|
||||||
w.color(fan_speed).units(PSTR("%"));
|
w.color(fan_speed).units(GET_TEXTF(UNITS_PERCENT));
|
||||||
w.adjuster( 10, PSTR("Fan Speed:"), getTargetFan_percent(FAN0));
|
w.adjuster( 10, GET_TEXTF(FAN_SPEED), getTargetFan_percent(FAN0));
|
||||||
#endif
|
#endif
|
||||||
w.increments();
|
w.increments();
|
||||||
}
|
}
|
||||||
|
@ -88,8 +81,8 @@ bool TemperatureScreen::onTouchHeld(uint8_t tag) {
|
||||||
case 9: UI_INCREMENT(TargetTemp_celsius, E3); break;
|
case 9: UI_INCREMENT(TargetTemp_celsius, E3); break;
|
||||||
#endif
|
#endif
|
||||||
#if FAN_COUNT > 0
|
#if FAN_COUNT > 0
|
||||||
case 10: UI_DECREMENT(TargetFan_percent, FAN0); break;
|
case 10: UI_DECREMENT(TargetFan_percent, FAN0); break;
|
||||||
case 11: UI_INCREMENT(TargetFan_percent, FAN0); break;
|
case 11: UI_INCREMENT(TargetFan_percent, FAN0); break;
|
||||||
#endif
|
#endif
|
||||||
case 30:
|
case 30:
|
||||||
setTargetTemp_celsius(0,E0);
|
setTargetTemp_celsius(0,E0);
|
||||||
|
|
|
@ -44,22 +44,9 @@ void TouchCalibrationScreen::onEntry() {
|
||||||
cmd.cmd(CMD_DLSTART)
|
cmd.cmd(CMD_DLSTART)
|
||||||
.cmd(CLEAR_COLOR_RGB(bg_color))
|
.cmd(CLEAR_COLOR_RGB(bg_color))
|
||||||
.cmd(CLEAR(true,true,true))
|
.cmd(CLEAR(true,true,true))
|
||||||
.cmd(COLOR_RGB(bg_text_enabled))
|
.cmd(COLOR_RGB(bg_text_enabled));
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXTF(TOUCH_CALIBRATION_START), OPT_CENTER, font_large);
|
||||||
.font(font_large)
|
cmd.cmd(DL::DL_DISPLAY)
|
||||||
.text ( BTN_POS(1,8), BTN_SIZE(4,1), F("Release to begin"))
|
|
||||||
.text ( BTN_POS(1,9), BTN_SIZE(4,1), F("screen calibration"))
|
|
||||||
#else
|
|
||||||
.font(
|
|
||||||
#ifdef TOUCH_UI_800x480
|
|
||||||
font_large
|
|
||||||
#else
|
|
||||||
font_medium
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.text ( BTN_POS(1,1), BTN_SIZE(4,16), F("Release to calibrate"))
|
|
||||||
#endif
|
|
||||||
.cmd(DL::DL_DISPLAY)
|
|
||||||
.cmd(CMD_SWAP)
|
.cmd(CMD_SWAP)
|
||||||
.execute();
|
.execute();
|
||||||
|
|
||||||
|
@ -88,23 +75,10 @@ void TouchCalibrationScreen::onRedraw(draw_mode_t) {
|
||||||
CommandProcessor cmd;
|
CommandProcessor cmd;
|
||||||
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))
|
.cmd(COLOR_RGB(bg_text_enabled));
|
||||||
|
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXTF(TOUCH_CALIBRATION_PROMPT), OPT_CENTER, font_large);
|
||||||
.font(font_large)
|
cmd.cmd(CMD_CALIBRATE);
|
||||||
.text ( BTN_POS(1,8), BTN_SIZE(4,1), F("Touch the dots"))
|
|
||||||
.text ( BTN_POS(1,9), BTN_SIZE(4,1), F("to calibrate"))
|
|
||||||
#else
|
|
||||||
.font(
|
|
||||||
#ifdef TOUCH_UI_800x480
|
|
||||||
font_large
|
|
||||||
#else
|
|
||||||
font_medium
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
.text ( BTN_POS(1,1), BTN_SIZE(4,16), F("Touch the dots to calibrate"))
|
|
||||||
#endif
|
|
||||||
.cmd(CMD_CALIBRATE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TouchCalibrationScreen::onIdle() {
|
void TouchCalibrationScreen::onIdle() {
|
||||||
|
|
|
@ -52,79 +52,79 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
||||||
cmd.colors(normal_btn)
|
cmd.colors(normal_btn)
|
||||||
.font(font_medium)
|
.font(font_medium)
|
||||||
#ifdef TOUCH_UI_PORTRAIT
|
#ifdef TOUCH_UI_PORTRAIT
|
||||||
.tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(2,1), F("Temperature"))
|
.tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(TEMPERATURE))
|
||||||
.tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(2,1), F("Change Filament"))
|
.tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(CHANGE_FILAMENT))
|
||||||
#if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
|
#if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(9).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Filament Options"))
|
.tag(9).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(FILAMENT))
|
||||||
#if ENABLED(BABYSTEPPING)
|
#if ENABLED(BABYSTEPPING)
|
||||||
.tag(4).enabled(1) .button( BTN_POS(1,4), BTN_SIZE(2,1), F("Nudge Nozzle"))
|
.tag(4).enabled(1) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(NUDGE_NOZZLE))
|
||||||
#else
|
#else
|
||||||
#if HAS_BED_PROBE
|
#if HAS_BED_PROBE
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), F("Adjust Z-Offset"))
|
.tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(ZPROBE_ZOFFSET))
|
||||||
#endif
|
#endif
|
||||||
.tag(5).enabled(1) .button( BTN_POS(1,5), BTN_SIZE(2,1), F("Print Speed"))
|
.tag(5).enabled(1) .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(PRINT_SPEED))
|
||||||
.tag(isPrintingFromMediaPaused() ? 7 : 6)
|
.tag(isPrintingFromMediaPaused() ? 7 : 6)
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
.enabled(isPrintingFromMedia())
|
.enabled(isPrintingFromMedia())
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.button( BTN_POS(1,6), BTN_SIZE(2,1), isPrintingFromMediaPaused() ? F("Resume Print") : F("Pause Print"))
|
.button( BTN_POS(1,6), BTN_SIZE(2,1), isPrintingFromMediaPaused() ? GET_TEXTF(RESUME_PRINT) : GET_TEXTF(PAUSE_PRINT))
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
.enabled(isPrintingFromMedia())
|
.enabled(isPrintingFromMedia())
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(8) .button( BTN_POS(1,7), BTN_SIZE(2,1), F("Cancel Print"))
|
.tag(8) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(STOP_PRINT))
|
||||||
.tag(1).colors(action_btn)
|
.tag(1).colors(action_btn)
|
||||||
.button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
|
.button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
|
||||||
#else // TOUCH_UI_PORTRAIT
|
#else // TOUCH_UI_PORTRAIT
|
||||||
.tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(1,1), F("Temperature"))
|
.tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(TEMPERATURE))
|
||||||
.tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(1,1), F("Change Filament"))
|
.tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(CHANGE_FILAMENT))
|
||||||
#if ENABLED(BABYSTEPPING)
|
#if ENABLED(BABYSTEPPING)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(BABYSTEPPING)
|
#if ENABLED(BABYSTEPPING)
|
||||||
.tag(4) .button( BTN_POS(2,1), BTN_SIZE(1,1), F("Nudge Nozzle"))
|
.tag(4) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(NUDGE_NOZZLE))
|
||||||
#else
|
#else
|
||||||
#if HAS_BED_PROBE
|
#if HAS_BED_PROBE
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), F("Adjust Z-Offset"))
|
.tag(4) .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(ZPROBE_ZOFFSET))
|
||||||
#endif
|
#endif
|
||||||
.tag(5).enabled(1) .button( BTN_POS(2,2), BTN_SIZE(1,1), F("Print Speed"))
|
.tag(5).enabled(1) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(PRINT_SPEED))
|
||||||
.tag(isPrintingFromMediaPaused() ? 7 : 6)
|
.tag(isPrintingFromMediaPaused() ? 7 : 6)
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
.enabled(isPrintingFromMedia())
|
.enabled(isPrintingFromMedia())
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.button( BTN_POS(1,3), BTN_SIZE(1,1), isPrintingFromMediaPaused() ? F("Resume Print") : F("Pause Print"))
|
.button( BTN_POS(1,3), BTN_SIZE(1,1), isPrintingFromMediaPaused() ? GET_TEXTF(RESUME_PRINT) : GET_TEXTF(PAUSE_PRINT))
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
.enabled(isPrintingFromMedia())
|
.enabled(isPrintingFromMedia())
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(8). button( BTN_POS(2,3), BTN_SIZE(1,1), F("Cancel Print"))
|
.tag(8). button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(STOP_PRINT))
|
||||||
#if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
|
#if ENABLED(LIN_ADVANCE) || ENABLED(FILAMENT_RUNOUT_SENSOR)
|
||||||
.enabled(1)
|
.enabled(1)
|
||||||
#else
|
#else
|
||||||
.enabled(0)
|
.enabled(0)
|
||||||
#endif
|
#endif
|
||||||
.tag(9).button( BTN_POS(1,4), BTN_SIZE(1,1), F("Filament Options"))
|
.tag(9).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(FILAMENT))
|
||||||
.tag(1).colors(action_btn) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Back"));
|
.tag(1).colors(action_btn) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(BACK));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#undef GRID_COLS
|
#undef GRID_COLS
|
||||||
|
|
|
@ -32,10 +32,10 @@ using namespace Theme;
|
||||||
|
|
||||||
void ZOffsetScreen::onRedraw(draw_mode_t what) {
|
void ZOffsetScreen::onRedraw(draw_mode_t what) {
|
||||||
widgets_t w(what);
|
widgets_t w(what);
|
||||||
w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(PSTR("mm"));
|
w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXTF(UNITS_MM));
|
||||||
|
|
||||||
w.heading( PSTR("Z Offset"));
|
w.heading( GET_TEXTF(ZPROBE_ZOFFSET));
|
||||||
w.color(z_axis).adjuster(4, PSTR("Z Offset:"), getZOffset_mm());
|
w.color(z_axis).adjuster(4, GET_TEXTF(ZPROBE_ZOFFSET), getZOffset_mm());
|
||||||
w.increments();
|
w.increments();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1215,6 +1215,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1214,6 +1214,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1215,6 +1215,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1219,6 +1219,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
|
@ -1211,6 +1211,13 @@
|
||||||
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
#define TOUCH_UI_UTF8_WESTERN_CHARSET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When labels do not fit buttons, use smaller font
|
||||||
|
#define TOUCH_UI_FIT_TEXT
|
||||||
|
|
||||||
|
// Enable support for selection of languages at run-time
|
||||||
|
// (otherwise will use the value of LCD_LANGUAGE)
|
||||||
|
//#define TOUCH_UI_LANGUAGE_MENU
|
||||||
|
|
||||||
// Use a numeric passcode for "Screen lock" keypad.
|
// Use a numeric passcode for "Screen lock" keypad.
|
||||||
// (recommended for smaller displays)
|
// (recommended for smaller displays)
|
||||||
//#define TOUCH_UI_PASSCODE
|
//#define TOUCH_UI_PASSCODE
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue