|
|
|
@ -26,7 +26,7 @@
|
|
|
|
#include <math.h>
|
|
|
|
#include <math.h>
|
|
|
|
|
|
|
|
|
|
|
|
#pragma GCC push_options
|
|
|
|
#pragma GCC push_options
|
|
|
|
#pragma GCC optimize ("Os")
|
|
|
|
#pragma GCC optimize ("Og")
|
|
|
|
|
|
|
|
|
|
|
|
uistat_t uistat = {
|
|
|
|
uistat_t uistat = {
|
|
|
|
digit: 6,
|
|
|
|
digit: 6,
|
|
|
|
@ -1318,7 +1318,6 @@ menu_move_back(void)
|
|
|
|
|
|
|
|
|
|
|
|
if (current_menu_is_form()) {
|
|
|
|
if (current_menu_is_form()) {
|
|
|
|
redraw_frame();
|
|
|
|
redraw_frame();
|
|
|
|
redraw_request |= REDRAW_BATTERY;
|
|
|
|
|
|
|
|
area_width = 0;
|
|
|
|
area_width = 0;
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
// redraw_frame();
|
|
|
|
// redraw_frame();
|
|
|
|
@ -1351,7 +1350,6 @@ menu_push_submenu(const menuitem_t *submenu)
|
|
|
|
ensure_selection();
|
|
|
|
ensure_selection();
|
|
|
|
if (menu_is_form(submenu)) {
|
|
|
|
if (menu_is_form(submenu)) {
|
|
|
|
redraw_frame();
|
|
|
|
redraw_frame();
|
|
|
|
redraw_request |= REDRAW_BATTERY;
|
|
|
|
|
|
|
|
area_width = 0;
|
|
|
|
area_width = 0;
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
// redraw_frame();
|
|
|
|
// redraw_frame();
|
|
|
|
@ -1973,6 +1971,8 @@ draw_menu_buttons(const menuitem_t *menu)
|
|
|
|
ili9341_set_background(LCD_BG_COLOR);
|
|
|
|
ili9341_set_background(LCD_BG_COLOR);
|
|
|
|
for (; y < MENU_BUTTON_MAX*MENU_BUTTON_HEIGHT; y+=MENU_BUTTON_HEIGHT)
|
|
|
|
for (; y < MENU_BUTTON_MAX*MENU_BUTTON_HEIGHT; y+=MENU_BUTTON_HEIGHT)
|
|
|
|
ili9341_fill(LCD_WIDTH-MENU_BUTTON_WIDTH, y, MENU_BUTTON_WIDTH, MENU_BUTTON_HEIGHT);
|
|
|
|
ili9341_fill(LCD_WIDTH-MENU_BUTTON_WIDTH, y, MENU_BUTTON_WIDTH, MENU_BUTTON_HEIGHT);
|
|
|
|
|
|
|
|
// if (menu[i].type & MT_FORM)
|
|
|
|
|
|
|
|
// draw_battery_status();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static systime_t prev_touch_time = 0;
|
|
|
|
static systime_t prev_touch_time = 0;
|
|
|
|
@ -2028,7 +2028,7 @@ menu_select_touch(int i, int pos)
|
|
|
|
if (touch_x != prev_touch_x /* - 1 || prev_touch_x + 1 < touch_x */ ) {
|
|
|
|
if (touch_x != prev_touch_x /* - 1 || prev_touch_x + 1 < touch_x */ ) {
|
|
|
|
keypad_mode = keypad;
|
|
|
|
keypad_mode = keypad;
|
|
|
|
fetch_numeric_target();
|
|
|
|
fetch_numeric_target();
|
|
|
|
int new_slider = touch_x - LCD_WIDTH/2;
|
|
|
|
volatile int new_slider = (int)touch_x - LCD_WIDTH/2; // Can have negative outcome
|
|
|
|
if (new_slider < - (MENU_FORM_WIDTH-8)/2)
|
|
|
|
if (new_slider < - (MENU_FORM_WIDTH-8)/2)
|
|
|
|
new_slider = -(MENU_FORM_WIDTH-8)/2;
|
|
|
|
new_slider = -(MENU_FORM_WIDTH-8)/2;
|
|
|
|
if (new_slider > (MENU_FORM_WIDTH-8)/2)
|
|
|
|
if (new_slider > (MENU_FORM_WIDTH-8)/2)
|
|
|
|
@ -2044,7 +2044,9 @@ menu_select_touch(int i, int pos)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (mode == SL_MOVE ) {
|
|
|
|
if (mode == SL_MOVE ) {
|
|
|
|
uistat.value = uistat.value - setting.slider_position * (setting.slider_span/(MENU_FORM_WIDTH-8)) + new_slider * (setting.slider_span/(MENU_FORM_WIDTH-8));
|
|
|
|
uistat.value = uistat.value - setting.slider_position * ((int)setting.slider_span/(MENU_FORM_WIDTH-8)) + new_slider * ((int)setting.slider_span/(MENU_FORM_WIDTH-8));
|
|
|
|
|
|
|
|
if (uistat.value < 0)
|
|
|
|
|
|
|
|
uistat.value = 0;
|
|
|
|
if (uistat.value < minFreq)
|
|
|
|
if (uistat.value < minFreq)
|
|
|
|
uistat.value = minFreq;
|
|
|
|
uistat.value = minFreq;
|
|
|
|
if (uistat.value > maxFreq)
|
|
|
|
if (uistat.value > maxFreq)
|
|
|
|
@ -2123,6 +2125,7 @@ menu_select_touch(int i, int pos)
|
|
|
|
if (dt > BUTTON_DOWN_LONG_TICKS || do_exit) {
|
|
|
|
if (dt > BUTTON_DOWN_LONG_TICKS || do_exit) {
|
|
|
|
selection = -1;
|
|
|
|
selection = -1;
|
|
|
|
draw_menu();
|
|
|
|
draw_menu();
|
|
|
|
|
|
|
|
redraw_request = 0; // Remove request to redraw grid
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_LOWOUTLEVEL) {
|
|
|
|
if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_LOWOUTLEVEL) {
|
|
|
|
@ -2148,10 +2151,10 @@ menu_select_touch(int i, int pos)
|
|
|
|
} else if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_CENTER) {
|
|
|
|
} else if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_CENTER) {
|
|
|
|
switch (pos) {
|
|
|
|
switch (pos) {
|
|
|
|
case 0:
|
|
|
|
case 0:
|
|
|
|
step = -setting.slider_span;
|
|
|
|
step = -(int)setting.slider_span;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
case 1:
|
|
|
|
step = -setting.slider_span/10;
|
|
|
|
step = -(int)setting.slider_span/10;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
case 2:
|
|
|
|
goto nogo;
|
|
|
|
goto nogo;
|
|
|
|
@ -2758,6 +2761,8 @@ ui_process_keypad(void)
|
|
|
|
ui_mode_menu(); //Reactivate menu after keypad
|
|
|
|
ui_mode_menu(); //Reactivate menu after keypad
|
|
|
|
selection = -1;
|
|
|
|
selection = -1;
|
|
|
|
ensure_selection();
|
|
|
|
ensure_selection();
|
|
|
|
|
|
|
|
// redraw_request = 0; // Clear all draw requests
|
|
|
|
|
|
|
|
redraw_request = REDRAW_BATTERY; // Only redraw battery
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
ui_mode_normal();
|
|
|
|
ui_mode_normal();
|
|
|
|
// request_to_redraw_grid();
|
|
|
|
// request_to_redraw_grid();
|
|
|
|
|