Menus are composed of items. Each item has a key used to identify it in
the menu, and an opaque pointer to data controlled by the consumer.
+If you want to show a menu, instead starting the shell, define
+CONFIG_MENU_SHOW. You have to code the int menu_show(int bootdelay)
+function, which handle your menu. This function returns the remaining
+bootdelay.
+
Interfaces
----------
#include "menu.h"
/*
* menu_create() - Creates a menu handle with default settings
*/
-struct menu *menu_create(char *title, int prompt,
+struct menu *menu_create(char *title, int timeout, int prompt,
void (*item_data_print)(void *));
/*
/*
* menu_get_choice() - Returns the user's selected menu entry, or the
- * default if the menu is set to not prompt.
+ * default if the menu is set to not prompt or the timeout expires.
*/
int menu_get_choice(struct menu *m, void **choice);
*/
int menu_destroy(struct menu *m);
+/*
+ * menu_display_statusline(struct menu *m);
+ * shows a statusline for every menu_display call.
+ */
+void menu_display_statusline(struct menu *m);
Example Code
------------
int i;
char *tool = NULL;
- m = menu_create("Tools", 1, NULL);
+ m = menu_create("Tools", 0, 1, NULL);
for(i = 0; tools[i]; i++) {
if (menu_item_add(m, tools[i], tools[i]) != 1) {
printf("failed to add item!");
menu_destroy(m);
return NULL;
- }
+ }
}
if (menu_get_choice(m, (void **)&tool) != 1)