12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #ifndef _IPXE_MENU_H
- #define _IPXE_MENU_H
-
- /** @file
- *
- * Menu selection
- *
- */
-
- FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
- #include <ipxe/list.h>
-
- /** A menu */
- struct menu {
- /** List of menus */
- struct list_head list;
- /** Name */
- const char *name;
- /** Title */
- const char *title;
- /** Menu items */
- struct list_head items;
- };
-
- /** A menu item */
- struct menu_item {
- /** List of menu items */
- struct list_head list;
- /** Label */
- const char *label;
- /** Text */
- const char *text;
- /** Shortcut key */
- int shortcut;
- /** Is default item */
- int is_default;
- };
-
- extern struct menu * create_menu ( const char *name, const char *title );
- extern struct menu_item * add_menu_item ( struct menu *menu, const char *label,
- const char *text, int shortcut,
- int is_default );
- extern void destroy_menu ( struct menu *menu );
- extern struct menu * find_menu ( const char *name );
- extern int show_menu ( struct menu *menu, unsigned long timeout,
- const char *select, struct menu_item **selected );
-
- #endif /* _IPXE_MENU_H */
|