Skip to content

Commit e2758b5

Browse files
committed
added option to keep pressing in the numeric popup
1 parent a008cff commit e2758b5

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

ui/numeric_popup.hpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ namespace menu {
6161
}
6262

6363
virtual void main(const klib::time::us delta, const input::buttons& buttons) override {
64+
// flag if we are doing a long press on up or down
65+
static bool long_press_up = false;
66+
static bool long_press_down = false;
67+
6468
// check what button is pressed
6569
if (buttons.enter == input::state::pressed) {
6670
// before we do anything go back to the previous item
@@ -84,7 +88,16 @@ namespace menu {
8488
cancel();
8589
}
8690
}
87-
else if (input::is_pressed(buttons.down)) {
91+
else if ((buttons.down == input::state::released) || (buttons.up == input::state::released)) {
92+
// stop incrementing/decrementing the numbers
93+
long_press_up = false;
94+
long_press_down = false;
95+
}
96+
else if (input::is_pressed(buttons.down) || long_press_down) {
97+
if (buttons.down == input::state::long_pressed) {
98+
long_press_down = true;
99+
}
100+
88101
// the down button is pressed
89102
if (value <= range.x) {
90103
// set to max value in range
@@ -94,7 +107,11 @@ namespace menu {
94107
value--;
95108
}
96109
}
97-
else if (input::is_pressed(buttons.up)) {
110+
else if (input::is_pressed(buttons.up) || long_press_up) {
111+
if (buttons.up == input::state::long_pressed) {
112+
long_press_up = true;
113+
}
114+
98115
// the up button is pressed
99116
if (value >= range.y) {
100117
// set to max value in range

0 commit comments

Comments
 (0)