]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/menu.tex
fixed status bar positioning to work both with and without sizers (patch 1199639...
[wxWidgets.git] / docs / latex / wx / menu.tex
index 91f540d1ea066646d413583b347d74172790dee5..72c93feb33edc483694148d1568a407389ac5b94 100644 (file)
@@ -1,11 +1,56 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name:        menu.tex
+%% Purpose:     wxMenu documentation
+%% Author:      wxWidgets Team
+%% Modified by:
+%% Created:     
+%% RCS-ID:      $Id$
+%% Copyright:   (c) wxWidgets Team
+%% License:     wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
 \section{\class{wxMenu}}\label{wxmenu}
 
 A menu is a popup (or pull down) list of items, one of which may be
 selected before the menu goes away (clicking elsewhere dismisses the
 \section{\class{wxMenu}}\label{wxmenu}
 
 A menu is a popup (or pull down) list of items, one of which may be
 selected before the menu goes away (clicking elsewhere dismisses the
-menu).  Menus may be used to construct either menu bars or popup menus.
+menu). Menus may be used to construct either menu bars or popup menus.
 
 A menu item has an integer ID associated with it which can be used to
 
 A menu item has an integer ID associated with it which can be used to
-identify the selection, or to change the menu item in some way.
+identify the selection, or to change the menu item in some way. A menu item
+with a special identifier $-1$ is a separator item and doesn't have an
+associated command but just makes a separator line appear in the menu.
+
+{\bf NB:} Please note that {\it wxID\_ABOUT} and {\it wxID\_EXIT} are
+predefined by wxWidgets and have a special meaning since entries
+using these IDs will be taken out of the normal menus under MacOS X
+and will be inserted into the system menu (following the appropriate
+MacOS X interface guideline). On PalmOS {\it wxID\_EXIT} is disabled according
+to Palm OS Companion guidelines.
+
+Menu items may be either normal items, check items or radio items. Normal items
+don't have any special properties while the check items have a boolean flag
+associated to them and they show a checkmark in the menu when the flag is set.
+wxWidgets automatically toggles the flag value when the item is clicked and its
+value may be retrieved using either \helpref{IsChecked}{wxmenuischecked} method
+of wxMenu or wxMenuBar itself or by using 
+\helpref{wxEvent::IsChecked}{wxcommandeventischecked} when you get the menu
+notification for the item in question.
+
+The radio items are similar to the check items except that all the other items
+in the same radio group are unchecked when a radio item is checked. The radio
+group is formed by a contiguous range of radio items, i.e. it starts at the
+first item of this kind and ends with the first item of a different kind (or
+the end of the menu). Notice that because the radio groups are defined in terms
+of the item positions inserting or removing the items in the menu containing
+the radio items risks to not work correctly. Finally note that radio items
+are not supported under Motif.
+
+\wxheading{Allocation strategy}
+
+All menus except the popup ones must be created on the heap. All menus
+attached to a menubar or to another menu will be deleted by their parent when
+it is deleted. As the frame menubar is deleted by the frame itself, it means
+that normally all menus used are deleted automatically.
 
 \wxheading{Derived from}
 
 
 \wxheading{Derived from}
 
@@ -41,7 +86,7 @@ not be used in the new code, it is provided for backwards compatibility only.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxMenu::wxMenu}\label{wxmenuconstr}
+\membersection{wxMenu::wxMenu}\label{wxmenuctor}
 
 \func{}{wxMenu}{\param{const wxString\& }{title = ""}, \param{long}{ style = 0}}
 
 
 \func{}{wxMenu}{\param{const wxString\& }{title = ""}, \param{long}{ style = 0}}
 
@@ -61,7 +106,7 @@ Constructs a wxMenu object.
 
 \docparam{style}{If set to {\tt wxMENU\_TEAROFF}, the menu will be detachable (wxGTK only).}
 
 
 \docparam{style}{If set to {\tt wxMENU\_TEAROFF}, the menu will be detachable (wxGTK only).}
 
-\membersection{wxMenu::\destruct{wxMenu}}
+\membersection{wxMenu::\destruct{wxMenu}}\label{wxmenudtor}
 
 \func{}{\destruct{wxMenu}}{\void}
 
 
 \func{}{\destruct{wxMenu}}{\void}
 
