diff --git a/include/notcurses.h b/include/notcurses.h index 74fddb0d8..90410ea24 100644 --- a/include/notcurses.h +++ b/include/notcurses.h @@ -2202,6 +2202,23 @@ API void ncselector_nextitem(struct ncselector* n, char** newitem); // be strdup()ed and assigned to '*item' (and must be free()d by the caller). API void ncselector_destroy(struct ncselector* n, char** item); +// Menus. Horizontal menu bars are supported, on the top and/or bottom rows. +// If the menu bar is longer than the screen, it will be only partially +// visible. Menus may be either visible or invisible by default. In the event of +// a screen resize, menus will be automatically moved/resized. Elements can be +// dynamically enabled or disabled at all levels (menu, section, and item), + +typedef struct menu_options { + bool bottom; // on the bottom row, as opposed to top row + struct { + char* name; // utf-8 c string + char** items; // argv-style list of UTF8 c strings + }* sections; // array of menu sections + int headercount; // must be positive + uint64_t headerchannels; // styling for header + uint64_t sectionchannels; // styling for sections +} menu_options; + #undef API #ifdef __cplusplus