mirror of
https://github.com/ttrftech/NanoVNA.git
synced 2025-12-06 03:31:59 +01:00
Add button rise, falling, flat edge support
Some colors still hardcoded
This commit is contained in:
parent
e6342f1691
commit
66c63c3a11
40
ui.c
40
ui.c
|
|
@ -123,6 +123,13 @@ static int8_t selection = 0;
|
||||||
#define BUTTON_ICON_GROUP 2
|
#define BUTTON_ICON_GROUP 2
|
||||||
#define BUTTON_ICON_GROUP_CHECKED 3
|
#define BUTTON_ICON_GROUP_CHECKED 3
|
||||||
|
|
||||||
|
#define BUTTON_BORDER_NONE 0x00
|
||||||
|
#define BUTTON_BORDER_WIDTH_MASK (0x07<<0)
|
||||||
|
#define BUTTON_BORDER_TYPE_MASK (0x03<<3)
|
||||||
|
#define BUTTON_BORDER_FLAT (0x00<<3)
|
||||||
|
#define BUTTON_BORDER_RISE (0x01<<3)
|
||||||
|
#define BUTTON_BORDER_FALLING (0x02<<3)
|
||||||
|
|
||||||
typedef struct Button{
|
typedef struct Button{
|
||||||
uint16_t bg;
|
uint16_t bg;
|
||||||
uint16_t fg;
|
uint16_t fg;
|
||||||
|
|
@ -1447,10 +1454,18 @@ static void
|
||||||
draw_button(uint16_t x, uint16_t y, uint16_t w, uint16_t h, button_t *b)
|
draw_button(uint16_t x, uint16_t y, uint16_t w, uint16_t h, button_t *b)
|
||||||
{
|
{
|
||||||
// background
|
// background
|
||||||
uint16_t bw = b->border;
|
uint16_t bw = b->border&BUTTON_BORDER_WIDTH_MASK;
|
||||||
uint16_t bcr = RGB565(255,255,255);//b->border_color;
|
|
||||||
uint16_t bcd = RGB565(196,196,196);//b->border_color;
|
|
||||||
ili9341_fill(x + bw, y + bw, w - (bw * 2), h - (bw * 2), b->bg);
|
ili9341_fill(x + bw, y + bw, w - (bw * 2), h - (bw * 2), b->bg);
|
||||||
|
if (bw==0) return;
|
||||||
|
uint16_t bcr, bcd;
|
||||||
|
switch(b->border&BUTTON_BORDER_TYPE_MASK){
|
||||||
|
case BUTTON_BORDER_RISE: bcr = RGB565(255,255,255); bcd = RGB565(196,196,196); break;
|
||||||
|
case BUTTON_BORDER_FALLING: bcr = RGB565(196,196,196); bcd = RGB565(255,255,255); break;
|
||||||
|
case BUTTON_BORDER_FLAT:
|
||||||
|
default:
|
||||||
|
bcr = bcd = b->border_color;
|
||||||
|
break;
|
||||||
|
}
|
||||||
ili9341_fill(x, y, w, bw, bcr); // top
|
ili9341_fill(x, y, w, bw, bcr); // top
|
||||||
ili9341_fill(x + w - bw, y, bw, h, bcr); // right
|
ili9341_fill(x + w - bw, y, bw, h, bcr); // right
|
||||||
ili9341_fill(x, y, bw, h, bcd); // left
|
ili9341_fill(x, y, bw, h, bcd); // left
|
||||||
|
|
@ -1463,14 +1478,17 @@ draw_keypad(void)
|
||||||
int i = 0;
|
int i = 0;
|
||||||
button_t button;
|
button_t button;
|
||||||
button.fg = DEFAULT_MENU_TEXT_COLOR;
|
button.fg = DEFAULT_MENU_TEXT_COLOR;
|
||||||
button.border = KEYBOARD_BUTTON_BORDER;
|
|
||||||
button.border_color = DEFAULT_GRID_COLOR;
|
button.border_color = DEFAULT_GRID_COLOR;
|
||||||
while (keypads[i].c != KP_NONE) {
|
while (keypads[i].c != KP_NONE) {
|
||||||
|
|
||||||
button.bg = RGB565(230,230,230);//config.menu_normal_color;
|
button.bg = RGB565(230,230,230);//config.menu_normal_color;
|
||||||
button.border_color = DEFAULT_GRID_COLOR;
|
button.border_color = DEFAULT_GRID_COLOR;
|
||||||
if (i == selection)
|
if (i == selection){
|
||||||
button.bg = config.menu_active_color;
|
button.bg = RGB565(210,210,210);//config.menu_active_color;
|
||||||
|
button.border = KEYBOARD_BUTTON_BORDER|BUTTON_BORDER_FALLING;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
button.border = KEYBOARD_BUTTON_BORDER|BUTTON_BORDER_RISE;
|
||||||
ili9341_set_foreground(button.fg);
|
ili9341_set_foreground(button.fg);
|
||||||
ili9341_set_background(button.bg);
|
ili9341_set_background(button.bg);
|
||||||
int x = KP_GET_X(keypads[i].x);
|
int x = KP_GET_X(keypads[i].x);
|
||||||
|
|
@ -1668,11 +1686,13 @@ draw_menu_buttons(const menuitem_t *menu)
|
||||||
button.fg = DEFAULT_MENU_TEXT_COLOR;
|
button.fg = DEFAULT_MENU_TEXT_COLOR;
|
||||||
button.border_color = DEFAULT_GRID_COLOR;
|
button.border_color = DEFAULT_GRID_COLOR;
|
||||||
button.icon = BUTTON_ICON_NONE;
|
button.icon = BUTTON_ICON_NONE;
|
||||||
button.border = MENU_BUTTON_BORDER;
|
|
||||||
// focus only in MENU mode but not in KEYPAD mode
|
// focus only in MENU mode but not in KEYPAD mode
|
||||||
if (ui_mode == UI_MENU && i == selection)
|
if (ui_mode == UI_MENU && i == selection){
|
||||||
button.bg = config.menu_active_color;
|
button.bg = RGB565(210,210,210);//config.menu_active_color;
|
||||||
|
button.border = MENU_BUTTON_BORDER|BUTTON_BORDER_FALLING;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
button.border = MENU_BUTTON_BORDER|BUTTON_BORDER_RISE;
|
||||||
// menu_item_modify_attribute(menu, i, &button);
|
// menu_item_modify_attribute(menu, i, &button);
|
||||||
if (menu[i].type == MT_ADV_CALLBACK){
|
if (menu[i].type == MT_ADV_CALLBACK){
|
||||||
menuaction_acb_t cb = (menuaction_acb_t)menu[i].reference;
|
menuaction_acb_t cb = (menuaction_acb_t)menu[i].reference;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue