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