diff --git a/NEWS.md b/NEWS.md index 7df18861a..105a9c679 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,9 @@ This document attempts to list user-visible changes and any major internal rearrangements of Notcurses. +* 2.1.0 (not yet released) + * Add `ncmenu_item_set_status()` for disabling or enabling menu items. + * 2.0.0 (2020-10-12) "Stankonia" * **API STABILITY!** The API expressed in 2.0.0 will be maintained throughout at least 2.x.x. A program compiled against 2.0.0 will continue to compile diff --git a/doc/man/man3/notcurses_menu.3.md b/doc/man/man3/notcurses_menu.3.md index fd0264502..698f7a118 100644 --- a/doc/man/man3/notcurses_menu.3.md +++ b/doc/man/man3/notcurses_menu.3.md @@ -51,6 +51,8 @@ typedef struct ncmenu_options { **int ncmenu_previtem(struct ncmenu* n);** +**int ncmenu_item_set_status(struct ncmenu* n, const char* section, const char* item, bool enabled);** + **const char* ncmenu_selected(const struct ncmenu* n, struct ncinput* ni);** **const char* ncmenu_mouse_selected(const struct ncmenu* n, const struct ncinput* click, struct ncinput* ni);** diff --git a/include/ncpp/Menu.hh b/include/ncpp/Menu.hh index b5faeb71a..985558677 100644 --- a/include/ncpp/Menu.hh +++ b/include/ncpp/Menu.hh @@ -60,6 +60,11 @@ namespace ncpp return error_guard (ncmenu_previtem (menu), -1); } + bool item_set_status (const char* section, const char* item, bool status) const NOEXCEPT_MAYBE + { + return error_guard (ncmenu_item_set_status (menu, section, item, status), -1); + } + const char* get_selected (ncinput *ni = nullptr) const noexcept { return ncmenu_selected (menu, ni); diff --git a/python/src/notcurses/build_notcurses.py b/python/src/notcurses/build_notcurses.py index 2564054ea..49839180f 100644 --- a/python/src/notcurses/build_notcurses.py +++ b/python/src/notcurses/build_notcurses.py @@ -315,6 +315,7 @@ int ncmenu_nextsection(struct ncmenu* n); int ncmenu_prevsection(struct ncmenu* n); int ncmenu_nextitem(struct ncmenu* n); int ncmenu_previtem(struct ncmenu* n); +int ncmenu_item_set_status(struct ncmenu* n, const char* section, const char* item, bool enabled); const char* ncmenu_selected(const struct ncmenu* n, struct ncinput* ni); bool ncmenu_offer_input(struct ncmenu* n, const struct ncinput* nc); int ncmenu_destroy(struct ncmenu* n);