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{Include files
}
19 \wxheading{Event handling
}
21 If the menu is part of a menubar, then
\helpref{wxMenuBar
}{wxmenubar
} event processing is used.
23 With a popup menu, there is a variety of ways to handle a menu selection event
24 (wxEVT
\_COMMAND\_MENU\_SELECTED).
26 \begin{enumerate
}\itemsep=
0pt
27 \item Define a callback of type wxFunction, which you pass to the wxMenu constructor.
28 The callback takes a reference to the menu, and a reference to a
\helpref{wxCommandEvent
}{wxcommandevent
}.
29 \item Derive a new class from wxMenu and define event table entries using the EVT
\_MENU macro.
30 \item Set a new event handler for wxMenu, using an object whose class has EVT
\_MENU entries.
31 \item Provide EVT
\_MENU handlers in the window which pops up the menu, or in an ancestor of
37 \helpref{wxMenuBar
}{wxmenubar
},
\helpref{wxWindow::PopupMenu
}{wxwindowpopupmenu
},
\rtfsp
38 \helpref{Event handling overview
}{eventhandlingoverview
}
40 \latexignore{\rtfignore{\wxheading{Members
}}}
42 \membersection{wxMenu::wxMenu
}\label{wxmenuconstr
}
44 \func{}{wxMenu
}{\param{const wxString\&
}{title = ""
},
\param{const wxFunction
}{ func = NULL
}}
46 Constructs a wxMenu object.
48 \wxheading{Parameters
}
50 \docparam{title
}{A title for the popup menu: the empty string denotes no title.
}
52 \docparam{func
}{A callback function if the menu is used as a popup using
\helpref{wxWindow::PopupMenu
}{wxwindowpopupmenu
}.
}
54 \pythonnote{The wxPython version of the
\tt{wxMenu
} constructor
55 doesn't accept the callback argument because of reference counting
56 issues. There is a specialized wxMenu constructor called
57 \tt{wxPyMenu
} which does and can be used for PopupMenus when callbacks
58 are needed. You must retain a reference to the menu while useing it
59 otherwise your callback function will get dereferenced when the menu
63 \membersection{wxMenu::
\destruct{wxMenu
}}
65 \func{}{\destruct{wxMenu
}}{\void}
67 Destructor, destroying the menu.
69 Note: under Motif, a popup menu must have a valid parent (the window
70 it was last popped up on) when being destroyed. Therefore, make sure
71 you delete or re-use the popup menu
{\it before
} destroying the
72 parent window. Re-use in this context means popping up the menu on
73 a different window from last time, which causes an implicit destruction
74 and recreation of internal data structures.
76 \membersection{wxMenu::Append
}\label{wxmenuappend
}
78 \func{void
}{Append
}{\param{int
}{ id
},
\param{const wxString\&
}{ item
},
\param{const wxString\&
}{helpString = ""
},
\rtfsp
79 \param{const bool
}{ checkable = FALSE
}}
81 Adds a string item to the end of the menu.
83 \func{void
}{Append
}{\param{int
}{ id
},
\param{const wxString\&
}{ item
},
\param{wxMenu *
}{subMenu
},
\rtfsp
84 \param{const wxString\&
}{helpString = ""
}}
86 Adds a pull-right submenu to the end of the menu.
88 \func{void
}{Append
}{\param{wxMenuItem*
}{ menuItem
}}
90 Adds a menu item object. You can specify various extra properties of a menu item this way,
91 such as bitmaps and fonts.
93 \wxheading{Parameters
}
95 \docparam{id
}{The menu command identifier.
}
97 \docparam{item
}{The string to appear on the menu item.
}
99 \docparam{menu
}{Pull-right submenu.
}
101 \docparam{checkable
}{If TRUE, this item is checkable.
}
103 \docparam{helpString
}{An optional help string associated with the item.
104 By default,
\helpref{wxFrame::OnMenuHighlight
}{wxframeonmenuhighlight
} displays
105 this string in the status line.
}
107 \docparam{menuItem
}{A menuitem object. It will be owned by the wxMenu object after this function
108 is called, so do not delete it yourself.
}
112 This command can be used after the menu has been shown, as well as on initial
113 creation of a menu or menubar.
117 \helpref{wxMenu::AppendSeparator
}{wxmenuappendseparator
},
\helpref{wxMenu::SetLabel
}{wxmenusetlabel
},
\helpref{wxMenu::GetHelpString
}{wxmenugethelpstring
},
\rtfsp
118 \helpref{wxMenu::SetHelpString
}{wxmenusethelpstring
},
\helpref{wxMenuItem
}{wxmenuitem
}
121 \pythonnote{In place of a single overloaded method name, wxPython
122 implements the following methods:
\par
123 \indented{2cm
}{\begin{twocollist
}
124 \twocolitem{\bf{Append(id, string, helpStr="", checkable=FALSE)
}}{}
125 \twocolitem{\bf{AppendMenu(id, string, aMenu, helpStr="")
}}{}
126 \twocolitem{\bf{AppendItem(aMenuItem)
}}{}
131 \membersection{wxMenu::AppendSeparator
}\label{wxmenuappendseparator
}
133 \func{void
}{AppendSeparator
}{\void}
135 Adds a separator to the end of the menu.
139 \helpref{wxMenu::Append
}{wxmenuappend
}
141 \membersection{wxMenu::Break
}\label{wxmenubreak
}
143 \func{void
}{Break
}{\void}
145 Inserts a break in a menu, causing the next appended item to appear in a new column.
147 \membersection{wxMenu::Check
}\label{wxmenucheck
}
149 \func{void
}{Check
}{\param{int
}{ id
},
\param{const bool
}{ check
}}
151 Checks or unchecks the menu item.
153 \wxheading{Parameters
}
155 \docparam{id
}{The menu item identifier.
}
157 \docparam{check
}{If TRUE, the item will be checked, otherwise it will be unchecked.
}
161 \helpref{wxMenu::IsChecked
}{wxmenuischecked
}
163 \membersection{wxMenu::Enable
}\label{wxmenuenable
}
165 \func{void
}{Enable
}{\param{int
}{ id
},
\param{const bool
}{ enable
}}
167 Enables or disables (greys out) a menu item.
169 \wxheading{Parameters
}
171 \docparam{id
}{The menu item identifier.
}
173 \docparam{enable
}{TRUE to enable the menu item, FALSE to disable it.
}
177 \helpref{wxMenu::IsEnabled
}{wxmenuisenabled
}
179 \membersection{wxMenu::FindItem
}\label{wxmenufinditem
}
181 \constfunc{int
}{FindItem
}{\param{const wxString\&
}{itemString
}}
183 Finds the menu item id for a menu item string.
185 \wxheading{Parameters
}
187 \docparam{itemString
}{Menu item string to find.
}
189 \wxheading{Return value
}
191 Menu item identifier, or -
1 if none is found.
195 Any special menu codes are stripped out of source and target strings
200 \helpref{wxMenu::FindItemForId
}{wxmenufinditemforid
}
202 \membersection{wxMenu::FindItemForId
}\label{wxmenufinditemforid
}
204 \constfunc{wxMenuItem*
}{FindItemForId
}{\param{int
}{ id
},
\param{wxMenu **
}{ menuForItem = NULL
}}
206 Finds the menu item object associated with the given menu item identifier.
208 \wxheading{Parameters
}
210 \docparam{id
}{Menu item identifier.
}
211 \docparam{menuForItem
}{will be filled with the menu for this item if not NULL.
}
213 \wxheading{Return value
}
215 Returns the menu item object, or NULL if it is not found.
219 \helpref{wxMenu::FindItem
}{wxmenufinditem
}
221 \membersection{wxMenu::GetHelpString
}\label{wxmenugethelpstring
}
223 \constfunc{wxString
}{GetHelpString
}{\param{int
}{ id
}}
225 Returns the help string associated with a menu item.
227 \wxheading{Parameters
}
229 \docparam{id
}{The menu item identifier.
}
231 \wxheading{Return value
}
233 The help string, or the empty string if there is no help string or the
238 \helpref{wxMenu::SetHelpString
}{wxmenusethelpstring
},
\helpref{wxMenu::Append
}{wxmenuappend
}
240 \membersection{wxMenu::GetLabel
}\label{wxmenugetlabel
}
242 \constfunc{wxString
}{GetLabel
}{\param{int
}{ id
}}
244 Returns a menu item label.
246 \wxheading{Parameters
}
248 \docparam{id
}{The menu item identifier.
}
250 \wxheading{Return value
}
252 The item label, or the empty string if the item was not found.
256 \helpref{wxMenu::SetLabel
}{wxmenusetlabel
}
258 \membersection{wxMenu::GetTitle
}\label{wxmenugettitle
}
260 \constfunc{wxString
}{GetTitle
}{\void}
262 Returns the title of the menu.
266 This is relevant only to popup menus.
270 \helpref{wxMenu::SetTitle
}{wxmenusettitle
}
272 \membersection{wxMenu::IsChecked
}\label{wxmenuischecked
}
274 \constfunc{bool
}{IsChecked
}{\param{int
}{ id
}}
276 Determines whether a menu item is checked.
278 \wxheading{Parameters
}
280 \docparam{id
}{The menu item identifier.
}
282 \wxheading{Return value
}
284 TRUE if the menu item is checked, FALSE otherwise.
288 \helpref{wxMenu::Check
}{wxmenucheck
}
290 \membersection{wxMenu::IsEnabled
}\label{wxmenuisenabled
}
292 \constfunc{bool
}{IsEnabled
}{\param{int
}{ id
}}
294 Determines whether a menu item is enabled.
296 \wxheading{Parameters
}
298 \docparam{id
}{The menu item identifier.
}
300 \wxheading{Return value
}
302 TRUE if the menu item is enabled, FALSE otherwise.
306 \helpref{wxMenu::Enable
}{wxmenuenable
}
308 \membersection{wxMenu::SetHelpString
}\label{wxmenusethelpstring
}
310 \func{void
}{SetHelpString
}{\param{int
}{ id
},
\param{const wxString\&
}{helpString
}}
312 Sets an item's help string.
314 \wxheading{Parameters
}
316 \docparam{id
}{The menu item identifier.
}
318 \docparam{helpString
}{The help string to set.
}
322 \helpref{wxMenu::GetHelpString
}{wxmenugethelpstring
}
324 \membersection{wxMenu::SetLabel
}\label{wxmenusetlabel
}
326 \func{void
}{SetLabel
}{\param{int
}{ id
},
\param{const wxString\&
}{label
}}
328 Sets the label of a menu item.
330 \wxheading{Parameters
}
332 \docparam{id
}{The menu item identifier.
}
334 \docparam{label
}{The menu item label to set.
}
338 \helpref{wxMenu::Append
}{wxmenuappend
},
\helpref{wxMenu::GetLabel
}{wxmenugetlabel
}
340 \membersection{wxMenu::SetTitle
}\label{wxmenusettitle
}
342 \func{void
}{SetTitle
}{\param{const wxString\&
}{title
}}
344 Sets the title of the menu.
346 \wxheading{Parameters
}
348 \docparam{title
}{The title to set.
}
352 This is relevant only to popup menus.
356 \helpref{wxMenu::SetTitle
}{wxmenusettitle
}
358 \membersection{wxMenu::UpdateUI
}\label{wxmenuupdateui
}
360 \constfunc{void
}{UpdateUI
}{\param{wxEvtHandler*
}{ source = NULL
}}
362 Sends events to
{\it source
} (or owning window if NULL) to update the
363 menu UI. This is called just before the menu is popped up with
\helpref{wxWindow::PopupMenu
}{wxwindowpopupmenu
}, but
364 the application may call it at other times if required.
368 \helpref{wxUpdateUIEvent
}{wxupdateuievent
}
370 \section{\class{wxMenuBar
}}\label{wxmenubar
}
372 A menu bar is a series of menus accessible from the top of a frame.
374 \wxheading{Derived from
}
376 \helpref{wxEvtHandler
}{wxevthandler
}\\
377 \helpref{wxObject
}{wxobject
}
379 \wxheading{Include files
}
383 \wxheading{Event handling
}
385 To respond to a menu selection, provide a handler for EVT
\_MENU, in the frame
386 that contains the menu bar.
390 \helpref{wxMenu
}{wxmenu
},
\helpref{Event handling overview
}{eventhandlingoverview
}
392 \latexignore{\rtfignore{\wxheading{Members
}}}
394 \membersection{wxMenuBar::wxMenuBar
}\label{wxmenubarconstr
}
396 \func{void
}{wxMenuBar
}{\void}
400 \func{void
}{wxMenuBar
}{\param{int
}{ n
},
\param{wxMenu*
}{ menus
[]},
\param{const wxString
}{titles
[]}}
402 Construct a menu bar from arrays of menus and titles.
404 \wxheading{Parameters
}
406 \docparam{n
}{The number of menus.
}
408 \docparam{menus
}{An array of menus. Do not use this array again - it now belongs to the
411 \docparam{titles
}{An array of title strings. Deallocate this array after creating the menu bar.
}
413 \pythonnote{Only the default constructor is supported in wxPython.
414 Use wxMenuBar.Append instead.
}
417 \membersection{wxMenuBar::
\destruct{wxMenuBar
}}
419 \func{void
}{\destruct{wxMenuBar
}}{\void}
421 Destructor, destroying the menu bar and removing it from the parent frame (if any).
423 \membersection{wxMenuBar::Append
}\label{wxmenubarappend
}
425 \func{void
}{Append
}{\param{wxMenu *
}{menu
},
\param{const wxString\&
}{title
}}
427 Adds the item to the end of the menu bar.
429 \wxheading{Parameters
}
431 \docparam{menu
}{The menu to add. Do not deallocate this menu after calling
{\bf Append
}.
}
433 \docparam{title
}{The title of the menu.
}
435 \membersection{wxMenuBar::Check
}\label{wxmenubarcheck
}
437 \func{void
}{Check
}{\param{int
}{ id
},
\param{const bool
}{ check
}}
439 Checks or unchecks a menu item.
441 \wxheading{Parameters
}
443 \docparam{id
}{The menu item identifier.
}
445 \docparam{check
}{If TRUE, checks the menu item, otherwise the item is unchecked.
}
449 Only use this when the menu bar has been associated
450 with a frame; otherwise, use the wxMenu equivalent call.
452 \membersection{wxMenuBar::Enable
}\label{wxmenubarenable
}
454 \func{void
}{Enable
}{\param{int
}{ id
},
\param{const bool
}{ enable
}}
456 Enables or disables (greys out) a menu item.
458 \wxheading{Parameters
}
460 \docparam{id
}{The menu item identifier.
}
462 \docparam{enable
}{TRUE to enable the item, FALSE to disable it.
}
466 Only use this when the menu bar has been
467 associated with a frame; otherwise, use the wxMenu equivalent call.
469 \membersection{wxMenuBar::EnableTop
}\label{wxmenubarenabletop
}
471 \func{void
}{EnableTop
}{\param{int
}{ pos
},
\param{const bool
}{ enable
}}
473 Enables or disables a whole menu.
475 \wxheading{Parameters
}
477 \docparam{pos
}{The position of the menu, starting from zero.
}
479 \docparam{enable
}{TRUE to enable the menu, FALSE to disable it.
}
483 Only use this when the menu bar has been
484 associated with a frame.
486 \membersection{wxMenuBar::FindMenuItem
}\label{wxmenubarfindmenuitem
}
488 \constfunc{int
}{FindMenuItem
}{\param{const wxString\&
}{menuString
},
\param{const wxString\&
}{itemString
}}
490 Finds the menu item id for a menu name/menu item string pair.
492 \wxheading{Parameters
}
494 \docparam{menuString
}{Menu title to find.
}
496 \docparam{itemString
}{Item to find.
}
498 \wxheading{Return value
}
500 The menu item identifier, or -
1 if none was found.
504 Any special menu codes are stripped out of source and target strings
507 \membersection{wxMenuBar::FindItemById
}\label{wxmenubarfinditembyid
}
509 \constfunc{wxMenuItem *
}{FindItemById
}{\param{int
}{ id
}}
511 Finds the menu item object associated with the given menu item identifier,
513 \wxheading{Parameters
}
515 \docparam{id
}{Menu item identifier.
}
517 \wxheading{Return value
}
519 The found menu item object, or NULL if one was not found.
521 \membersection{wxMenuBar::GetHelpString
}\label{wxmenubargethelpstring
}
523 \constfunc{wxString
}{GetHelpString
}{\param{int
}{ id
}}
525 Gets the help string associated with the menu item identifer.
527 \wxheading{Parameters
}
529 \docparam{id
}{The menu item identifier.
}
531 \wxheading{Return value
}
533 The help string, or the empty string if there was no help string or the menu item
538 \helpref{wxMenuBar::SetHelpString
}{wxmenubarsethelpstring
}
540 \membersection{wxMenuBar::GetLabel
}\label{wxmenubargetlabel
}
542 \constfunc{wxString
}{GetLabel
}{\param{int
}{ id
}}
544 Gets the label associated with a menu item.
546 \wxheading{Parameters
}
548 \docparam{id
}{The menu item identifier.
}
550 \wxheading{Return value
}
552 The menu item label, or the empty string if the item was not found.
556 Use only after the menubar has been associated with a frame.
558 \membersection{wxMenuBar::GetLabelTop
}\label{wxmenubargetlabeltop
}
560 \constfunc{wxString
}{GetLabelTop
}{\param{int
}{ pos
}}
562 Returns the label of a top-level menu.
564 \wxheading{Parameters
}
566 \docparam{pos
}{Position of the menu on the menu bar, starting from zero.
}
568 \wxheading{Return value
}
570 The menu label, or the empty string if the menu was not found.
574 Use only after the menubar has been associated with a frame.
578 \helpref{wxMenuBar::SetLabelTop
}{wxmenubarsetlabeltop
}
580 \membersection{wxMenuBar::GetMenu
}\label{wxmenubargetmenu
}
582 \constfunc{wxMenu*
}{GetMenu
}{\param{int
}{ menuIndex
}}
584 Returns the menu at
{\it menuIndex
} (zero-based).
586 \membersection{wxMenuBar::GetMenuCount
}\label{wxmenubargetmenucount
}
588 \constfunc{int
}{GetMenuCount
}{\void}
590 Returns the number of menus in this menubar.
592 \membersection{wxMenuBar::IsChecked
}\label{wxmenubarischecked
}
594 \constfunc{bool
}{IsChecked
}{\param{int
}{ id
}}
596 Determines whether an item is checked.
598 \wxheading{Parameters
}
600 \docparam{id
}{The menu item identifier.
}
602 \wxheading{Return value
}
604 TRUE if the item was found and is checked, FALSE otherwise.
606 \membersection{wxMenuBar::IsEnabled
}\label{wxmenubarisenabled
}
608 \constfunc{bool
}{IsEnabled
}{\param{int
}{ id
}}
610 Determines whether an item is enabled.
612 \wxheading{Parameters
}
614 \docparam{id
}{The menu item identifier.
}
616 \wxheading{Return value
}
618 TRUE if the item was found and is enabled, FALSE otherwise.
620 \membersection{wxMenuBar::SetHelpString
}\label{wxmenubarsethelpstring
}
622 \func{void
}{SetHelpString
}{\param{int
}{ id
},
\param{const wxString\&
}{helpString
}}
624 Sets the help string associated with a menu item.
626 \wxheading{Parameters
}
628 \docparam{id
}{Menu item identifier.
}
630 \docparam{helpString
}{Help string to associate with the menu item.
}
634 \helpref{wxMenuBar::GetHelpString
}{wxmenubargethelpstring
}
636 \membersection{wxMenuBar::SetLabel
}\label{wxmenubarsetlabel
}
638 \func{void
}{SetLabel
}{\param{int
}{ id
},
\param{const wxString\&
}{label
}}
640 Sets the label of a menu item.
642 \wxheading{Parameters
}
644 \docparam{id
}{Menu item identifier.
}
646 \docparam{label
}{Menu item label.
}
650 Use only after the menubar has been associated with a frame.
654 \helpref{wxMenuBar::GetLabel
}{wxmenubargetlabel
}
656 \membersection{wxMenuBar::SetLabelTop
}\label{wxmenubarsetlabeltop
}
658 \func{void
}{SetLabelTop
}{\param{int
}{ pos
},
\param{const wxString\&
}{label
}}
660 Sets the label of a top-level menu.
662 \wxheading{Parameters
}
664 \docparam{pos
}{The position of a menu on the menu bar, starting from zero.
}
666 \docparam{label
}{The menu label.
}
670 Use only after the menubar has been associated with a frame.
674 \helpref{wxMenuBar::GetLabelTop
}{wxmenubargetlabeltop
}