]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/menu.tex
MIME classes with docs (not yet added to the makefiles)
[wxWidgets.git] / docs / latex / wx / menu.tex
1 \section{\class{wxMenu}}\label{wxmenu}
2
3 A menu is a popup (or pull down) list of items, one of which may be
4 selected before the menu goes away (clicking elsewhere dismisses the
5 menu). Menus may be used to construct either menu bars or popup menus.
6
7 A menu item has an integer ID associated with it which can be used to
8 identify the selection, or to change the menu item in some way.
9
10 \wxheading{Derived from}
11
12 \helpref{wxEvtHandler}{wxevthandler}\\
13 \helpref{wxObject}{wxobject}
14
15 \wxheading{Event handling}
16
17 If the menu is part of a menubar, then \helpref{wxMenuBar}{wxmenubar} event processing is used.
18
19 With a popup menu, there is a variety of ways to handle a menu selection event
20 (wxEVT\_COMMAND\_MENU\_SELECTED).
21
22 \begin{enumerate}\itemsep=0pt
23 \item Define a callback of type wxFunction, which you pass to the wxMenu constructor.
24 The callback takes a reference to the menu, and a reference to a \helpref{wxCommandEvent}{wxcommandevent}.
25 \item Derive a new class from wxMenu and define event table entries using the EVT\_MENU macro.
26 \item Set a new event handler for wxMenu, using an object whose class has EVT\_MENU entries.
27 \item Provide EVT\_MENU handlers in the window which pops up the menu, or in an ancestor of
28 this window.
29 \end{enumerate}
30
31 \wxheading{See also}
32
33 \helpref{wxMenuBar}{wxmenubar}, \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu},\rtfsp
34 \helpref{Event handling overview}{eventhandlingoverview}
35
36 \latexignore{\rtfignore{\wxheading{Members}}}
37
38 \membersection{wxMenu::wxMenu}\label{wxmenuconstr}
39
40 \func{}{wxMenu}{\param{const wxString\& }{title = ""}, \param{const wxFunction}{ func = NULL}}
41
42 Constructs a wxMenu object.
43
44 \wxheading{Parameters}
45
46 \docparam{title}{A title for the popup menu: the empty string denotes no title.}
47
48 \docparam{func}{A callback function if the menu is used as a popup using \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu}.}
49
50 \membersection{wxMenu::\destruct{wxMenu}}
51
52 \func{}{\destruct{wxMenu}}{\void}
53
54 Destructor, destroying the menu.
55
56 Note: under Motif, a popup menu must have a valid parent (the window
57 it was last popped up on) when being destroyed. Therefore, make sure
58 you delete or re-use the popup menu {\it before} destroying the
59 parent window. Re-use in this context means popping up the menu on
60 a different window from last time, which causes an implicit destruction
61 and recreation of internal data structures.
62
63 \membersection{wxMenu::Append}\label{wxmenuappend}
64
65 \func{void}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""},\rtfsp
66 \param{const bool}{ checkable = FALSE}}
67
68 Adds a string item to the end of the menu.
69
70 \func{void}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{wxMenu *}{subMenu},\rtfsp
71 \param{const wxString\& }{helpString = ""}}
72
73 Adds a pull-right submenu to the end of the menu.
74
75 \func{void}{Append}{\param{wxMenuItem*}{ menuItem}}
76
77 Adds a menu item object. You can specify various extra properties of a menu item this way,
78 such as bitmaps and fonts.
79
80 \wxheading{Parameters}
81
82 \docparam{id}{The menu command identifier.}
83
84 \docparam{item}{The string to appear on the menu item.}
85
86 \docparam{menu}{Pull-right submenu.}
87
88 \docparam{checkable}{If TRUE, this item is checkable.}
89
90 \docparam{helpString}{An optional help string associated with the item.
91 By default, \helpref{wxFrame::OnMenuHighlight}{wxframeonmenuhighlight} displays
92 this string in the status line.}
93
94 \docparam{menuItem}{A menuitem object. It will be owned by the wxMenu object after this function
95 is called, so do not delete it yourself.}
96
97 \wxheading{Remarks}
98
99 This command can be used after the menu has been shown, as well as on initial
100 creation of a menu or menubar.
101
102 \wxheading{See also}
103
104 \helpref{wxMenu::AppendSeparator}{wxmenuappendseparator}, \helpref{wxMenu::SetLabel}{wxmenusetlabel}, \helpref{wxMenu::GetHelpString}{wxmenugethelpstring},\rtfsp
105 \helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenuItem}{wxmenuitem}
106
107 \membersection{wxMenu::AppendSeparator}\label{wxmenuappendseparator}
108
109 \func{void}{AppendSeparator}{\void}
110
111 Adds a separator to the end of the menu.
112
113 \wxheading{See also}
114
115 \helpref{wxMenu::Append}{wxmenuappend}
116
117 \membersection{wxMenu::Break}\label{wxmenubreak}
118
119 \func{void}{Break}{\void}
120
121 Inserts a break in a menu, causing the next appended item to appear in a new column.
122
123 \membersection{wxMenu::Check}\label{wxmenucheck}
124
125 \func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}}
126
127 Checks or unchecks the menu item.
128
129 \wxheading{Parameters}
130
131 \docparam{id}{The menu item identifier.}
132
133 \docparam{check}{If TRUE, the item will be checked, otherwise it will be unchecked.}
134
135 \wxheading{See also}
136
137 \helpref{wxMenu::IsChecked}{wxmenuischecked}
138
139 \membersection{wxMenu::Enable}\label{wxmenuenable}
140
141 \func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}}
142
143 Enables or disables (greys out) a menu item.
144
145 \wxheading{Parameters}
146
147 \docparam{id}{The menu item identifier.}
148
149 \docparam{enable}{TRUE to enable the menu item, FALSE to disable it.}
150
151 \wxheading{See also}
152
153 \helpref{wxMenu::IsEnabled}{wxmenuisenabled}
154
155 \membersection{wxMenu::FindItem}\label{wxmenufinditem}
156
157 \constfunc{int}{FindItem}{\param{const wxString\& }{itemString}}
158
159 Finds the menu item id for a menu item string.
160
161 \wxheading{Parameters}
162
163 \docparam{itemString}{Menu item string to find.}
164
165 \wxheading{Return value}
166
167 Menu item identifier, or -1 if none is found.
168
169 \wxheading{Remarks}
170
171 Any special menu codes are stripped out of source and target strings
172 before matching.
173
174 \wxheading{See also}
175
176 \helpref{wxMenu::FindItemForId}{wxmenufinditemforid}
177
178 \membersection{wxMenu::FindItemForId}\label{wxmenufinditemforid}
179
180 \constfunc{wxMenuItem*}{FindItemForId}{\param{int}{ id}}
181
182 Finds the menu item object associated with the given menu item identifier.
183
184 \wxheading{Parameters}
185
186 \docparam{id}{Menu item identifier.}
187
188 \wxheading{Return value}
189
190 Returns the menu item object, or NULL if it is not found.
191
192 \wxheading{See also}
193
194 \helpref{wxMenu::FindItem}{wxmenufinditem}
195
196 \membersection{wxMenu::GetHelpString}\label{wxmenugethelpstring}
197
198 \constfunc{wxString}{GetHelpString}{\param{int}{ id}}
199
200 Returns the help string associated with a menu item.
201
202 \wxheading{Parameters}
203
204 \docparam{id}{The menu item identifier.}
205
206 \wxheading{Return value}
207
208 The help string, or the empty string if there is no help string or the
209 item was not found.
210
211 \wxheading{See also}
212
213 \helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenu::Append}{wxmenuappend}
214
215 \membersection{wxMenu::GetLabel}\label{wxmenugetlabel}
216
217 \constfunc{wxString}{GetLabel}{\param{int}{ id}}
218
219 Returns a menu item label.
220
221 \wxheading{Parameters}
222
223 \docparam{id}{The menu item identifier.}
224
225 \wxheading{Return value}
226
227 The item label, or the empty string if the item was not found.
228
229 \wxheading{See also}
230
231 \helpref{wxMenu::SetLabel}{wxmenusetlabel}
232
233 \membersection{wxMenu::GetTitle}\label{wxmenugettitle}
234
235 \constfunc{wxString}{GetTitle}{\void}
236
237 Returns the title of the menu.
238
239 \wxheading{Remarks}
240
241 This is relevant only to popup menus.
242
243 \wxheading{See also}
244
245 \helpref{wxMenu::SetTitle}{wxmenusettitle}
246
247 \membersection{wxMenu::IsChecked}\label{wxmenuischecked}
248
249 \constfunc{bool}{IsChecked}{\param{int}{ id}}
250
251 Determines whether a menu item is checked.
252
253 \wxheading{Parameters}
254
255 \docparam{id}{The menu item identifier.}
256
257 \wxheading{Return value}
258
259 TRUE if the menu item is checked, FALSE otherwise.
260
261 \wxheading{See also}
262
263 \helpref{wxMenu::Check}{wxmenucheck}
264
265 \membersection{wxMenu::IsEnabled}\label{wxmenuisenabled}
266
267 \constfunc{bool}{IsEnabled}{\param{int}{ id}}
268
269 Determines whether a menu item is enabled.
270
271 \wxheading{Parameters}
272
273 \docparam{id}{The menu item identifier.}
274
275 \wxheading{Return value}
276
277 TRUE if the menu item is enabled, FALSE otherwise.
278
279 \wxheading{See also}
280
281 \helpref{wxMenu::Enable}{wxmenuenable}
282
283 \membersection{wxMenu::SetHelpString}\label{wxmenusethelpstring}
284
285 \func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}}
286
287 Sets an item's help string.
288
289 \wxheading{Parameters}
290
291 \docparam{id}{The menu item identifier.}
292
293 \docparam{helpString}{The help string to set.}
294
295 \wxheading{See also}
296
297 \helpref{wxMenu::GetHelpString}{wxmenugethelpstring}
298
299 \membersection{wxMenu::SetLabel}\label{wxmenusetlabel}
300
301 \func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}}
302
303 Sets the label of a menu item.
304
305 \wxheading{Parameters}
306
307 \docparam{id}{The menu item identifier.}
308
309 \docparam{label}{The menu item label to set.}
310
311 \wxheading{See also}
312
313 \helpref{wxMenu::Append}{wxmenuappend}, \helpref{wxMenu::GetLabel}{wxmenugetlabel}
314
315 \membersection{wxMenu::SetTitle}\label{wxmenusettitle}
316
317 \func{void}{SetTitle}{\param{const wxString\& }{title}}
318
319 Sets the title of the menu.
320
321 \wxheading{Parameters}
322
323 \docparam{title}{The title to set.}
324
325 \wxheading{Remarks}
326
327 This is relevant only to popup menus.
328
329 \wxheading{See also}
330
331 \helpref{wxMenu::SetTitle}{wxmenusettitle}
332
333 \section{\class{wxMenuBar}}\label{wxmenubar}
334
335 A menu bar is a series of menus accessible from the top of a frame.
336
337 \wxheading{Derived from}
338
339 \helpref{wxEvtHandler}{wxevthandler}\\
340 \helpref{wxObject}{wxobject}
341
342 \wxheading{Event handling}
343
344 To respond to a menu selection, provide a handler for EVT\_MENU, in the frame
345 that contains the menu bar.
346
347 \wxheading{See also}
348
349 \helpref{wxMenu}{wxmenu}, \helpref{Event handling overview}{eventhandlingoverview}
350
351 \latexignore{\rtfignore{\wxheading{Members}}}
352
353 \membersection{wxMenuBar::wxMenuBar}\label{wxmenubarconstr}
354
355 \func{void}{wxMenuBar}{\void}
356
357 Default constructor.
358
359 \func{void}{wxMenuBar}{\param{int}{ n}, \param{wxMenu*}{ menus[]}, \param{const wxString }{titles[]}}
360
361 Construct a menu bar from arrays of menus and titles.
362
363 \wxheading{Parameters}
364
365 \docparam{n}{The number of menus.}
366
367 \docparam{menus}{An array of menus. Do not use this array again - it now belongs to the
368 menu bar.}
369
370 \docparam{titles}{An array of title strings. Deallocate this array after creating the menu bar.}
371
372 \membersection{wxMenuBar::\destruct{wxMenuBar}}
373
374 \func{void}{\destruct{wxMenuBar}}{\void}
375
376 Destructor, destroying the menu bar and removing it from the parent frame (if any).
377
378 \membersection{wxMenuBar::Append}\label{wxmenubarappend}
379
380 \func{void}{Append}{\param{wxMenu *}{menu}, \param{const wxString\& }{title}}
381
382 Adds the item to the end of the menu bar.
383
384 \wxheading{Parameters}
385
386 \docparam{menu}{The menu to add. Do not deallocate this menu after calling {\bf Append}.}
387
388 \docparam{title}{The title of the menu.}
389
390 \membersection{wxMenuBar::Check}\label{wxmenubarcheck}
391
392 \func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}}
393
394 Checks or unchecks a menu item.
395
396 \wxheading{Parameters}
397
398 \docparam{id}{The menu item identifier.}
399
400 \docparam{check}{If TRUE, checks the menu item, otherwise the item is unchecked.}
401
402 \wxheading{Remarks}
403
404 Only use this when the menu bar has been associated
405 with a frame; otherwise, use the wxMenu equivalent call.
406
407 \membersection{wxMenuBar::Enable}\label{wxmenubarenable}
408
409 \func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}}
410
411 Enables or disables (greys out) a menu item.
412
413 \wxheading{Parameters}
414
415 \docparam{id}{The menu item identifier.}
416
417 \docparam{enable}{TRUE to enable the item, FALSE to disable it.}
418
419 \wxheading{Remarks}
420
421 Only use this when the menu bar has been
422 associated with a frame; otherwise, use the wxMenu equivalent call.
423
424 \membersection{wxMenuBar::EnableTop}\label{wxmenubarenabletop}
425
426 \func{void}{EnableTop}{\param{int}{ pos}, \param{const bool}{ enable}}
427
428 Enables or disables a whole menu.
429
430 \wxheading{Parameters}
431
432 \docparam{pos}{The position of the menu, starting from zero.}
433
434 \docparam{enable}{TRUE to enable the menu, FALSE to disable it.}
435
436 \wxheading{Remarks}
437
438 Only use this when the menu bar has been
439 associated with a frame.
440
441 \membersection{wxMenuBar::FindMenuItem}\label{wxmenubarfindmenuitem}
442
443 \constfunc{int}{FindMenuItem}{\param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
444
445 Finds the menu item id for a menu name/menu item string pair.
446
447 \wxheading{Parameters}
448
449 \docparam{menuString}{Menu title to find.}
450
451 \docparam{itemString}{Item to find.}
452
453 \wxheading{Return value}
454
455 The menu item identifier, or -1 if none was found.
456
457 \wxheading{Remarks}
458
459 Any special menu codes are stripped out of source and target strings
460 before matching.
461
462 \membersection{wxMenuBar::FindItemById}\label{wxmenubarfinditembyid}
463
464 \constfunc{wxMenuItem *}{FindItemById}{\param{int}{ id}}
465
466 Finds the menu item object associated with the given menu item identifier,
467
468 \wxheading{Parameters}
469
470 \docparam{id}{Menu item identifier.}
471
472 \wxheading{Return value}
473
474 The found menu item object, or NULL if one was not found.
475
476 \membersection{wxMenuBar::GetHelpString}\label{wxmenubargethelpstring}
477
478 \constfunc{wxString}{GetHelpString}{\param{int}{ id}}
479
480 Gets the help string associated with the menu item identifer.
481
482 \wxheading{Parameters}
483
484 \docparam{id}{The menu item identifier.}
485
486 \wxheading{Return value}
487
488 The help string, or the empty string if there was no help string or the menu item
489 was not found.
490
491 \wxheading{See also}
492
493 \helpref{wxMenuBar::SetHelpString}{wxmenubarsethelpstring}
494
495 \membersection{wxMenuBar::GetLabel}\label{wxmenubargetlabel}
496
497 \constfunc{wxString}{GetLabel}{\param{int}{ id}}
498
499 Gets the label associated with a menu item.
500
501 \wxheading{Parameters}
502
503 \docparam{id}{The menu item identifier.}
504
505 \wxheading{Return value}
506
507 The menu item label, or the empty string if the item was not found.
508
509 \wxheading{Remarks}
510
511 Use only after the menubar has been associated with a frame.
512
513 \membersection{wxMenuBar::GetLabelTop}\label{wxmenubargetlabeltop}
514
515 \constfunc{wxString}{GetLabelTop}{\param{int}{ pos}}
516
517 Returns the label of a top-level menu.
518
519 \wxheading{Parameters}
520
521 \docparam{pos}{Position of the menu on the menu bar, starting from zero.}
522
523 \wxheading{Return value}
524
525 The menu label, or the empty string if the menu was not found.
526
527 \wxheading{Remarks}
528
529 Use only after the menubar has been associated with a frame.
530
531 \wxheading{See also}
532
533 \helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop}
534
535 \membersection{wxMenuBar::GetMenu}\label{wxmenubargetmenu}
536
537 \constfunc{wxMenu*}{GetMenu}{\param{int}{ menuIndex}}
538
539 Returns the menu at {\it menuIndex} (zero-based).
540
541 \membersection{wxMenuBar::GetMenuCount}\label{wxmenubargetmenucount}
542
543 \constfunc{int}{GetMenuCount}{\void}
544
545 Returns the number of menus in this menubar.
546
547 \membersection{wxMenuBar::IsChecked}\label{wxmenubarischecked}
548
549 \constfunc{bool}{IsChecked}{\param{int}{ id}}
550
551 Determines whether an item is checked.
552
553 \wxheading{Parameters}
554
555 \docparam{id}{The menu item identifier.}
556
557 \wxheading{Return value}
558
559 TRUE if the item was found and is checked, FALSE otherwise.
560
561 \membersection{wxMenuBar::IsEnabled}\label{wxmenubarisenabled}
562
563 \constfunc{bool}{IsEnabled}{\param{int}{ id}}
564
565 Determines whether an item is enabled.
566
567 \wxheading{Parameters}
568
569 \docparam{id}{The menu item identifier.}
570
571 \wxheading{Return value}
572
573 TRUE if the item was found and is enabled, FALSE otherwise.
574
575 \membersection{wxMenuBar::SetHelpString}\label{wxmenubarsethelpstring}
576
577 \func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}}
578
579 Sets the help string associated with a menu item.
580
581 \wxheading{Parameters}
582
583 \docparam{id}{Menu item identifier.}
584
585 \docparam{helpString}{Help string to associate with the menu item.}
586
587 \wxheading{See also}
588
589 \helpref{wxMenuBar::GetHelpString}{wxmenubargethelpstring}
590
591 \membersection{wxMenuBar::SetLabel}\label{wxmenubarsetlabel}
592
593 \func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}}
594
595 Sets the label of a menu item.
596
597 \wxheading{Parameters}
598
599 \docparam{id}{Menu item identifier.}
600
601 \docparam{label}{Menu item label.}
602
603 \wxheading{Remarks}
604
605 Use only after the menubar has been associated with a frame.
606
607 \wxheading{See also}
608
609 \helpref{wxMenuBar::GetLabel}{wxmenubargetlabel}
610
611 \membersection{wxMenuBar::SetLabelTop}\label{wxmenubarsetlabeltop}
612
613 \func{void}{SetLabelTop}{\param{int}{ pos}, \param{const wxString\& }{label}}
614
615 Sets the label of a top-level menu.
616
617 \wxheading{Parameters}
618
619 \docparam{pos}{The position of a menu on the menu bar, starting from zero.}
620
621 \docparam{label}{The menu label.}
622
623 \wxheading{Remarks}
624
625 Use only after the menubar has been associated with a frame.
626
627 \wxheading{See also}
628
629 \helpref{wxMenuBar::GetLabelTop}{wxmenubargetlabeltop}
630