Miscellaneous LCD code renaming, reordering (#12430)
* Move special characters to language.h * Apply some naming standards * Clean up menu item draw functions * Rename some Temperature methods * UI => ExtUI
This commit is contained in:
@ -102,7 +102,7 @@ void MarlinUI::goto_previous_screen() {
|
||||
/////////// Common Menu Actions ////////////
|
||||
////////////////////////////////////////////
|
||||
|
||||
void menu_item_gcode::action(PGM_P pgcode) { enqueue_and_echo_commands_P(pgcode); }
|
||||
void MenuItem_gcode::action(PGM_P pgcode) { enqueue_and_echo_commands_P(pgcode); }
|
||||
|
||||
////////////////////////////////////////////
|
||||
/////////// Menu Editing Actions ///////////
|
||||
@ -119,18 +119,18 @@ void menu_item_gcode::action(PGM_P pgcode) { enqueue_and_echo_commands_P(pgcode)
|
||||
*
|
||||
* For example, DEFINE_MENU_EDIT_ITEM(int3) expands into these functions:
|
||||
*
|
||||
* bool menu_item_int3::_edit();
|
||||
* void menu_item_int3::edit(); // edit int16_t (interactively)
|
||||
* void menu_item_int3::action_setting_edit(PGM_P const pstr, int16_t * const ptr, const int16_t minValue, const int16_t maxValue, const screenFunc_t callback = null, const bool live = false);
|
||||
* bool MenuItem_int3::_edit();
|
||||
* void MenuItem_int3::edit(); // edit int16_t (interactively)
|
||||
* void MenuItem_int3::action_edit(PGM_P const pstr, int16_t * const ptr, const int16_t minValue, const int16_t maxValue, const screenFunc_t callback = null, const bool live = false);
|
||||
*
|
||||
* You can then use one of the menu macros to present the edit interface:
|
||||
* MENU_ITEM_EDIT(int3, MSG_SPEED, &feedrate_percentage, 10, 999)
|
||||
*
|
||||
* This expands into a more primitive menu item:
|
||||
* MENU_ITEM_VARIANT(int3, _setting_edit, MSG_SPEED, PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
* MENU_ITEM_VARIANT(int3, _edit, MSG_SPEED, PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
*
|
||||
* ...which calls:
|
||||
* menu_item_int3::action_setting_edit(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
* MenuItem_int3::action_edit(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
*/
|
||||
void MenuItemBase::edit(strfunc_t strfunc, loadfunc_t loadfunc) {
|
||||
ui.encoder_direction_normal();
|
||||
@ -158,7 +158,7 @@ void MenuItemBase::init(PGM_P const el, void * const ev, const int32_t minv, con
|
||||
liveEdit = le;
|
||||
}
|
||||
|
||||
#define DEFINE_MENU_EDIT_ITEM(NAME) template class TMenuItem<NAME ## _item_info>;
|
||||
#define DEFINE_MENU_EDIT_ITEM(NAME) template class TMenuItem<MenuItemInfo_##NAME>;
|
||||
|
||||
DEFINE_MENU_EDIT_ITEM(int3);
|
||||
DEFINE_MENU_EDIT_ITEM(int4);
|
||||
@ -172,7 +172,7 @@ DEFINE_MENU_EDIT_ITEM(float52sign);
|
||||
DEFINE_MENU_EDIT_ITEM(float62);
|
||||
DEFINE_MENU_EDIT_ITEM(long5);
|
||||
|
||||
void menu_item_bool::action_setting_edit(PGM_P pstr, bool *ptr, screenFunc_t callback) {
|
||||
void MenuItem_bool::action_edit(PGM_P pstr, bool *ptr, screenFunc_t callback) {
|
||||
UNUSED(pstr); *ptr ^= true; ui.refresh();
|
||||
if (callback) (*callback)();
|
||||
}
|
||||
|
@ -37,109 +37,103 @@ bool printer_busy();
|
||||
////////////////////////////////////////////
|
||||
|
||||
#define DECLARE_MENU_EDIT_TYPE(TYPE, NAME, STRFUNC, SCALE) \
|
||||
struct NAME ## _item_info { \
|
||||
struct MenuItemInfo_##NAME { \
|
||||
typedef TYPE type_t; \
|
||||
static constexpr float scale = SCALE; \
|
||||
static inline char* strfunc(const float value) { return STRFUNC((TYPE) value); } \
|
||||
};
|
||||
|
||||
DECLARE_MENU_EDIT_TYPE(int16_t, int3, itostr3, 1);
|
||||
DECLARE_MENU_EDIT_TYPE(int16_t, int4, itostr4sign, 1);
|
||||
DECLARE_MENU_EDIT_TYPE(uint8_t, int8, i8tostr3, 1);
|
||||
DECLARE_MENU_EDIT_TYPE(float, float3, ftostr3, 1);
|
||||
DECLARE_MENU_EDIT_TYPE(float, float52, ftostr52, 100);
|
||||
DECLARE_MENU_EDIT_TYPE(float, float43, ftostr43sign, 1000);
|
||||
DECLARE_MENU_EDIT_TYPE(float, float5, ftostr5rj, 0.01f);
|
||||
DECLARE_MENU_EDIT_TYPE(float, float51, ftostr51sign, 10);
|
||||
DECLARE_MENU_EDIT_TYPE(float, float52sign, ftostr52sign, 100);
|
||||
DECLARE_MENU_EDIT_TYPE(float, float62, ftostr62rj, 100);
|
||||
DECLARE_MENU_EDIT_TYPE(uint32_t, long5, ftostr5rj, 0.01f);
|
||||
DECLARE_MENU_EDIT_TYPE(int16_t, int3, itostr3, 1 );
|
||||
DECLARE_MENU_EDIT_TYPE(int16_t, int4, itostr4sign, 1 );
|
||||
DECLARE_MENU_EDIT_TYPE(uint8_t, int8, i8tostr3, 1 );
|
||||
DECLARE_MENU_EDIT_TYPE(float, float3, ftostr3, 1 );
|
||||
DECLARE_MENU_EDIT_TYPE(float, float52, ftostr52, 100 );
|
||||
DECLARE_MENU_EDIT_TYPE(float, float43, ftostr43sign, 1000 );
|
||||
DECLARE_MENU_EDIT_TYPE(float, float5, ftostr5rj, 0.01f );
|
||||
DECLARE_MENU_EDIT_TYPE(float, float51, ftostr51sign, 10 );
|
||||
DECLARE_MENU_EDIT_TYPE(float, float52sign, ftostr52sign, 100 );
|
||||
DECLARE_MENU_EDIT_TYPE(float, float62, ftostr62rj, 100 );
|
||||
DECLARE_MENU_EDIT_TYPE(uint32_t, long5, ftostr5rj, 0.01f );
|
||||
|
||||
////////////////////////////////////////////
|
||||
///////// Menu Item Draw Functions /////////
|
||||
////////////////////////////////////////////
|
||||
|
||||
void draw_menu_item_generic(const bool isSelected, const uint8_t row, PGM_P const pstr, const char pre_char, const char post_char);
|
||||
void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const bool center=true, const bool invert=false, const char *valstr=NULL);
|
||||
void draw_edit_screen(PGM_P const pstr, const char* const value=NULL);
|
||||
void draw_menu_item(const bool sel, const uint8_t row, PGM_P const pstr, const char pre_char, const char post_char);
|
||||
void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const bool center=true, const bool invert=false, const char *valstr=NULL);
|
||||
void _draw_menu_item_edit(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data, const bool pgm);
|
||||
FORCE_INLINE void draw_menu_item_back(const bool sel, const uint8_t row, PGM_P const pstr) { draw_menu_item(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); }
|
||||
FORCE_INLINE void draw_menu_item_edit(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data) { _draw_menu_item_edit(sel, row, pstr, data, false); }
|
||||
FORCE_INLINE void draw_menu_item_edit_P(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data) { _draw_menu_item_edit(sel, row, pstr, data, true); }
|
||||
#define draw_menu_item_submenu(sel, row, pstr, data) draw_menu_item(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0])
|
||||
#define draw_menu_item_gcode(sel, row, pstr, gcode) draw_menu_item(sel, row, pstr, '>', ' ')
|
||||
#define draw_menu_item_function(sel, row, pstr, data) draw_menu_item(sel, row, pstr, '>', ' ')
|
||||
#define DRAW_MENU_ITEM_SETTING_EDIT_GENERIC(VAL) draw_menu_item_edit(sel, row, pstr, VAL)
|
||||
#define DRAW_BOOL_SETTING(sel, row, pstr, data) draw_menu_item_edit_P(sel, row, pstr, (*(data))?PSTR(MSG_LCD_ON):PSTR(MSG_LCD_OFF))
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
class CardReader;
|
||||
void draw_sd_menu_item(const bool isSelected, const uint8_t row, PGM_P const pstr, CardReader &theCard, const bool isDir);
|
||||
inline void draw_menu_item_sdfile(const bool sel, const uint8_t row, PGM_P const pstr, CardReader &theCard) { draw_sd_menu_item(sel, row, pstr, theCard, false); }
|
||||
inline void draw_menu_item_sdfolder(const bool sel, const uint8_t row, PGM_P const pstr, CardReader &theCard) { draw_sd_menu_item(sel, row, pstr, theCard, true); }
|
||||
void draw_sd_menu_item(const bool sel, const uint8_t row, PGM_P const pstr, CardReader &theCard, const bool isDir);
|
||||
FORCE_INLINE void draw_menu_item_sdfile(const bool sel, const uint8_t row, PGM_P const pstr, CardReader &theCard) { draw_sd_menu_item(sel, row, pstr, theCard, false); }
|
||||
FORCE_INLINE void draw_menu_item_sdfolder(const bool sel, const uint8_t row, PGM_P const pstr, CardReader &theCard) { draw_sd_menu_item(sel, row, pstr, theCard, true); }
|
||||
#endif
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
void _drawmenu_setting_edit_generic(const bool isSelected, const uint8_t row, const char* pstr, const char* const data, const bool pgm);
|
||||
#define draw_menu_item_back(sel, row, pstr) draw_menu_item_generic(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
|
||||
#define draw_menu_item_setting_edit_generic(sel, row, pstr, data) _drawmenu_setting_edit_generic(sel, row, pstr, data, false)
|
||||
#define draw_menu_item_setting_edit_generic_P(sel, row, pstr, data) _drawmenu_setting_edit_generic(sel, row, pstr, data, true)
|
||||
#define DRAWMENU_SETTING_EDIT_GENERIC(SRC) draw_menu_item_setting_edit_generic(sel, row, pstr, SRC)
|
||||
#define DRAW_BOOL_SETTING(sel, row, pstr, data) draw_menu_item_setting_edit_generic_P(sel, row, pstr, (*(data))?PSTR(MSG_LCD_ON):PSTR(MSG_LCD_OFF))
|
||||
#if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) || ENABLED(MESH_EDIT_GFX_OVERLAY)
|
||||
void _lcd_zoffset_overlay_gfx(const float zvalue);
|
||||
#endif
|
||||
#else
|
||||
#define draw_menu_item_back(sel, row, pstr) draw_menu_item_generic(sel, row, pstr, LCD_UPLEVEL_CHAR, LCD_UPLEVEL_CHAR)
|
||||
void draw_menu_item_setting_edit_generic(const bool sel, const uint8_t row, const char* pstr, const char pre_char, const char* const data);
|
||||
void draw_menu_item_setting_edit_generic_P(const bool sel, const uint8_t row, const char* pstr, const char pre_char, const char* const data);
|
||||
#define DRAWMENU_SETTING_EDIT_GENERIC(SRC) draw_menu_item_setting_edit_generic(sel, row, pstr, '>', SRC)
|
||||
#define DRAW_BOOL_SETTING(sel, row, pstr, data) draw_menu_item_setting_edit_generic_P(sel, row, pstr, '>', (*(data))?PSTR(MSG_LCD_ON):PSTR(MSG_LCD_OFF))
|
||||
|
||||
#if HAS_GRAPHICAL_LCD && (ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) || ENABLED(MESH_EDIT_GFX_OVERLAY))
|
||||
void _lcd_zoffset_overlay_gfx(const float zvalue);
|
||||
#endif
|
||||
#define draw_menu_item_submenu(sel, row, pstr, data) draw_menu_item_generic(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0])
|
||||
#define draw_menu_item_gcode(sel, row, pstr, gcode) draw_menu_item_generic(sel, row, pstr, '>', ' ')
|
||||
#define draw_menu_item_function(sel, row, pstr, data) draw_menu_item_generic(sel, row, pstr, '>', ' ')
|
||||
|
||||
////////////////////////////////////////////
|
||||
/////// Edit Setting Draw Functions ////////
|
||||
////////////////////////////////////////////
|
||||
|
||||
#define _DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(TYPE, NAME, STRFUNC) \
|
||||
FORCE_INLINE void draw_menu_item_setting_edit_ ## NAME (const bool sel, const uint8_t row, PGM_P const pstr, PGM_P const pstr2, TYPE * const data, ...) { \
|
||||
#define _DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(TYPE, NAME, STRFUNC) \
|
||||
FORCE_INLINE void draw_menu_item_edit_##NAME (const bool sel, const uint8_t row, PGM_P const pstr, PGM_P const pstr2, TYPE * const data, ...) { \
|
||||
UNUSED(pstr2); \
|
||||
DRAWMENU_SETTING_EDIT_GENERIC(STRFUNC(*(data))); \
|
||||
DRAW_MENU_ITEM_SETTING_EDIT_GENERIC(STRFUNC(*(data))); \
|
||||
} \
|
||||
FORCE_INLINE void draw_menu_item_setting_edit_accessor_ ## NAME (const bool sel, const uint8_t row, PGM_P const pstr, PGM_P const pstr2, TYPE (*pget)(), void (*pset)(TYPE), ...) { \
|
||||
FORCE_INLINE void draw_menu_item_edit_accessor_##NAME (const bool sel, const uint8_t row, PGM_P const pstr, PGM_P const pstr2, TYPE (*pget)(), void (*pset)(TYPE), ...) { \
|
||||
UNUSED(pstr2); UNUSED(pset); \
|
||||
DRAWMENU_SETTING_EDIT_GENERIC(STRFUNC(pget())); \
|
||||
DRAW_MENU_ITEM_SETTING_EDIT_GENERIC(STRFUNC(pget())); \
|
||||
} \
|
||||
typedef void NAME##_void
|
||||
#define DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(NAME) _DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(NAME ## _item_info::type_t, NAME, NAME ## _item_info::strfunc)
|
||||
#define DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(NAME) _DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(MenuItemInfo_##NAME::type_t, NAME, MenuItemInfo_##NAME::strfunc)
|
||||
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int3);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int4);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(int8);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float3);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float52);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float43);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float5);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float51);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float52sign);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(float62);
|
||||
DEFINE_LCD_IMPLEMENTATION_DRAWMENU_SETTING_EDIT_TYPE(long5);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(int3);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(int4);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(int8);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float3);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float43);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float5);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float51);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float52sign);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(float62);
|
||||
DEFINE_DRAW_MENU_ITEM_SETTING_EDIT(long5);
|
||||
|
||||
#define draw_menu_item_setting_edit_bool(sel, row, pstr, pstr2, data, ...) DRAW_BOOL_SETTING(sel, row, pstr, data)
|
||||
#define draw_menu_item_setting_edit_accessor_bool(sel, row, pstr, pstr2, pget, pset) DRAW_BOOL_SETTING(sel, row, pstr, data)
|
||||
#define draw_menu_item_edit_bool(sel, row, pstr, pstr2, data, ...) DRAW_BOOL_SETTING(sel, row, pstr, data)
|
||||
#define draw_menu_item_edit_accessor_bool(sel, row, pstr, pstr2, pget, pset) DRAW_BOOL_SETTING(sel, row, pstr, data)
|
||||
|
||||
////////////////////////////////////////////
|
||||
/////////////// Menu Actions ///////////////
|
||||
////////////////////////////////////////////
|
||||
|
||||
class menu_item_back {
|
||||
class MenuItem_back {
|
||||
public:
|
||||
static inline void action() { ui.goto_previous_screen(); }
|
||||
};
|
||||
|
||||
class menu_item_submenu {
|
||||
class MenuItem_submenu {
|
||||
public:
|
||||
static inline void action(const screenFunc_t func) { ui.save_previous_screen(); ui.goto_screen(func); }
|
||||
};
|
||||
|
||||
class menu_item_gcode {
|
||||
class MenuItem_gcode {
|
||||
public:
|
||||
static void action(const char * const pgcode);
|
||||
};
|
||||
|
||||
class menu_item_function {
|
||||
class MenuItem_function {
|
||||
public:
|
||||
static inline void action(const menuAction_t func) { (*func)(); };
|
||||
};
|
||||
@ -160,19 +154,19 @@ template<typename NAME>
|
||||
class TMenuItem : MenuItemBase {
|
||||
private:
|
||||
typedef typename NAME::type_t type_t;
|
||||
inline static float unscale(const float value) {return value * (1.0f / NAME::scale);}
|
||||
inline static float scale(const float value) {return value * NAME::scale;}
|
||||
static void load(void *ptr, const int32_t value) {*((type_t*)ptr) = unscale(value);}
|
||||
static char* to_string(const int32_t value) {return NAME::strfunc(unscale(value));}
|
||||
inline static float unscale(const float value) { return value * (1.0f / NAME::scale); }
|
||||
inline static float scale(const float value) { return value * NAME::scale; }
|
||||
static void load(void *ptr, const int32_t value) { *((type_t*)ptr) = unscale(value); }
|
||||
static char* to_string(const int32_t value) { return NAME::strfunc(unscale(value)); }
|
||||
public:
|
||||
static void action_setting_edit(PGM_P const pstr, type_t * const ptr, const type_t minValue, const type_t maxValue, const screenFunc_t callback=NULL, const bool live=false) {
|
||||
static void action_edit(PGM_P const pstr, type_t * const ptr, const type_t minValue, const type_t maxValue, const screenFunc_t callback=NULL, const bool live=false) {
|
||||
const int32_t minv = scale(minValue);
|
||||
init(pstr, ptr, minv, int32_t(scale(maxValue)) - minv, int32_t(scale(*ptr)) - minv, edit, callback, live);
|
||||
}
|
||||
static void edit() { MenuItemBase::edit(to_string, load); }
|
||||
};
|
||||
|
||||
#define DECLARE_MENU_EDIT_ITEM(NAME) typedef TMenuItem<NAME ## _item_info> menu_item_ ## NAME;
|
||||
#define DECLARE_MENU_EDIT_ITEM(NAME) typedef TMenuItem<MenuItemInfo_##NAME> MenuItem_##NAME;
|
||||
|
||||
DECLARE_MENU_EDIT_ITEM(int3);
|
||||
DECLARE_MENU_EDIT_ITEM(int4);
|
||||
@ -186,9 +180,9 @@ DECLARE_MENU_EDIT_ITEM(float52sign);
|
||||
DECLARE_MENU_EDIT_ITEM(float62);
|
||||
DECLARE_MENU_EDIT_ITEM(long5);
|
||||
|
||||
class menu_item_bool {
|
||||
class MenuItem_bool {
|
||||
public:
|
||||
static void action_setting_edit(PGM_P const pstr, bool* ptr, const screenFunc_t callbackFunc=NULL);
|
||||
static void action_edit(PGM_P const pstr, bool* ptr, const screenFunc_t callbackFunc=NULL);
|
||||
};
|
||||
|
||||
////////////////////////////////////////////
|
||||
@ -247,22 +241,22 @@ class menu_item_bool {
|
||||
* MENU_ITEM generates draw & handler code for a menu item, potentially calling:
|
||||
*
|
||||
* draw_menu_item_<type>[_variant](sel, row, label, arg3...)
|
||||
* menu_item_<type>::action[_variant](arg3...)
|
||||
* MenuItem_<type>::action[_variant](arg3...)
|
||||
*
|
||||
* Examples:
|
||||
* MENU_ITEM(back, MSG_WATCH, 0 [dummy parameter] )
|
||||
* or
|
||||
* MENU_BACK(MSG_WATCH)
|
||||
* draw_menu_item_back(sel, row, PSTR(MSG_WATCH))
|
||||
* menu_item_back::action()
|
||||
* MenuItem_back::action()
|
||||
*
|
||||
* MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_sdcard_pause)
|
||||
* draw_menu_item_function(sel, row, PSTR(MSG_PAUSE_PRINT), lcd_sdcard_pause)
|
||||
* menu_item_function::action(lcd_sdcard_pause)
|
||||
* MenuItem_function::action(lcd_sdcard_pause)
|
||||
*
|
||||
* MENU_ITEM_EDIT(int3, MSG_SPEED, &feedrate_percentage, 10, 999)
|
||||
* draw_menu_item_setting_edit_int3(sel, row, PSTR(MSG_SPEED), PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
* menu_item_int3::action_setting_edit(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
* draw_menu_item_edit_int3(sel, row, PSTR(MSG_SPEED), PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
* MenuItem_int3::action_edit(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999)
|
||||
*
|
||||
*/
|
||||
#define _MENU_ITEM_VARIANT_P(TYPE, VARIANT, USE_MULTIPLIER, PLABEL, ...) do { \
|
||||
@ -270,7 +264,7 @@ class menu_item_bool {
|
||||
if (_menuLineNr == _thisItemNr) { \
|
||||
if (encoderLine == _thisItemNr && ui.use_click()) { \
|
||||
_MENU_ITEM_MULTIPLIER_CHECK(USE_MULTIPLIER); \
|
||||
menu_item_ ## TYPE ::action ## VARIANT(__VA_ARGS__); \
|
||||
MenuItem_##TYPE ::action ## VARIANT(__VA_ARGS__); \
|
||||
if (screen_changed) return; \
|
||||
} \
|
||||
if (ui.should_draw()) \
|
||||
@ -305,10 +299,10 @@ class menu_item_bool {
|
||||
#define MENU_ITEM_DUMMY() do { _thisItemNr++; }while(0)
|
||||
#define MENU_ITEM_P(TYPE, PLABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, , false, PLABEL, ## __VA_ARGS__)
|
||||
#define MENU_ITEM(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, , false, PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_ITEM_EDIT(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _setting_edit, false, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_ITEM_EDIT_CALLBACK(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _setting_edit, false, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_MULTIPLIER_ITEM_EDIT(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _setting_edit, true, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _setting_edit, true, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_ITEM_EDIT(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _edit, false, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_ITEM_EDIT_CALLBACK(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _edit, false, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_MULTIPLIER_ITEM_EDIT(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _edit, true, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
#define MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(TYPE, LABEL, ...) _MENU_ITEM_VARIANT_P(TYPE, _edit, true, PSTR(LABEL), PSTR(LABEL), ## __VA_ARGS__)
|
||||
|
||||
////////////////////////////////////////////
|
||||
/////////////// Menu Screens ///////////////
|
||||
|
@ -72,7 +72,7 @@ void lcd_sd_updir() {
|
||||
}
|
||||
#endif
|
||||
|
||||
class menu_item_sdfile {
|
||||
class MenuItem_sdfile {
|
||||
public:
|
||||
static void action(CardReader &theCard) {
|
||||
#if ENABLED(SD_REPRINT_LAST_SELECTED_FILE)
|
||||
@ -84,7 +84,7 @@ class menu_item_sdfile {
|
||||
}
|
||||
};
|
||||
|
||||
class menu_item_sdfolder {
|
||||
class MenuItem_sdfolder {
|
||||
public:
|
||||
static void action(CardReader &theCard) {
|
||||
card.chdir(theCard.filename);
|
||||
|
Reference in New Issue
Block a user