The menu library uses the curses libraries, and a curses initialization routine such as initscr must be called before using any of these functions. To use the menu library, link with the options -lmenu -lcurses.
curses Routine Name | Manual Page Name |
current_item | menu_current(3MENU) |
free_item | menu_new(3MENU) |
free_menu | new(3MENU) |
item_count | items(3MENU) |
item_description | menu_name(3MENU) |
item_index | menu_current(3MENU) |
item_init | hook(3MENU) |
item_name | menu_name(3MENU) |
item_opts | menu_opts(3MENU) |
item_opts_off | menu_opts(3MENU) |
item_opts_on | menu_opts(3MENU) |
item_term | hook(3MENU) |
item_userptr | menu_userptr(3MENU) |
item_value | menu_value(3MENU) |
item_visible | menu_visible(3MENU) |
menu_back | attributes(3MENU) |
menu_driver | driver(3MENU) |
menu_fore | attributes(3MENU) |
menu_format | format(3MENU) |
menu_grey | attributes(3MENU) |
menu_init | hook(3MENU) |
menu_items | items(3MENU) |
menu_mark | mark(3MENU) |
menu_opts | opts(3MENU) |
menu_opts_off | opts(3MENU) |
menu_opts_on | opts(3MENU) |
menu_pad | attributes(3MENU) |
menu_pattern | pattern(3MENU) |
menu_request_by_name | requestname(3MENU) |
menu_request_name | requestname(3MENU) |
menu_spacing | spacing(3MENU) |
menu_sub | win(3MENU) |
menu_term | hook(3MENU) |
menu_userptr | userptr(3MENU) |
menu_win | win(3MENU) |
new_item | menu_new(3MENU) |
new_menu | new(3MENU) |
pos_menu_cursor | cursor(3MENU) |
post_menu | post(3MENU) |
scale_menu | win(3MENU) |
set_current_item | menu_current(3MENU) |
set_item_init | hook(3MENU) |
set_item_opts | menu_opts(3MENU) |
set_item_term | hook(3MENU) |
set_item_userptr | menu_userptr(3MENU) |
set_item_value | menu_value(3MENU) |
set_menu_back | attributes(3MENU) |
set_menu_fore | attributes(3MENU) |
set_menu_format | format(3MENU) |
set_menu_grey | attributes(3MENU) |
set_menu_init | hook(3MENU) |
set_menu_items | items(3MENU) |
set_menu_mark | mark(3MENU) |
set_menu_opts | menu_opts(3MENU) |
set_menu_pad | attributes(3MENU) |
set_menu_pattern | pattern(3MENU) |
set_menu_spacing | spacing(3MENU) |
set_menu_sub | win(3MENU) |
set_menu_term | hook(3MENU) |
set_menu_userptr | userptr(3MENU) |
set_menu_win | win(3MENU) |
set_top_row | menu_current(3MENU) |
top_row | menu_current(3MENU) |
unpost_menu | post(3MENU) |
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).
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:
.IP • 4
systems based on SVr4 source code, e.g., Solaris.
.IP • 4
NetBSD curses.
This describes ncurses version 6.4 (patch 20221231).