@@ -76,17 +121,19 @@ and recreation of internal data structures.
 
 \membersection{wxMenu::Append}\label{wxmenuappend}
 
 
 \membersection{wxMenu::Append}\label{wxmenuappend}
 
-\func{void}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""},\rtfsp
-\param{const bool}{ checkable = FALSE}}
+\func{wxMenuItem*}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""},\rtfsp
+\param{wxItemKind}{ kind = wxITEM\_NORMAL}}
 
 Adds a string item to the end of the menu.
 
 
 Adds a string item to the end of the menu.
 
-\func{void}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{wxMenu *}{subMenu},\rtfsp
+\func{wxMenuItem*}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{wxMenu *}{subMenu},\rtfsp
 \param{const wxString\& }{helpString = ""}}
 
 \param{const wxString\& }{helpString = ""}}
 
-Adds a pull-right submenu to the end of the menu.
+Adds a pull-right submenu to the end of the menu. Append the submenu to the parent
+menu {\it after} you have added your menu items, or accelerators may not be
+registered properly.
 
 
-\func{void}{Append}{\param{wxMenuItem*}{ menuItem}}
+\func{wxMenuItem*}{Append}{\param{wxMenuItem*}{ menuItem}}
 
 Adds a menu item object. This is the most generic variant of Append() method
 because it may be used for both items (including separators) and submenus and
 
 Adds a menu item object. This is the most generic variant of Append() method
 because it may be used for both items (including separators) and submenus and
@@ -101,10 +148,11 @@ such as bitmaps and fonts.
 
 \docparam{menu}{Pull-right submenu.}
 
 
 \docparam{menu}{Pull-right submenu.}
 
-\docparam{checkable}{If TRUE, this item is checkable.}
+\docparam{kind}{May be {\tt wxITEM\_SEPARATOR}, {\tt wxITEM\_NORMAL}, 
+{\tt wxITEM\_CHECK} or {\tt wxITEM\_RADIO}}
 
 \docparam{helpString}{An optional help string associated with the item.
 
 \docparam{helpString}{An optional help string associated with the item.
-By default, \helpref{wxFrame::OnMenuHighlight}{wxframeonmenuhighlight} displays
+By default, the handler for the wxEVT\_MENU\_HIGHLIGHT event displays
 this string in the status line.}
 
 \docparam{menuItem}{A menuitem object. It will be owned by the wxMenu object after this function
 this string in the status line.}
 
 \docparam{menuItem}{A menuitem object. It will be owned by the wxMenu object after this function
@@ -115,31 +163,91 @@ is called, so do not delete it yourself.}
 This command can be used after the menu has been shown, as well as on initial
 creation of a menu or menubar.
 
 This command can be used after the menu has been shown, as well as on initial
 creation of a menu or menubar.
 
+The {\it item} string for the normal menu items (not submenus or separators)
+may include the accelerator which can be used to activate the menu item
+from keyboard. The accelerator string follows the item label and is separated
+from it by a {\tt TAB} character ({\tt '$\backslash$t'}). Its general syntax is
+any combination of {\tt "CTRL"}, {\tt "ALT"} and {\tt "SHIFT"} strings (case
+doesn't matter) separated by either {\tt '-'} or {\tt '+'} characters and
+followed by the accelerator itself. The accelerator may be any alphanumeric
+character, any function key (from {\tt F1} to {\tt F12}) or one of the special
+characters listed in the table below (again, case doesn't matter):
+
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\tt DEL} or {\tt DELETE}}{Delete key}
+\twocolitem{{\tt INS} or {\tt INSERT}}{Insert key}
+\twocolitem{{\tt ENTER} or {\tt RETURN}}{Enter key}
+\twocolitem{{\tt PGUP}}{PageUp key}
+\twocolitem{{\tt PGDN}}{PageDown key}
+\twocolitem{{\tt LEFT}}{Left cursor arrow key}
+\twocolitem{{\tt RIGHT}}{Right cursor arrow key}
+\twocolitem{{\tt UP}}{Up cursor arrow key}
+\twocolitem{{\tt DOWN}}{Down cursor arrow key}
+\twocolitem{{\tt HOME}}{Home key}
+\twocolitem{{\tt END}}{End key}
+\twocolitem{{\tt SPACE}}{Space}
+\twocolitem{{\tt TAB}}{Tab key}
+\twocolitem{{\tt ESC} or {\tt ESCAPE}}{Escape key (Windows only)}
+\end{twocollist}
+
 \wxheading{See also}
 
 \helpref{wxMenu::AppendSeparator}{wxmenuappendseparator},\rtfsp
 \wxheading{See also}
 
 \helpref{wxMenu::AppendSeparator}{wxmenuappendseparator},\rtfsp
+\helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem},\rtfsp
+\helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem},\rtfsp
 \helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
 \helpref{wxMenu::SetLabel}{wxmenusetlabel}, \helpref{wxMenu::GetHelpString}{wxmenugethelpstring},\rtfsp
 \helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenuItem}{wxmenuitem}
 
 \pythonnote{In place of a single overloaded method name, wxPython
 \helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
 \helpref{wxMenu::SetLabel}{wxmenusetlabel}, \helpref{wxMenu::GetHelpString}{wxmenugethelpstring},\rtfsp
 \helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenuItem}{wxmenuitem}
 
 \pythonnote{In place of a single overloaded method name, wxPython
-implements the following methods:\par
+implements the following methods:
+
 \indented{2cm}{\begin{twocollist}
 \indented{2cm}{\begin{twocollist}
-\twocolitem{{\bf Append(id, string, helpStr="", checkable=FALSE)}}{}
+\twocolitem{{\bf Append(id, string, helpStr="", checkable=false)}}{}
 \twocolitem{{\bf AppendMenu(id, string, aMenu, helpStr="")}}{}
 \twocolitem{{\bf AppendItem(aMenuItem)}}{}
 \end{twocollist}}
 }
 
 \twocolitem{{\bf AppendMenu(id, string, aMenu, helpStr="")}}{}
 \twocolitem{{\bf AppendItem(aMenuItem)}}{}
 \end{twocollist}}
 }
 
