diff options
author | Tom Rini <trini@konsulko.com> | 2020-05-07 09:02:28 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2020-05-07 09:02:28 -0400 |
commit | 69bf66ad8c0d53cc5e64d0f4f2e3bc9ad18e61aa (patch) | |
tree | b89bafeea8ed15b1403edf892964adaa5003255d /common/menu.c | |
parent | 1259567ae3cd4c84acb9db6ab1fadcdcd26968a9 (diff) | |
parent | 5168d7a6264be30f82c1c074e43c24fcacbb4283 (diff) |
Merge branch '2020-05-06-master-imports'
- ARM Juno updates
- Assorted bugfixes
Diffstat (limited to 'common/menu.c')
-rw-r--r-- | common/menu.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/common/menu.c b/common/menu.c index 7b66d199a9..5fb2ffbd06 100644 --- a/common/menu.c +++ b/common/menu.c @@ -36,6 +36,7 @@ struct menu { int timeout; char *title; int prompt; + void (*display_statusline)(struct menu *); void (*item_data_print)(void *); char *(*item_choice)(void *); void *item_choice_data; @@ -106,10 +107,6 @@ static inline void *menu_item_destroy(struct menu *m, return NULL; } -__weak void menu_display_statusline(struct menu *m) -{ -} - /* * Display a menu so the user can make a choice of an item. First display its * title, if any, and then each item in the menu. @@ -120,7 +117,8 @@ static inline void menu_display(struct menu *m) puts(m->title); putc('\n'); } - menu_display_statusline(m); + if (m->display_statusline) + m->display_statusline(m); menu_items_iter(m, menu_item_print, NULL); } @@ -344,6 +342,9 @@ int menu_item_add(struct menu *m, char *item_key, void *item_data) * timeout. If 1, the user will be prompted for input regardless of the value * of timeout. * + * display_statusline - If not NULL, will be called to show a statusline when + * the menu is displayed. + * * item_data_print - If not NULL, will be called for each item when the menu * is displayed, with the pointer to the item's data passed as the argument. * If NULL, each item's key will be printed instead. Since an item's key is @@ -360,6 +361,7 @@ int menu_item_add(struct menu *m, char *item_key, void *item_data) * insufficient memory available to create the menu. */ struct menu *menu_create(char *title, int timeout, int prompt, + void (*display_statusline)(struct menu *), void (*item_data_print)(void *), char *(*item_choice)(void *), void *item_choice_data) @@ -374,6 +376,7 @@ struct menu *menu_create(char *title, int timeout, int prompt, m->default_item = NULL; m->prompt = prompt; m->timeout = timeout; + m->display_statusline = display_statusline; m->item_data_print = item_data_print; m->item_choice = item_choice; m->item_choice_data = item_choice_data; |