ncurses 6.0 - patch 20171028
[ncurses.git] / doc / html / man / menu.3x.html
1 <!-- 
2   * t
3   ****************************************************************************
4   * Copyright (c) 1998-2014,2017 Free Software Foundation, Inc.              *
5   *                                                                          *
6   * Permission is hereby granted, free of charge, to any person obtaining a  *
7   * copy of this software and associated documentation files (the            *
8   * "Software"), to deal in the Software without restriction, including      *
9   * without limitation the rights to use, copy, modify, merge, publish,      *
10   * distribute, distribute with modifications, sublicense, and/or sell       *
11   * copies of the Software, and to permit persons to whom the Software is    *
12   * furnished to do so, subject to the following conditions:                 *
13   *                                                                          *
14   * The above copyright notice and this permission notice shall be included  *
15   * in all copies or substantial portions of the Software.                   *
16   *                                                                          *
17   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
18   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
19   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
20   * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
21   * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
22   * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
23   * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
24   *                                                                          *
25   * Except as contained in this notice, the name(s) of the above copyright   *
26   * holders shall not be used in advertising or otherwise to promote the     *
27   * sale, use or other dealings in this Software without prior written       *
28   * authorization.                                                           *
29   ****************************************************************************
30   * @Id: menu.3x,v 1.23 2017/02/18 16:49:46 tom Exp @
31 -->
32 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
33 <HTML>
34 <HEAD>
35 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
36 <meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
37 <TITLE>menu 3x</TITLE>
38 <link rev=made href="mailto:bug-ncurses@gnu.org">
39 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
40 </HEAD>
41 <BODY>
42 <H1 class="no-header">menu 3x</H1>
43 <PRE>
44 <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>                                                              <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
45
46
47
48
49 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
50        <STRONG>menu</STRONG> - curses extension for programming menus
51
52
53 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
54        <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
55
56
57 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
58        The <STRONG>menu</STRONG> library provides terminal-independent facilities for composing
59        menu systems on character-cell terminals.  The library  includes:  item
60        routines,  which create and modify menu items; and menu routines, which
61        group items into menus, display menus on the screen, and handle  inter-
62        action with the user.
63
64        The <STRONG>menu</STRONG> library uses the <STRONG>curses</STRONG> libraries, and a curses initialization
65        routine such as <STRONG>initscr</STRONG> must be called before using any of these  func-
66        tions.  To use the <STRONG>menu</STRONG> library, link with the options <STRONG>-lmenu</STRONG> <STRONG>-lcurses</STRONG>.
67
68
69 </PRE><H3><a name="h3-Current-Default-Values-for-Item-Attributes">Current Default Values for Item Attributes</a></H3><PRE>
70        The  <STRONG>menu</STRONG>  library  maintains a default value for item attributes.  You
71        can get or set this default by calling the  appropriate  <STRONG>get_</STRONG>  or  <STRONG>set_</STRONG>
72        routine  with  a  <STRONG>NULL</STRONG> item pointer.  Changing this default with a <STRONG>set_</STRONG>
73        function affects future item creations, but does not change the render-
74        ing of items already created.
75
76
77 </PRE><H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
78        The  following table lists each <STRONG>menu</STRONG> routine and the name of the manual
79        page on which it is described.
80
81        <STRONG>curses</STRONG> Routine Name    Manual Page Name
82        --------------------------------------------
83        current_item           <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
84        free_item              <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
85        free_menu              <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
86        item_count             <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
87        item_description       <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
88        item_index             <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
89        item_init              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
90        item_name              <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
91        item_opts              <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
92        item_opts_off          <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
93        item_opts_on           <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
94        item_term              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
95        item_userptr           <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
96        item_value             <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
97        item_visible           <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
98        menu_back              <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
99        menu_driver            <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
100        menu_fore              <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
101        menu_format            <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
102        menu_grey              <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
103        menu_init              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
104        menu_items             <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
105        menu_mark              <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
106        menu_opts              <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
107        menu_opts_off          <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
108        menu_opts_on           <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
109        menu_pad               <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
110        menu_pattern           <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
111        menu_request_by_name   <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
112        menu_request_name      <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
113        menu_spacing           <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
114
115        menu_sub               <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
116        menu_term              <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
117        menu_userptr           <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
118        menu_win               <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
119        new_item               <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
120        new_menu               <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
121        pos_menu_cursor        <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
122        post_menu              <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
123        scale_menu             <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
124        set_current_item       <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
125        set_item_init          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
126        set_item_opts          <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
127        set_item_term          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
128        set_item_userptr       <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
129        set_item_value         <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
130        set_menu_back          <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
131        set_menu_fore          <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
132        set_menu_format        <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
133        set_menu_grey          <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
134        set_menu_init          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
135        set_menu_items         <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
136        set_menu_mark          <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
137        set_menu_opts          <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
138        set_menu_pad           <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
139        set_menu_pattern       <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
140        set_menu_spacing       <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
141        set_menu_sub           <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
142        set_menu_term          <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
143        set_menu_userptr       <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
144        set_menu_win           <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
145        set_top_row            <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
146        top_row                <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
147        unpost_menu            <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
148
149
150 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
151        Routines that return pointers return  <STRONG>NULL</STRONG>  on  error.   Routines  that
152        return an integer return one of the following error codes:
153
154        <STRONG>E_OK</STRONG> The routine succeeded.
155
156        <STRONG>E_BAD_ARGUMENT</STRONG>
157             Routine detected an incorrect or out-of-range argument.
158
159        <STRONG>E_BAD_STATE</STRONG>
160             Routine was called from an initialization or termination function.
161
162        <STRONG>E_NO_MATCH</STRONG>
163             Character failed to match.
164
165        <STRONG>E_NO_ROOM</STRONG>
166             Menu is too large for its window.
167
168        <STRONG>E_NOT_CONNECTED</STRONG>
169             No items are connected to the menu.
170
171        <STRONG>E_NOT_POSTED</STRONG>
172             The menu has not been posted.
173
174        <STRONG>E_NOT_SELECTABLE</STRONG>
175             The designated item cannot be selected.
176
177        <STRONG>E_POSTED</STRONG>
178             The menu is already posted.
179
180        <STRONG>E_REQUEST_DENIED</STRONG>
181             The menu driver could not process the request.
182
183        <STRONG>E_SYSTEM_ERROR</STRONG>
184             System error occurred (see <STRONG>errno</STRONG>).
185
186        <STRONG>E_UNKNOWN_COMMAND</STRONG>
187             The menu driver code saw an unknown request code.
188
189
190 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
191        The  header  file  <STRONG>&lt;menu.h&gt;</STRONG>  automatically  includes  the  header files
192        <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
193
194        In your library list, libmenu.a should be before libncurses.a; that is,
195        you  should  say  "-lmenu  -lncurses",  not the other way around (which
196        would give a link-error when using static libraries).
197
198
199 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
200        These routines emulate the System V menu library.  They were  not  sup-
201        ported on Version 7 or BSD versions.
202
203
204 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
205        Juergen  Pfeifer.   Manual  pages and adaptation for ncurses by Eric S.
206        Raymond.
207
208
209 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
210        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names  begin  "menu_"  for  detailed
211        descriptions of the entry points.
212
213        This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
214
215
216
217                                                                       <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
218 </PRE>
219 <div class="nav">
220 <ul>
221 <li><a href="#h2-NAME">NAME</a></li>
222 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
223 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
224 <ul>
225 <li><a href="#h3-Current-Default-Values-for-Item-Attributes">Current Default Values for Item Attributes</a></li>
226 <li><a href="#h3-Routine-Name-Index">Routine Name Index</a></li>
227 </ul>
228 </li>
229 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
230 <li><a href="#h2-NOTES">NOTES</a></li>
231 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
232 <li><a href="#h2-AUTHORS">AUTHORS</a></li>
233 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
234 </ul>
235 </div>
236 </BODY>
237 </HTML>