+\membersection{wxMenu::AppendCheckItem}\label{wxmenuappendcheckitem}
+
+\func{wxMenuItem*}{AppendCheckItem}{\param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}}
+
+Adds a checkable item to the end of the menu.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Append}{wxmenuappend},\rtfsp
+\helpref{wxMenu::InsertCheckItem}{wxmenuinsertcheckitem}
+
+\membersection{wxMenu::AppendRadioItem}\label{wxmenuappendradioitem}
+
+\func{wxMenuItem*}{AppendRadioItem}{\param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}}
+
+Adds a radio item to the end of the menu. All consequent radio items form a
+group and when an item in the group is checked, all the others are
+automatically unchecked.
+
+{\bf NB:} Currently only implemented under Windows and GTK, use
+{\tt\#if wxHAS\_RADIO\_MENU\_ITEMS} to test for availability of this feature.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Append}{wxmenuappend},\rtfsp
+\helpref{wxMenu::InsertRadioItem}{wxmenuinsertradioitem}
+
 \membersection{wxMenu::AppendSeparator}\label{wxmenuappendseparator}
 
 \membersection{wxMenu::AppendSeparator}\label{wxmenuappendseparator}
 
-\func{void}{AppendSeparator}{\void}
+\func{wxMenuItem*}{AppendSeparator}{\void}
 
 Adds a separator to the end of the menu.
 
 \wxheading{See also}
 
 
 Adds a separator to the end of the menu.
 
 \wxheading{See also}
 
-\helpref{wxMenu::Append}{wxmenuappend}
+\helpref{wxMenu::Append}{wxmenuappend},\rtfsp
+\helpref{wxMenu::InsertSeparator}{wxmenuinsertseparator}
 
 \membersection{wxMenu::Break}\label{wxmenubreak}
 
 
 \membersection{wxMenu::Break}\label{wxmenubreak}
 
@@ -157,7 +265,7 @@ Checks or unchecks the menu item.
 
 \docparam{id}{The menu item identifier.}
 
 
 \docparam{id}{The menu item identifier.}
 
-\docparam{check}{If TRUE, the item will be checked, otherwise it will be unchecked.}
+\docparam{check}{If true, the item will be checked, otherwise it will be unchecked.}
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -217,7 +325,7 @@ Enables or disables (greys out) a menu item.
 
 \docparam{id}{The menu item identifier.}
 
 
 \docparam{id}{The menu item identifier.}
 
-\docparam{enable}{TRUE to enable the menu item, FALSE to disable it.}
+\docparam{enable}{true to enable the menu item, false to disable it.}
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -236,7 +344,7 @@ optionally, the (sub)menu it belongs to.
 
 \perlnote{In wxPerl this method takes just the {\tt id} parameter;
 in scalar context it returns the associated {\tt Wx::MenuItem}, in list
 
 \perlnote{In wxPerl this method takes just the {\tt id} parameter;
 in scalar context it returns the associated {\tt Wx::MenuItem}, in list
-context it returns a two element list ( item, submenu )}
+context it returns a 2-element list {\tt ( item, submenu )}}
 
 \wxheading{Parameters}
 
 
 \wxheading{Parameters}
 
@@ -244,12 +352,12 @@ context it returns a two element list ( item, submenu )}
 
 \docparam{id}{Menu item identifier.}
 
 
 \docparam{id}{Menu item identifier.}
 
