#ifndef MENU_H #define MENU_H #include "stdint.h" #include "stdbool.h" typedef void (*menu_callback_t)(void *args); typedef struct { uint8_t *title; bool enabled; // not enabled = grayed out, unhighlightable menu_callback_t highlighted_callback_function; void *highlighted_callback_function_args; menu_callback_t selected_callback_function; void *selected_callback_function_args; } graphical_menu_entry_t; typedef struct _graphical_menu_t graphical_menu_t; struct _graphical_menu_t { graphical_menu_t *parent_menu; uint8_t num_entries; graphical_menu_entry_t *entries; }; void draw_menu(const graphical_menu_t *const menu); void select_menu_entry(const graphical_menu_t *const menu); uint8_t get_selected_menu_entry_idx(void); void set_selected_menu_entry_idx(const graphical_menu_t *const menu, uint8_t idx); #endif