menu(3x)                                                              menu(3x)
       menu - curses extension for programming menus
       #include <menu.h>
       The menu library provides terminal-independent facilities for composing
       menu systems on character-cell terminals.  The library  includes:  item
       routines,  which create and modify menu items; and menu routines, which
       group items into menus, display menus on the screen, and handle  inter-
       action with the user.
       The menu library uses the curses libraries, and a curses initialization
       routine such as initscr must be called before using any of these  func-
       tions.  To use the menu library, link with the options -lmenu -lcurses.
       The  menu  library  maintains a default value for item attributes.  You
       can get or set this default by calling the  appropriate  get_  or  set_
       routine  with  a  NULL item pointer.  Changing this default with a set_
       function affects future item creations, but does not change the render-
       ing of items already created.
       The  following table lists each menu routine and the name of the manual
       page on which it is described.
       curses Routine Name    Manual Page Name
       --------------------------------------------
       current_item           mitem_current(3x)
       free_item              mitem_new(3x)
       free_menu              menu_new(3x)
       item_count             menu_items(3x)
       item_description       mitem_name(3x)
       item_index             mitem_current(3x)
       item_init              menu_hook(3x)
       item_name              mitem_name(3x)
       item_opts              mitem_opts(3x)
       item_opts_off          mitem_opts(3x)
       item_opts_on           mitem_opts(3x)
       item_term              menu_hook(3x)
       item_userptr           mitem_userptr(3x)
       item_value             mitem_value(3x)
       item_visible           mitem_visible(3x)
       menu_back              menu_attributes(3x)
       menu_driver            menu_driver(3x)
       menu_fore              menu_attributes(3x)
       menu_format            menu_format(3x)
       menu_grey              menu_attributes(3x)
       menu_init              menu_hook(3x)
       menu_items             menu_items(3x)
       menu_mark              menu_mark(3x)
       menu_opts              menu_opts(3x)
       menu_opts_off          menu_opts(3x)
       menu_opts_on           menu_opts(3x)
       menu_pad               menu_attributes(3x)
       menu_pattern           menu_pattern(3x)
       menu_request_by_name   menu_requestname(3x)
       menu_request_name      menu_requestname(3x)
       menu_spacing           menu_spacing(3x)
       menu_sub               menu_win(3x)
       menu_term              menu_hook(3x)
       menu_userptr           menu_userptr(3x)
       menu_win               menu_win(3x)
       new_item               mitem_new(3x)
       new_menu               menu_new(3x)
       pos_menu_cursor        menu_cursor(3x)
       post_menu              menu_post(3x)
       scale_menu             menu_win(3x)
       set_current_item       mitem_current(3x)
       set_item_init          menu_hook(3x)
       set_item_opts          mitem_opts(3x)
       set_item_term          menu_hook(3x)
       set_item_userptr       mitem_userptr(3x)
       set_item_value         mitem_value(3x)
       set_menu_back          menu_attributes(3x)
       set_menu_fore          menu_attributes(3x)
       set_menu_format        menu_format(3x)
       set_menu_grey          menu_attributes(3x)
       set_menu_init          menu_hook(3x)
       set_menu_items         menu_items(3x)
       set_menu_mark          menu_mark(3x)
       set_menu_opts          mitem_opts(3x)
       set_menu_pad           menu_attributes(3x)
       set_menu_pattern       menu_pattern(3x)
       set_menu_spacing       menu_spacing(3x)
       set_menu_sub           menu_win(3x)
       set_menu_term          menu_hook(3x)
       set_menu_userptr       menu_userptr(3x)
       set_menu_win           menu_win(3x)
       set_top_row            mitem_current(3x)
       top_row                mitem_current(3x)
       unpost_menu            menu_post(3x)
       Routines that return pointers return  NULL  on  error.   Routines  that
       return an integer return one of the following error codes:
       E_OK The routine succeeded.
       E_BAD_ARGUMENT
            Routine detected an incorrect or out-of-range argument.
       E_BAD_STATE
            Routine was called from an initialization or termination function.
       E_NO_MATCH
            Character failed to match.
       E_NO_ROOM
            Menu is too large for its window.
       E_NOT_CONNECTED
            No items are connected to the menu.
       E_NOT_POSTED
            The menu has not been posted.
       E_NOT_SELECTABLE
            The designated item cannot be selected.
       E_POSTED
            The menu is already posted.
       E_REQUEST_DENIED
            The menu driver could not process the request.
       E_SYSTEM_ERROR
            System error occurred (see errno(3)).
       E_UNKNOWN_COMMAND
            The menu driver code saw an unknown request code.
       The  header  file  <menu.h>  automatically  includes  the  header files
       <curses.h> and <eti.h>.
       In your library list, libmenu.a should be before libncurses.a; that is,
       you  should  say  "-lmenu  -lncurses",  not the other way around (which
       would give a link-error when using static libraries).
       These routines emulate the System V menu library.  They were  not  sup-
       ported on Version 7 or BSD versions.
       The  menu facility was documented in SVr4.2 in Character User Interface
       Programming (UNIX SVR4.2).
       It is not part of X/Open Curses.
       Aside from ncurses, there are few implementations:
       o   systems based on SVr4 source code, e.g., Solaris.
       o   NetBSD curses.
       Juergen Pfeifer.  Manual pages and adaptation for ncurses  by  Eric  S.
       Raymond.
       curses(3x)  and  related  pages  whose names begin "menu_" for detailed
       descriptions of the entry points.
       This describes ncurses version 6.2 (patch 20201107).
                                                                      menu(3x)