-\docparam{menu}{If the pointer is not NULL, it will be filled with the items
+\docparam{menu}{If the pointer is not NULL, it will be filled with the item's
 parent menu (if the item was found)}
 
 \wxheading{Return value}
 
 parent menu (if the item was found)}
 
 \wxheading{Return value}
 
-First form: menu item identifier, or wxNOT\_FOUND if none is found.
+First form: menu item identifier, or {\tt wxNOT\_FOUND} if none is found.
 
 Second form: returns the menu item object, or NULL if it is not found.
 
 
 Second form: returns the menu item object, or NULL if it is not found.
 
@@ -261,6 +369,12 @@ before matching.
 \pythonnote{The name of this method in wxPython is {\tt FindItemById} 
 and it does not support the second parameter.}
 
 \pythonnote{The name of this method in wxPython is {\tt FindItemById} 
 and it does not support the second parameter.}
 
+\membersection{wxMenu::FindItemByPosition}\label{wxmenufinditembyposition}
+
+\constfunc{wxMenuItem*}{FindItemByPosition}{\param{size\_t }{position}}
+
+Returns the wxMenuItem given a position in the menu.
+
 \membersection{wxMenu::GetHelpString}\label{wxmenugethelpstring}
 
 \constfunc{wxString}{GetHelpString}{\param{int}{ id}}
 \membersection{wxMenu::GetHelpString}\label{wxmenugethelpstring}
 
 \constfunc{wxString}{GetHelpString}{\param{int}{ id}}
@@ -319,7 +433,9 @@ Returns the title of the menu.
 
 \wxheading{Remarks}
 
 
 \wxheading{Remarks}
 
-This is relevant only to popup menus.
+This is relevant only to popup menus, use 
+\helpref{wxMenuBar::GetLabelTop}{wxmenubargetlabeltop} for the menus in the
+menubar.
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -327,15 +443,55 @@ This is relevant only to popup menus.
 
 \membersection{wxMenu::Insert}\label{wxmenuinsert}
 
 
 \membersection{wxMenu::Insert}\label{wxmenuinsert}
 
-\func{bool}{Insert}{\param{size\_t }{pos}, \param{wxMenuItem *}{item}}
+\func{wxMenuItem*}{Insert}{\param{size\_t }{pos}, \param{wxMenuItem *}{item}}
+
+\func{wxMenuItem*}{Insert}{\param{size\_t }{pos}, \param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""},\rtfsp
+\param{wxItemKind}{ kind = wxITEM\_NORMAL}}
 
 Inserts the given {\it item} before the position {\it pos}. Inserting the item
 
 Inserts the given {\it item} before the position {\it pos}. Inserting the item
-at the position \helpref{GetMenuItemCount}{wxmenugetmenuitemcount} is the same
+at position \helpref{GetMenuItemCount}{wxmenugetmenuitemcount} is the same
 as appending it.
 
 \wxheading{See also}
 
 as appending it.
 
 \wxheading{See also}
 
