@@ -1321,8 +1321,8 @@ draw_numeric_input(const char *buf)
1321
1321
int i = 0 ;
1322
1322
int x = 64 ;
1323
1323
int focused = FALSE ;
1324
- const uint16_t xsim[] = { 0 , 0 , 8 , 0 , 0 , 8 , 0 , 0 , 0 , 0 };
1325
- for (i = 0 ; i < 10 && buf[i]; i++) {
1324
+ const uint16_t xsim[] = { 8 , 0 , 0 , 8 , 0 , 0 , 8 , 0 , 0 , 0 , 0 };
1325
+ for (i = 0 ; i < (NUMERIC_INPUT_DIGITS + 1 ) && buf[i]; i++) {
1326
1326
uint16_t fg = 0x0000 ;
1327
1327
uint16_t bg = 0xffff ;
1328
1328
int c = buf[i];
@@ -1335,7 +1335,7 @@ draw_numeric_input(const char *buf)
1335
1335
else
1336
1336
c = -1 ;
1337
1337
1338
- if (uistat.digit == 8 -i ) {
1338
+ if (uistat.digit == NUMERIC_INPUT_DIGITS-i- 1 ) {
1339
1339
fg = RGB565 (128 ,255 ,128 );
1340
1340
focused = TRUE ;
1341
1341
if (uistat.digit_mode )
@@ -1355,8 +1355,8 @@ draw_numeric_input(const char *buf)
1355
1355
x += xsim[i];
1356
1356
}
1357
1357
}
1358
- if (i < 10 ) {
1359
- ili9341_fill (x, 208 +4 , 20 *(10 -i), 24 , 0xffff );
1358
+ if (i <= NUMERIC_INPUT_DIGITS ) {
1359
+ ili9341_fill (x, 208 +4 , 20 *(NUMERIC_INPUT_DIGITS+ 1 -i), 24 , 0xffff );
1360
1360
}
1361
1361
}
1362
1362
@@ -1629,8 +1629,13 @@ void set_numeric_value(void)
1629
1629
void
1630
1630
draw_numeric_area (void )
1631
1631
{
1632
- char buf[10 ];
1633
- chsnprintf (buf, sizeof buf, " %9ld" , uistat.value );
1632
+ char buf[NUMERIC_INPUT_DIGITS+1 ];
1633
+
1634
+ // if NUMERIC_INPUT_DIGITS is changed, the below format string
1635
+ // must be changed as well.
1636
+ static_assert (NUMERIC_INPUT_DIGITS == 10 );
1637
+ chsnprintf (buf, sizeof buf, " %10ld" , uistat.value );
1638
+
1634
1639
draw_numeric_input (buf);
1635
1640
}
1636
1641
0 commit comments