Added toggle switch widget.
This commit is contained in:
@@ -20,7 +20,7 @@ void draw_menu_entry(volatile pixel_t *const framebuffer, const graphical_menu_t
|
||||
|
||||
// Draw entry background - use highlighted color if this is the selected entry
|
||||
pixel_t bg_color = is_highlighted ? highlighted_bg_color : entry_bg_color;
|
||||
DrawBox(0, y_pos, DISPLAY_WIDTH, entry_height, bg_color);
|
||||
DrawBox(0, y_pos + 1, DISPLAY_WIDTH, entry_height - 1, bg_color);
|
||||
|
||||
// Draw entry text - use highlighted color if selected, otherwise use enabled/disabled color
|
||||
pixel_t text_color;
|
||||
@@ -35,10 +35,16 @@ void draw_menu_entry(volatile pixel_t *const framebuffer, const graphical_menu_t
|
||||
|
||||
// Calculate baseline from top position: baseline = top + (line_height - base_line)
|
||||
const uint16_t text_baseline_y = y_pos + padding_y + (roboto_bold_font.line_height - roboto_bold_font.base_line);
|
||||
draw_string(framebuffer, &runescape_font,
|
||||
draw_string(framebuffer, &roboto_bold_font,
|
||||
padding_x, text_baseline_y,
|
||||
entry->title, text_color);
|
||||
|
||||
// draw a line between the menu entries
|
||||
if (entry_idx != 0)
|
||||
{
|
||||
DrawBox(5, y_pos, DISPLAY_WIDTH - 10, 1, MAKE_PIXEL(80, 80, 80));
|
||||
}
|
||||
|
||||
if (entry->extra_draw_function != NULL)
|
||||
{
|
||||
const menu_entry_size_t menu_entry_size = {
|
||||
@@ -132,4 +138,24 @@ void increment_selected_menu_entry_idx(volatile pixel_t *const framebuffer, grap
|
||||
}
|
||||
|
||||
set_selected_menu_entry_idx(framebuffer, menu, idx);
|
||||
}
|
||||
|
||||
void add_toggle_switch_to_menu_entry(const menu_entry_size_t *const menu_entry_size, void *const toggle_switch_value)
|
||||
{
|
||||
const uint16_t width_padding = 10;
|
||||
const uint16_t toggle_switch_width = 40;
|
||||
const uint16_t toggle_switch_height = 20;
|
||||
|
||||
const uint16_t x = menu_entry_size->x + ( (menu_entry_size->width - toggle_switch_width)) - width_padding;
|
||||
const uint16_t y = menu_entry_size->y + ( (menu_entry_size->height / 2) - (toggle_switch_height / 2));
|
||||
const toggle_switch_t toggle_switch = {
|
||||
.x = x,
|
||||
.y = y,
|
||||
.width = toggle_switch_width,
|
||||
.height = toggle_switch_height,
|
||||
.inner_padding_pixels = 3,
|
||||
.value = *(bool *)toggle_switch_value,
|
||||
};
|
||||
|
||||
draw_toggle_switch(next_framebuffer, &toggle_switch);
|
||||
}
|
||||
Reference in New Issue
Block a user