-\helpref{wxMenu::Append}{wxmenuappend}
+\helpref{wxMenu::Append}{wxmenuappend},\rtfsp
+\helpref{wxMenu::Prepend}{wxmenuprepend}
+
+\membersection{wxMenu::InsertCheckItem}\label{wxmenuinsertcheckitem}
+
+\func{wxMenuItem*}{InsertCheckItem}{\param{size\_t }{pos}, \param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}}
+
+Inserts a checkable item at the given position.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
+\helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem}
+
+\membersection{wxMenu::InsertRadioItem}\label{wxmenuinsertradioitem}
+
+\func{wxMenuItem*}{InsertRadioItem}{\param{size\_t }{pos}, \param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}}
+
+Inserts a radio item at the given position.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
+\helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem}
+
+\membersection{wxMenu::InsertSeparator}\label{wxmenuinsertseparator}
+
+\func{wxMenuItem*}{InsertSeparator}{\param{size\_t }{pos}}
+
+Inserts a separator at the given position.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
+\helpref{wxMenu::AppendSeparator}{wxmenuappendseparator}
 
 \membersection{wxMenu::IsChecked}\label{wxmenuischecked}
 
 
 \membersection{wxMenu::IsChecked}\label{wxmenuischecked}
 
@@ -349,7 +505,7 @@ Determines whether a menu item is checked.
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-TRUE if the menu item is checked, FALSE otherwise.
+true if the menu item is checked, false otherwise.
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -367,12 +523,63 @@ Determines whether a menu item is enabled.
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-TRUE if the menu item is enabled, FALSE otherwise.
+true if the menu item is enabled, false otherwise.
 
 \wxheading{See also}
 
 \helpref{wxMenu::Enable}{wxmenuenable}
 
 
 \wxheading{See also}
 
 \helpref{wxMenu::Enable}{wxmenuenable}
 
+\membersection{wxMenu::Prepend}\label{wxmenuprepend}
+
+\func{wxMenuItem*}{Prepend}{\param{wxMenuItem *}{item}}
+
+\func{wxMenuItem*}{Prepend}{\param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""},\rtfsp
+\param{wxItemKind}{ kind = wxITEM\_NORMAL}}
+
+Inserts the given {\it item} at position $0$, i.e. before all the other
+existing items.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Append}{wxmenuappend},\rtfsp
+\helpref{wxMenu::Insert}{wxmenuinsert}
+
+\membersection{wxMenu::PrependCheckItem}\label{wxmenuprependcheckitem}
+
+\func{wxMenuItem*}{PrependCheckItem}{\param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}}
+
+Inserts a checkable item at position $0$.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp
+\helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem}
+
+\membersection{wxMenu::PrependRadioItem}\label{wxmenuprependradioitem}
+
+\func{wxMenuItem*}{PrependRadioItem}{\param{int}{ id},\rtfsp
+\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}}
+
+Inserts a radio item at position $0$.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp
+\helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem}
+
+\membersection{wxMenu::PrependSeparator}\label{wxmenuprependseparator}
+
+\func{wxMenuItem*}{PrependSeparator}{\void}
+
+Inserts a separator at position $0$.
+
+\wxheading{See also}
+
+\helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp
+\helpref{wxMenu::AppendSeparator}{wxmenuappendseparator}
+
 \membersection{wxMenu::Remove}\label{wxmenuremove}
 
 \func{wxMenuItem *}{Remove}{\param{int }{id}}
 \membersection{wxMenu::Remove}\label{wxmenuremove}
 
 \func{wxMenuItem *}{Remove}{\param{int }{id}}
@@ -437,11 +644,13 @@ Sets the title of the menu.
 
 \wxheading{Remarks}
 
 
 \wxheading{Remarks}
 
-This is relevant only to popup menus.
+This is relevant only to popup menus, use 
+\helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop} for the menus in the
+menubar.
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
-\helpref{wxMenu::SetTitle}{wxmenusettitle}
+\helpref{wxMenu::GetTitle}{wxmenugettitle}
 
 \membersection{wxMenu::UpdateUI}\label{wxmenuupdateui}
 
 
 \membersection{wxMenu::UpdateUI}\label{wxmenuupdateui}
 
@@ -461,6 +670,7 @@ A menu bar is a series of menus accessible from the top of a frame.
 
 \wxheading{Derived from}
 
 
 \wxheading{Derived from}
 
+\helpref{wxWindow}{wxwindow}\\
 \helpref{wxEvtHandler}{wxevthandler}\\
 \helpref{wxObject}{wxobject}
 
 \helpref{wxEvtHandler}{wxevthandler}\\
 \helpref{wxObject}{wxobject}
 
