|
|
@ -130,7 +130,6 @@ void MenuItem_gcode::action(PGM_P const pgcode) { queue.inject_P(pgcode); } |
|
|
|
* MenuItem_int3::action_edit(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999) |
|
|
|
*/ |
|
|
|
void MenuItemBase::edit(strfunc_t strfunc, loadfunc_t loadfunc) { |
|
|
|
ui.encoder_direction_normal(); |
|
|
|
if (int16_t(ui.encoderPosition) < 0) ui.encoderPosition = 0; |
|
|
|
if (int16_t(ui.encoderPosition) > maxEditValue) ui.encoderPosition = maxEditValue; |
|
|
|
if (ui.should_draw()) |
|
|
@ -276,7 +275,11 @@ void MarlinUI::goto_screen(screenFunc_t screen, const uint16_t encoder/*=0*/, co |
|
|
|
drawing_screen = false; |
|
|
|
#endif |
|
|
|
|
|
|
|
set_ui_selection(false); |
|
|
|
#if HAS_LCD_MENU |
|
|
|
encoder_direction_normal(); |
|
|
|
#endif |
|
|
|
|
|
|
|
set_selection(false); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -371,7 +374,6 @@ void MarlinUI::completion_feedback(const bool good/*=true*/) { |
|
|
|
#else |
|
|
|
constexpr bool do_probe = true; |
|
|
|
#endif |
|
|
|
ui.encoder_direction_normal(); |
|
|
|
if (ui.encoderPosition) { |
|
|
|
const int16_t babystep_increment = int16_t(ui.encoderPosition) * (BABYSTEP_MULTIPLICATOR); |
|
|
|
ui.encoderPosition = 0; |
|
|
@ -448,14 +450,16 @@ void _lcd_draw_homing() { |
|
|
|
//
|
|
|
|
// Selection screen presents a prompt and two options
|
|
|
|
//
|
|
|
|
bool ui_selection; // = false
|
|
|
|
void set_ui_selection(const bool sel) { ui_selection = sel; } |
|
|
|
void do_select_screen(PGM_P const yes, PGM_P const no, selectFunc_t yesFunc, selectFunc_t noFunc, PGM_P const pref, const char * const string/*=nullptr*/, PGM_P const suff/*=nullptr*/) { |
|
|
|
if (ui.encoderPosition) { |
|
|
|
ui_selection = ((ENCODERBASE) > 0) == (int16_t(ui.encoderPosition) > 0); |
|
|
|
ui.encoderPosition = 0; |
|
|
|
bool MarlinUI::selection; // = false
|
|
|
|
bool MarlinUI::update_selection() { |
|
|
|
if (encoderPosition) { |
|
|
|
selection = int16_t(encoderPosition) > 0; |
|
|
|
encoderPosition = 0; |
|
|
|
} |
|
|
|
const bool got_click = ui.use_click(); |
|
|
|
return selection; |
|
|
|
} |
|
|
|
void do_select_screen(PGM_P const yes, PGM_P const no, selectFunc_t yesFunc, selectFunc_t noFunc, PGM_P const pref, const char * const string/*=nullptr*/, PGM_P const suff/*=nullptr*/) { |
|
|
|
const bool ui_selection = ui.update_selection(), got_click = ui.use_click(); |
|
|
|
if (got_click || ui.should_draw()) { |
|
|
|
draw_select_screen(yes, no, ui_selection, pref, string, suff); |
|
|
|
if (got_click) { ui_selection ? yesFunc() : noFunc(); } |
|
|
|