X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-menu.h;h=4c3a43fcca978322d298b220afaf0232b9e98b4e;hp=4beffb069c73842b1895109591a308436e2ec978;hb=28926a0e2f144b09ac9e0a4d019c7f649fd9d5c1;hpb=089d0a6eb769d531129a7cd1061493a1a24b4bef diff --git a/ui/ncurses/nc-menu.h b/ui/ncurses/nc-menu.h index 4beffb0..4c3a43f 100644 --- a/ui/ncurses/nc-menu.h +++ b/ui/ncurses/nc-menu.h @@ -19,6 +19,8 @@ #if !defined(_PB_NC_MENU_H) #define _PB_NC_MENU_H +#include + #include /* This must be included before ncurses.h */ #if defined HAVE_NCURSESW_MENU_H # include @@ -65,10 +67,22 @@ static inline struct pmenu_item *pmenu_item_from_arg(void *arg) return item; } +static inline struct cui_opt_data *cod_from_item(struct pmenu_item *item) +{ + return item->data; +} + static inline struct pmenu_item *pmenu_item_init(struct pmenu *menu, unsigned int index, const char *name) { - return pmenu_item_setup(menu, pmenu_item_alloc(menu), index, name); + struct pmenu_item *item = pmenu_item_alloc(menu); + + if (pmenu_item_setup(menu, item, index, name)) { + talloc_free(item); + item = NULL; + } + + return item; } /** @@ -83,6 +97,8 @@ struct pmenu { ITEM **items; unsigned int item_count; unsigned int insert_pt; + const char *help_title; + const char *help_text; int (*hot_key)(struct pmenu *menu, struct pmenu_item *item, int c); void (*on_exit)(struct pmenu *menu); void (*on_new)(struct pmenu *menu);