@@ -475,11 +685,10 @@ that contains the menu bar. If you have a toolbar which uses the same identifier
 as your EVT\_MENU entries, events from the toolbar will also be processed by your
 EVT\_MENU event handlers.
 
 as your EVT\_MENU entries, events from the toolbar will also be processed by your
 EVT\_MENU event handlers.
 
-Note that menu commands (and UI update events for menus) are first sent to
-the focus window within the frame. If no window within the frame has the focus,
-then the events are sent directly to the frame. This allows command and UI update
-handling to be processed by specific windows and controls, and not necessarily
-by the application frame.
+{\bf Tip:} under Windows, if you discover that menu shortcuts (for example, Alt-F to show the file menu)
+are not working, check any EVT\_CHAR events you are handling in child windows.
+If you are not calling {\tt event.Skip()} for events that you don't process in these event handlers,
+menu shortcuts may cease to work.
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -487,13 +696,13 @@ by the application frame.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxMenuBar::wxMenuBar}\label{wxmenubarconstr}
+\membersection{wxMenuBar::wxMenuBar}\label{wxmenubarctor}
 
 
-\func{void}{wxMenuBar}{\param{long }{style = 0}}
+\func{}{wxMenuBar}{\param{long }{style = 0}}
 
 Default constructor.
 
 
 Default constructor.
 
-\func{void}{wxMenuBar}{\param{int}{ n}, \param{wxMenu*}{ menus[]}, \param{const wxString }{titles[]}}
+\func{}{wxMenuBar}{\param{size\_t}{ n}, \param{wxMenu*}{ menus[]}, \param{const wxString }{titles[]}, \param{long }{style = 0}}
 
 Construct a menu bar from arrays of menus and titles.
 
 
 Construct a menu bar from arrays of menus and titles.
 
@@ -509,12 +718,12 @@ menu bar.}
 \docparam{style}{If {\tt wxMB\_DOCKABLE} the menu bar can be detached (wxGTK only).}
 
 \pythonnote{Only the default constructor is supported in wxPython.
 \docparam{style}{If {\tt wxMB\_DOCKABLE} the menu bar can be detached (wxGTK only).}
 
 \pythonnote{Only the default constructor is supported in wxPython.
-Use wxMenuBar.Append instead.}
+Use \helpref{wxMenuBar::Append}{wxmenubarappend} instead.}
 
 
-\perlnote{wxPerl only supports the first contructor: 
-use {\tt Append} instead.}
+\perlnote{wxPerl only supports the first constructor: 
+use \helpref{wxMenuBar::Append}{wxmenubarappend} instead.}
 
 
-\membersection{wxMenuBar::\destruct{wxMenuBar}}
+\membersection{wxMenuBar::\destruct{wxMenuBar}}\label{wxmenubardtor}
 
 \func{void}{\destruct{wxMenuBar}}{\void}
 
 
 \func{void}{\destruct{wxMenuBar}}{\void}
 
@@ -534,7 +743,7 @@ Adds the item to the end of the menu bar.
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-TRUE on success, FALSE if an error occurred.
+true on success, false if an error occurred.
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -550,7 +759,7 @@ Checks or unchecks a menu item.
 
 \docparam{id}{The menu item identifier.}
 
 
 \docparam{id}{The menu item identifier.}
 
-\docparam{check}{If TRUE, checks the menu item, otherwise the item is unchecked.}
+\docparam{check}{If true, checks the menu item, otherwise the item is unchecked.}
 
 \wxheading{Remarks}
 
 
 \wxheading{Remarks}
 
@@ -567,7 +776,7 @@ Enables or disables (greys out) a menu item.
 
 \docparam{id}{The menu item identifier.}
 
 
 \docparam{id}{The menu item identifier.}
 
-\docparam{enable}{TRUE to enable the item, FALSE to disable it.}
+\docparam{enable}{true to enable the item, false to disable it.}
 
 \wxheading{Remarks}
 
 
 \wxheading{Remarks}
 
@@ -584,7 +793,7 @@ Enables or disables a whole menu.
 
 \docparam{pos}{The position of the menu, starting from zero.}
 
 
 \docparam{pos}{The position of the menu, starting from zero.}
 
