#if !defined(_PB_NC_MENU_H)
#define _PB_NC_MENU_H
+#include <assert.h>
+
#include <linux/input.h> /* This must be included before ncurses.h */
#if defined HAVE_NCURSESW_MENU_H
# include <ncursesw/menu.h>
int (*on_execute)(struct pmenu_item *item);
};
-struct pmenu_item *pmenu_item_alloc(struct pmenu *menu);
-struct pmenu_item *pmenu_item_setup(struct pmenu *menu, struct pmenu_item *i,
- unsigned int index, const char *name);
-int pmenu_item_replace(struct pmenu_item *i, const char *name);
+struct pmenu_item *pmenu_item_create(struct pmenu *menu, const char *name);
+struct pmenu_item *pmenu_find_device(struct pmenu *menu, struct device *dev,
+ struct boot_option *opt);
+void pmenu_item_insert(struct pmenu *menu, struct pmenu_item *item,
+ unsigned int index);
+void pmenu_item_add(struct pmenu *menu, struct pmenu_item *item,
+ unsigned int insert_pt);
void pmenu_item_delete(struct pmenu_item *item);
static inline struct pmenu_item *pmenu_item_from_arg(void *arg)
return item;
}
-static inline struct pmenu_item *pmenu_item_init(struct pmenu *menu,
- unsigned int index, const char *name)
+static inline struct cui_opt_data *cod_from_item(struct pmenu_item *item)
{
- return pmenu_item_setup(menu, pmenu_item_alloc(menu), index, name);
+ return item->data;
}
/**
ITEM **items;
unsigned int item_count;
unsigned int insert_pt;
+ const char *help_title;
+ const struct help_text *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);
struct pmenu *pmenu_init(void *ui_ctx, unsigned int item_count,
void (*on_exit)(struct pmenu *));
int pmenu_setup(struct pmenu *menu);
-void pmenu_delete(struct pmenu *menu);
unsigned int pmenu_grow(struct pmenu *menu, unsigned int count);
int pmenu_remove(struct pmenu *menu, struct pmenu_item *item);
struct pmenu_item *pmenu_find_selected(struct pmenu *menu);
/* debug routines */
-#if defined(DEBUG)
-enum {do_debug = 1};
-#else
-enum {do_debug = 0};
-#endif
-
static inline void pmenu_dump_item(const ITEM *item)
{
- if (do_debug)
- pb_log("%p %s\n", item, (item ? item->name.str : "(null)"));
+ pb_debug("%p %s\n", item, (item ? item->name.str : "(null)"));
}
static inline void pmenu_dump_items(ITEM *const *items, unsigned int count)
{
unsigned int i;
- if (do_debug)
- for (i = 0; i < count; i++)
- pb_log("%u: %p %s\n", i, items[i],
- (items[i] ? items[i]->name.str : "(null)"));
+ for (i = 0; i < count; i++)
+ pb_debug("%u: %p %s\n", i, items[i],
+ (items[i] ? items[i]->name.str : "(null)"));
}
#endif