#ifndef _IPXE_MENU_H #define _IPXE_MENU_H /** @file * * Menu selection * */ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include /** 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 */