|
@@ -132,7 +132,7 @@ void MenuItem_gcode::action(PGM_P const, PGM_P const pgcode) { queue.inject_P(pg
|
132
|
132
|
*
|
133
|
133
|
* bool MenuItem_int3::_edit();
|
134
|
134
|
* void MenuItem_int3::edit(); // edit int16_t (interactively)
|
135
|
|
- * void MenuItem_int3::action(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);
|
|
135
|
+ * void MenuItem_int3::action(PGM_P const pstr, int16_t * const ptr, const int32_t minValue, const int32_t maxValue, const screenFunc_t callback = null, const bool live = false);
|
136
|
136
|
*
|
137
|
137
|
* You can then use one of the menu macros to present the edit interface:
|
138
|
138
|
* EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999)
|
|
@@ -148,8 +148,8 @@ void MenuEditItemBase::edit(strfunc_t strfunc, loadfunc_t loadfunc) {
|
148
|
148
|
#if ENABLED(TOUCH_BUTTONS)
|
149
|
149
|
ui.repeat_delay = BUTTON_DELAY_EDIT;
|
150
|
150
|
#endif
|
151
|
|
- if (int16_t(ui.encoderPosition) < 0) ui.encoderPosition = 0;
|
152
|
|
- if (int16_t(ui.encoderPosition) > maxEditValue) ui.encoderPosition = maxEditValue;
|
|
151
|
+ if (int32_t(ui.encoderPosition) < 0) ui.encoderPosition = 0;
|
|
152
|
+ if (int32_t(ui.encoderPosition) > maxEditValue) ui.encoderPosition = maxEditValue;
|
153
|
153
|
if (ui.should_draw())
|
154
|
154
|
draw_edit_screen(editLabel, strfunc(ui.encoderPosition + minEditValue));
|
155
|
155
|
if (ui.lcd_clicked || (liveEdit && ui.should_draw())) {
|
|
@@ -341,7 +341,7 @@ void MarlinUI::synchronize(PGM_P const msg/*=nullptr*/) {
|
341
|
341
|
void scroll_screen(const uint8_t limit, const bool is_menu) {
|
342
|
342
|
ui.encoder_direction_menus();
|
343
|
343
|
ENCODER_RATE_MULTIPLY(false);
|
344
|
|
- if (ui.encoderPosition > 0x8000) ui.encoderPosition = 0;
|
|
344
|
+ if (int32_t(ui.encoderPosition) < 0) ui.encoderPosition = 0;
|
345
|
345
|
if (ui.first_page) {
|
346
|
346
|
encoderLine = ui.encoderPosition / (ENCODER_STEPS_PER_MENU_ITEM);
|
347
|
347
|
screen_changed = false;
|