-\docparam{enable}{TRUE to enable the menu, FALSE to disable it.}
+\docparam{enable}{true to enable the menu, false to disable it.}
 
 \wxheading{Remarks}
 
 
 \wxheading{Remarks}
 
@@ -595,7 +804,7 @@ associated with a frame.
 
 \constfunc{int}{FindMenu}{\param{const wxString\& }{title}}
 
 
 \constfunc{int}{FindMenu}{\param{const wxString\& }{title}}
 
-Returns the index of the menu with the given {\it title} or wxNOT\_FOUND if no
+Returns the index of the menu with the given {\it title} or {\tt wxNOT\_FOUND} if no
 such menu exists in this menubar. The {\it title} parameter may specify either
 the menu title (with accelerator characters, i.e. {\tt "\&File"}) or just the
 menu label ({\tt "File"}) indifferently.
 such menu exists in this menubar. The {\it title} parameter may specify either
 the menu title (with accelerator characters, i.e. {\tt "\&File"}) or just the
 menu label ({\tt "File"}) indifferently.
@@ -614,7 +823,7 @@ Finds the menu item id for a menu name/menu item string pair.
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-The menu item identifier, or wxNOT\_FOUND if none was found.
+The menu item identifier, or {\tt wxNOT\_FOUND} if none was found.
 
 \wxheading{Remarks}
 
 
 \wxheading{Remarks}
 
@@ -641,7 +850,7 @@ The found menu item object, or NULL if one was not found.
 
 \constfunc{wxString}{GetHelpString}{\param{int}{ id}}
 
 
 \constfunc{wxString}{GetHelpString}{\param{int}{ id}}
 
-Gets the help string associated with the menu item identifer.
+Gets the help string associated with the menu item identifier.
 
 \wxheading{Parameters}
 
 
 \wxheading{Parameters}
 
@@ -678,7 +887,9 @@ Use only after the menubar has been associated with a frame.
 
 \constfunc{wxString}{GetLabelTop}{\param{int}{ pos}}
 
 
 \constfunc{wxString}{GetLabelTop}{\param{int}{ pos}}
 
-Returns the label of a top-level menu.
+Returns the label of a top-level menu. Note that the returned string does not
+include the accelerator characters which could have been specified in the menu
+title string during its construction.
 
 \wxheading{Parameters}
 
 
 \wxheading{Parameters}
 
@@ -727,7 +938,7 @@ position $0$ will insert it in the very beginning of it, inserting at position
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-TRUE on success, FALSE if an error occurred.
+true on success, false if an error occurred.
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
@@ -745,7 +956,7 @@ Determines whether an item is checked.
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-TRUE if the item was found and is checked, FALSE otherwise.
+true if the item was found and is checked, false otherwise.
 
 \membersection{wxMenuBar::IsEnabled}\label{wxmenubarisenabled}
 
 
 \membersection{wxMenuBar::IsEnabled}\label{wxmenubarisenabled}
 
@@ -759,7 +970,7 @@ Determines whether an item is enabled.
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-TRUE if the item was found and is enabled, FALSE otherwise.
+true if the item was found and is enabled, false otherwise.
 
 \membersection{wxMenuBar::Refresh}\label{wxmenubarrefresh}
 
 
 \membersection{wxMenuBar::Refresh}\label{wxmenubarrefresh}
 
@@ -772,7 +983,7 @@ Redraw the menu bar
 \func{wxMenu *}{Remove}{\param{size\_t }{pos}}
 
 Removes the menu from the menu bar and returns the menu object - the caller is
 \func{wxMenu *}{Remove}{\param{size\_t }{pos}}
 
 Removes the menu from the menu bar and returns the menu object - the caller is
-reposnbile for deleting it. This function may be used together with 
+responsible for deleting it. This function may be used together with 
 \helpref{wxMenuBar::Insert}{wxmenubarinsert} to change the menubar
 dynamically.
 
 \helpref{wxMenuBar::Insert}{wxmenubarinsert} to change the menubar
 dynamically.
 
@@ -796,7 +1007,7 @@ Replaces the menu at the given position with another one.
 
 \wxheading{Return value}
 
 
 \wxheading{Return value}
 
-The menu which was previously at the position {\it pos}. The caller is
+The menu which was previously at position {\it pos}. The caller is
 responsible for deleting it.
 
 \wxheading{See also}
 responsible for deleting it.
 
 \wxheading{See also}