1 \section{\class{wxMenu
}}\label{wxmenu
}
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.
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.
10 \wxheading{Derived from
}
12 \helpref{wxEvtHandler
}{wxevthandler
}\\
13 \helpref{wxObject
}{wxobject
}
15 \wxheading{Event handling
}
17 If the menu is part of a menubar, then
\helpref{wxMenuBar
}{wxmenubar
} event processing is used.
19 With a popup menu, there is a variety of ways to handle a menu selection event
20 (wxEVT
\_COMMAND\_MENU\_SELECTED).
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
33 \helpref{wxMenuBar
}{wxmenubar
},
\helpref{wxWindow::PopupMenu
}{wxwindowpopupmenu
},
\rtfsp
34 \helpref{Event handling overview
}{eventhandlingoverview
}
36 \latexignore{\rtfignore{\wxheading{Members
}}}
38 \membersection{wxMenu::wxMenu
}\label{wxmenuconstr
}
40 \func{}{wxMenu
}{\param{const wxString\&
}{title = ""
},
\param{const wxFunction
}{ func = NULL
}}
42 Constructs a wxMenu object.
44 \wxheading{Parameters
}
46 \docparam{title
}{A title for the popup menu: the empty string denotes no title.
}
48 \docparam{func
}{A callback function if the menu is used as a popup using
\helpref{wxWindow::PopupMenu
}{wxwindowpopupmenu
}.
}
50 \membersection{wxMenu::
\destruct{wxMenu
}}
52 \func{}{\destruct{wxMenu
}}{\void}
54 Destructor, destroying the menu.
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.
63 \membersection{wxMenu::Append
}\label{wxmenuappend
}
65 \func{void
}{Append
}{\param{int
}{ id
},
\param{const wxString\&
}{ item
},
\param{const wxString\&
}{helpString = ""
},
\rtfsp
66 \param{const bool
}{ checkable = FALSE
}}
68 Adds a string item to the end of the menu.
70 \func{void
}{Append
}{\param{int
}{ id
},
\param{const wxString\&
}{ item
},
\param{wxMenu *
}{subMenu
},
\rtfsp
71 \param{const wxString\&
}{helpString = ""
}}
73 Adds a pull-right submenu to the end of the menu.
75 \func{void
}{Append
}{\param{wxMenuItem*
}{ menuItem
}}
77 Adds a menu item object. You can specify various extra properties of a menu item this way,
78 such as bitmaps and fonts.
80 \wxheading{Parameters
}
82 \docparam{id
}{The menu command identifier.
}
84 \docparam{item
}{The string to appear on the menu item.
}
86 \docparam{menu
}{Pull-right submenu.
}
88 \docparam{checkable
}{If TRUE, this item is checkable.
}
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.
}
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.
}
99 This command can be used after the menu has been shown, as well as on initial
100 creation of a menu or menubar.
104 \helpref{wxMenu::AppendSeparator
}{wxmenuappendseparator
},
\helpref{wxMenu::SetLabel
}{wxmenusetlabel
},
\helpref{wxMenu::GetHelpString
}{wxmenugethelpstring
},
\rtfsp
105 \helpref{wxMenu::SetHelpString
}{wxmenusethelpstring
},
\helpref{wxMenuItem
}{wxmenuitem
}
107 \membersection{wxMenu::AppendSeparator
}\label{wxmenuappendseparator
}
109 \func{void
}{AppendSeparator
}{\void}
111 Adds a separator to the end of the menu.
115 \helpref{wxMenu::Append
}{wxmenuappend
}
117 \membersection{wxMenu::Break
}\label{wxmenubreak
}
119 \func{void
}{Break
}{\void}
121 Inserts a break in a menu, causing the next appended item to appear in a new column.
123 \membersection{wxMenu::Check
}\label{wxmenucheck
}
125 \func{void
}{Check
}{\param{int
}{ id
},
\param{const bool
}{ check
}}
127 Checks or unchecks the menu item.
129 \wxheading{Parameters
}
131 \docparam{id
}{The menu item identifier.
}
133 \docparam{check
}{If TRUE, the item will be checked, otherwise it will be unchecked.
}
137 \helpref{wxMenu::IsChecked
}{wxmenuischecked
}
139 \membersection{wxMenu::Enable
}\label{wxmenuenable
}
141 \func{void
}{Enable
}{\param{int
}{ id
},
\param{const bool
}{ enable
}}
143 Enables or disables (greys out) a menu item.
145 \wxheading{Parameters
}
147 \docparam{id
}{The menu item identifier.
}
149 \docparam{enable
}{TRUE to enable the menu item, FALSE to disable it.
}
153 \helpref{wxMenu::IsEnabled
}{wxmenuisenabled
}
155 \membersection{wxMenu::FindItem
}\label{wxmenufinditem
}
157 \constfunc{int
}{FindItem
}{\param{const wxString\&
}{itemString
}}
159 Finds the menu item id for a menu item string.
161 \wxheading{Parameters
}
163 \docparam{itemString
}{Menu item string to find.
}
165 \wxheading{Return value
}
167 Menu item identifier, or -
1 if none is found.
171 Any special menu codes are stripped out of source and target strings
176 \helpref{wxMenu::FindItemForId
}{wxmenufinditemforid
}
178 \membersection{wxMenu::FindItemForId
}\label{wxmenufinditemforid
}
180 \constfunc{wxMenuItem*
}{FindItemForId
}{\param{int
}{ id
}}
182 Finds the menu item object associated with the given menu item identifier.
184 \wxheading{Parameters
}
186 \docparam{id
}{Menu item identifier.
}
188 \wxheading{Return value
}
190 Returns the menu item object, or NULL if it is not found.
194 \helpref{wxMenu::FindItem
}{wxmenufinditem
}
196 \membersection{wxMenu::GetHelpString
}\label{wxmenugethelpstring
}
198 \constfunc{wxString
}{GetHelpString
}{\param{int
}{ id
}}
200 Returns the help string associated with a menu item.
202 \wxheading{Parameters
}
204 \docparam{id
}{The menu item identifier.
}
206 \wxheading{Return value
}
208 The help string, or the empty string if there is no help string or the
213 \helpref{wxMenu::SetHelpString
}{wxmenusethelpstring
},
\helpref{wxMenu::Append
}{wxmenuappend
}
215 \membersection{wxMenu::GetLabel
}\label{wxmenugetlabel
}
217 \constfunc{wxString
}{GetLabel
}{\param{int
}{ id
}}
219 Returns a menu item label.
221 \wxheading{Parameters
}
223 \docparam{id
}{The menu item identifier.
}
225 \wxheading{Return value
}
227 The item label, or the empty string if the item was not found.
231 \helpref{wxMenu::SetLabel
}{wxmenusetlabel
}
233 \membersection{wxMenu::GetTitle
}\label{wxmenugettitle
}
235 \constfunc{wxString
}{GetTitle
}{\void}
237 Returns the title of the menu.
241 This is relevant only to popup menus.
245 \helpref{wxMenu::SetTitle
}{wxmenusettitle
}
247 \membersection{wxMenu::IsChecked
}\label{wxmenuischecked
}
249 \constfunc{bool
}{IsChecked
}{\param{int
}{ id
}}
251 Determines whether a menu item is checked.
253 \wxheading{Parameters
}
255 \docparam{id
}{The menu item identifier.
}
257 \wxheading{Return value
}
259 TRUE if the menu item is checked, FALSE otherwise.
263 \helpref{wxMenu::Check
}{wxmenucheck
}
265 \membersection{wxMenu::IsEnabled
}\label{wxmenuisenabled
}
267 \constfunc{bool
}{IsEnabled
}{\param{int
}{ id
}}
269 Determines whether a menu item is enabled.
271 \wxheading{Parameters
}
273 \docparam{id
}{The menu item identifier.
}
275 \wxheading{Return value
}
277 TRUE if the menu item is enabled, FALSE otherwise.
281 \helpref{wxMenu::Enable
}{wxmenuenable
}
283 \membersection{wxMenu::SetHelpString
}\label{wxmenusethelpstring
}
285 \func{void
}{SetHelpString
}{\param{int
}{ id
},
\param{const wxString\&
}{helpString
}}
287 Sets an item's help string.
289 \wxheading{Parameters
}
291 \docparam{id
}{The menu item identifier.
}
293 \docparam{helpString
}{The help string to set.
}
297 \helpref{wxMenu::GetHelpString
}{wxmenugethelpstring
}
299 \membersection{wxMenu::SetLabel
}\label{wxmenusetlabel
}
301 \func{void
}{SetLabel
}{\param{int
}{ id
},
\param{const wxString\&
}{label
}}
303 Sets the label of a menu item.
305 \wxheading{Parameters
}
307 \docparam{id
}{The menu item identifier.
}
309 \docparam{label
}{The menu item label to set.
}
313 \helpref{wxMenu::Append
}{wxmenuappend
},
\helpref{wxMenu::GetLabel
}{wxmenugetlabel
}
315 \membersection{wxMenu::SetTitle
}\label{wxmenusettitle
}
317 \func{void
}{SetTitle
}{\param{const wxString\&
}{title
}}
319 Sets the title of the menu.
321 \wxheading{Parameters
}
323 \docparam{title
}{The title to set.
}
327 This is relevant only to popup menus.
331 \helpref{wxMenu::SetTitle
}{wxmenusettitle
}
333 \section{\class{wxMenuBar
}}\label{wxmenubar
}
335 A menu bar is a series of menus accessible from the top of a frame.
337 \wxheading{Derived from
}
339 \helpref{wxEvtHandler
}{wxevthandler
}\\
340 \helpref{wxObject
}{wxobject
}
342 \wxheading{Event handling
}
344 To respond to a menu selection, provide a handler for EVT
\_MENU, in the frame
345 that contains the menu bar.
349 \helpref{wxMenu
}{wxmenu
},
\helpref{Event handling overview
}{eventhandlingoverview
}
351 \latexignore{\rtfignore{\wxheading{Members
}}}
353 \membersection{wxMenuBar::wxMenuBar
}\label{wxmenubarconstr
}
355 \func{void
}{wxMenuBar
}{\void}
359 \func{void
}{wxMenuBar
}{\param{int
}{ n
},
\param{wxMenu*
}{ menus
[]},
\param{const wxString
}{titles
[]}}
361 Construct a menu bar from arrays of menus and titles.
363 \wxheading{Parameters
}
365 \docparam{n
}{The number of menus.
}
367 \docparam{menus
}{An array of menus. Do not use this array again - it now belongs to the
370 \docparam{titles
}{An array of title strings. Deallocate this array after creating the menu bar.
}
372 \membersection{wxMenuBar::
\destruct{wxMenuBar
}}
374 \func{void
}{\destruct{wxMenuBar
}}{\void}
376 Destructor, destroying the menu bar and removing it from the parent frame (if any).
378 \membersection{wxMenuBar::Append
}\label{wxmenubarappend
}
380 \func{void
}{Append
}{\param{wxMenu *
}{menu
},
\param{const wxString\&
}{title
}}
382 Adds the item to the end of the menu bar.
384 \wxheading{Parameters
}
386 \docparam{menu
}{The menu to add. Do not deallocate this menu after calling
{\bf Append
}.
}
388 \docparam{title
}{The title of the menu.
}
390 \membersection{wxMenuBar::Check
}\label{wxmenubarcheck
}
392 \func{void
}{Check
}{\param{int
}{ id
},
\param{const bool
}{ check
}}
394 Checks or unchecks a menu item.
396 \wxheading{Parameters
}
398 \docparam{id
}{The menu item identifier.
}
400 \docparam{check
}{If TRUE, checks the menu item, otherwise the item is unchecked.
}
404 Only use this when the menu bar has been associated
405 with a frame; otherwise, use the wxMenu equivalent call.
407 \membersection{wxMenuBar::Enable
}\label{wxmenubarenable
}
409 \func{void
}{Enable
}{\param{int
}{ id
},
\param{const bool
}{ enable
}}
411 Enables or disables (greys out) a menu item.
413 \wxheading{Parameters
}
415 \docparam{id
}{The menu item identifier.
}
417 \docparam{enable
}{TRUE to enable the item, FALSE to disable it.
}
421 Only use this when the menu bar has been
422 associated with a frame; otherwise, use the wxMenu equivalent call.
424 \membersection{wxMenuBar::EnableTop
}\label{wxmenubarenabletop
}
426 \func{void
}{EnableTop
}{\param{int
}{ pos
},
\param{const bool
}{ enable
}}
428 Enables or disables a whole menu.
430 \wxheading{Parameters
}
432 \docparam{pos
}{The position of the menu, starting from zero.
}
434 \docparam{enable
}{TRUE to enable the menu, FALSE to disable it.
}
438 Only use this when the menu bar has been
439 associated with a frame.
441 \membersection{wxMenuBar::FindMenuItem
}\label{wxmenubarfindmenuitem
}
443 \constfunc{int
}{FindMenuItem
}{\param{const wxString\&
}{menuString
},
\param{const wxString\&
}{itemString
}}
445 Finds the menu item id for a menu name/menu item string pair.
447 \wxheading{Parameters
}
449 \docparam{menuString
}{Menu title to find.
}
451 \docparam{itemString
}{Item to find.
}
453 \wxheading{Return value
}
455 The menu item identifier, or -
1 if none was found.
459 Any special menu codes are stripped out of source and target strings
462 \membersection{wxMenuBar::FindItemById
}\label{wxmenubarfinditembyid
}
464 \constfunc{wxMenuItem *
}{FindItemById
}{\param{int
}{ id
}}
466 Finds the menu item object associated with the given menu item identifier,
468 \wxheading{Parameters
}
470 \docparam{id
}{Menu item identifier.
}
472 \wxheading{Return value
}
474 The found menu item object, or NULL if one was not found.
476 \membersection{wxMenuBar::GetHelpString
}\label{wxmenubargethelpstring
}
478 \constfunc{wxString
}{GetHelpString
}{\param{int
}{ id
}}
480 Gets the help string associated with the menu item identifer.
482 \wxheading{Parameters
}
484 \docparam{id
}{The menu item identifier.
}
486 \wxheading{Return value
}
488 The help string, or the empty string if there was no help string or the menu item
493 \helpref{wxMenuBar::SetHelpString
}{wxmenubarsethelpstring
}
495 \membersection{wxMenuBar::GetLabel
}\label{wxmenubargetlabel
}
497 \constfunc{wxString
}{GetLabel
}{\param{int
}{ id
}}
499 Gets the label associated with a menu item.
501 \wxheading{Parameters
}
503 \docparam{id
}{The menu item identifier.
}
505 \wxheading{Return value
}
507 The menu item label, or the empty string if the item was not found.
511 Use only after the menubar has been associated with a frame.
513 \membersection{wxMenuBar::GetLabelTop
}\label{wxmenubargetlabeltop
}
515 \constfunc{wxString
}{GetLabelTop
}{\param{int
}{ pos
}}
517 Returns the label of a top-level menu.
519 \wxheading{Parameters
}
521 \docparam{pos
}{Position of the menu on the menu bar, starting from zero.
}
523 \wxheading{Return value
}
525 The menu label, or the empty string if the menu was not found.
529 Use only after the menubar has been associated with a frame.
533 \helpref{wxMenuBar::SetLabelTop
}{wxmenubarsetlabeltop
}
535 \membersection{wxMenuBar::GetMenu
}\label{wxmenubargetmenu
}
537 \constfunc{wxMenu*
}{GetMenu
}{\param{int
}{ menuIndex
}}
539 Returns the menu at
{\it menuIndex
} (zero-based).
541 \membersection{wxMenuBar::GetMenuCount
}\label{wxmenubargetmenucount
}
543 \constfunc{int
}{GetMenuCount
}{\void}
545 Returns the number of menus in this menubar.
547 \membersection{wxMenuBar::IsChecked
}\label{wxmenubarischecked
}
549 \constfunc{bool
}{IsChecked
}{\param{int
}{ id
}}
551 Determines whether an item is checked.
553 \wxheading{Parameters
}
555 \docparam{id
}{The menu item identifier.
}
557 \wxheading{Return value
}
559 TRUE if the item was found and is checked, FALSE otherwise.
561 \membersection{wxMenuBar::IsEnabled
}\label{wxmenubarisenabled
}
563 \constfunc{bool
}{IsEnabled
}{\param{int
}{ id
}}
565 Determines whether an item is enabled.
567 \wxheading{Parameters
}
569 \docparam{id
}{The menu item identifier.
}
571 \wxheading{Return value
}
573 TRUE if the item was found and is enabled, FALSE otherwise.
575 \membersection{wxMenuBar::SetHelpString
}\label{wxmenubarsethelpstring
}
577 \func{void
}{SetHelpString
}{\param{int
}{ id
},
\param{const wxString\&
}{helpString
}}
579 Sets the help string associated with a menu item.
581 \wxheading{Parameters
}
583 \docparam{id
}{Menu item identifier.
}
585 \docparam{helpString
}{Help string to associate with the menu item.
}
589 \helpref{wxMenuBar::GetHelpString
}{wxmenubargethelpstring
}
591 \membersection{wxMenuBar::SetLabel
}\label{wxmenubarsetlabel
}
593 \func{void
}{SetLabel
}{\param{int
}{ id
},
\param{const wxString\&
}{label
}}
595 Sets the label of a menu item.
597 \wxheading{Parameters
}
599 \docparam{id
}{Menu item identifier.
}
601 \docparam{label
}{Menu item label.
}
605 Use only after the menubar has been associated with a frame.
609 \helpref{wxMenuBar::GetLabel
}{wxmenubargetlabel
}
611 \membersection{wxMenuBar::SetLabelTop
}\label{wxmenubarsetlabeltop
}
613 \func{void
}{SetLabelTop
}{\param{int
}{ pos
},
\param{const wxString\&
}{label
}}
615 Sets the label of a top-level menu.
617 \wxheading{Parameters
}
619 \docparam{pos
}{The position of a menu on the menu bar, starting from zero.
}
621 \docparam{label
}{The menu label.
}
625 Use only after the menubar has been associated with a frame.
629 \helpref{wxMenuBar::GetLabelTop
}{wxmenubargetlabeltop
}