]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxMenu::AppendSubMenu() to avoid having to specify a dummy id when adding a...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 16 Apr 2006 23:25:21 +0000 (23:25 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 16 Apr 2006 23:25:21 +0000 (23:25 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
docs/latex/wx/menu.tex
include/wx/menu.h

index 2bc193c366dc03d3e0b77f30a11367ae7b9f26c2..21dfdb3b5a4b0b87040c30e2bddfa8def114f52e 100644 (file)
@@ -126,6 +126,7 @@ All (GUI):
 - Indices and counts in wxControlWithItems derived API are unsigned.
 - Added support for links to wxHtmlListBox; use code has to override
   wxHtmlListBox::OnLinkClicked() to take advantage of it.
+- Added an easier to use wxMenu::AppendSubMenu()
 
 wxMSW:
 
index 7daf283906f4ff95ac63efaaf85c44d99a59a4e7..d2b4fe2e35ac81c7a76a747e188a12836c304d5b 100644 (file)
@@ -89,6 +89,7 @@ not be used in the new code, it is provided for backwards compatibility only.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+
 \membersection{wxMenu::wxMenu}\label{wxmenuctor}
 
 \func{}{wxMenu}{\param{const wxString\& }{title = ""}, \param{long}{ style = 0}}
@@ -109,6 +110,7 @@ Constructs a wxMenu object.
 
 \docparam{style}{If set to {\tt wxMENU\_TEAROFF}, the menu will be detachable (wxGTK only).}
 
+
 \membersection{wxMenu::\destruct{wxMenu}}\label{wxmenudtor}
 
 \func{}{\destruct{wxMenu}}{\void}
@@ -122,6 +124,7 @@ parent window. Re-use in this context means popping up the menu on
 a different window from last time, which causes an implicit destruction
 and recreation of internal data structures.
 
+
 \membersection{wxMenu::Append}\label{wxmenuappend}
 
 \func{wxMenuItem*}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""},\rtfsp
@@ -198,6 +201,7 @@ characters listed in the table below (again, case doesn't matter):
 \helpref{wxMenu::AppendSeparator}{wxmenuappendseparator},\rtfsp
 \helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem},\rtfsp
 \helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem},\rtfsp
+\helpref{wxMenu::AppendSubMenu}{wxmenuappendsubmenu},\rtfsp
 \helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
 \helpref{wxMenu::SetLabel}{wxmenusetlabel}, \helpref{wxMenu::GetHelpString}{wxmenugethelpstring},\rtfsp
 \helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenuItem}{wxmenuitem}
@@ -212,6 +216,7 @@ implements the following methods:
 \end{twocollist}}
 }
 
+
 \membersection{wxMenu::AppendCheckItem}\label{wxmenuappendcheckitem}
 
 \func{wxMenuItem*}{AppendCheckItem}{\param{int}{ id},\rtfsp
@@ -224,6 +229,7 @@ Adds a checkable item to the end of the menu.
 \helpref{wxMenu::Append}{wxmenuappend},\rtfsp
 \helpref{wxMenu::InsertCheckItem}{wxmenuinsertcheckitem}
 
+
 \membersection{wxMenu::AppendRadioItem}\label{wxmenuappendradioitem}
 
 \func{wxMenuItem*}{AppendRadioItem}{\param{int}{ id},\rtfsp
@@ -241,6 +247,7 @@ automatically unchecked.
 \helpref{wxMenu::Append}{wxmenuappend},\rtfsp
 \helpref{wxMenu::InsertRadioItem}{wxmenuinsertradioitem}
 
+
 \membersection{wxMenu::AppendSeparator}\label{wxmenuappendseparator}
 
 \func{wxMenuItem*}{AppendSeparator}{\void}
@@ -252,12 +259,23 @@ Adds a separator to the end of the menu.
 \helpref{wxMenu::Append}{wxmenuappend},\rtfsp
 \helpref{wxMenu::InsertSeparator}{wxmenuinsertseparator}
 
+
+\membersection{wxMenu::AppendSubMenu}\label{wxmenuappendsubmenu}
+
+\func{wxMenuItem *}{AppendSubMenu}{\param{wxMenu *}{submenu}, \param{const wxString\& }{text}, \param{const wxString\& }{help = wxEmptyString}}
+
+Adds the given \arg{submenu} to this menu. \arg{text} is the text shown in the
+menu for it and \arg{help} is the help string shown in the status bar when the
+submenu item is selected.
+
+
 \membersection{wxMenu::Break}\label{wxmenubreak}
 
 \func{void}{Break}{\void}
 
 Inserts a break in a menu, causing the next appended item to appear in a new column.
 
+
 \membersection{wxMenu::Check}\label{wxmenucheck}
 
 \func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}}
@@ -274,6 +292,7 @@ Checks or unchecks the menu item.
 
 \helpref{wxMenu::IsChecked}{wxmenuischecked}
 
+
 \membersection{wxMenu::Delete}\label{wxmenudelete}
 
 \func{void}{Delete}{\param{int }{id}}
@@ -296,6 +315,7 @@ delete a submenu.
 \helpref{wxMenu::Destroy}{wxmenudestroy},\rtfsp
 \helpref{wxMenu::Remove}{wxmenuremove}
 
+
 \membersection{wxMenu::Destroy}\label{wxmenudestroy}
 
 \func{void}{Destroy}{\param{int }{id}}
@@ -318,6 +338,7 @@ be deleted. Use \helpref{Remove}{wxmenuremove} if you want to keep the submenu
 \helpref{wxMenu::Deletes}{wxmenudelete},\rtfsp
 \helpref{wxMenu::Remove}{wxmenuremove}
 
+
 \membersection{wxMenu::Enable}\label{wxmenuenable}
 
 \func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}}
@@ -334,6 +355,7 @@ Enables or disables (greys out) a menu item.
 
 \helpref{wxMenu::IsEnabled}{wxmenuisenabled}
 
+
 \membersection{wxMenu::FindItem}\label{wxmenufinditem}
 
 \constfunc{int}{FindItem}{\param{const wxString\& }{itemString}}
@@ -372,12 +394,14 @@ before matching.
 \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}}
@@ -397,6 +421,7 @@ item was not found.
 
 \helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenu::Append}{wxmenuappend}
 
+
 \membersection{wxMenu::GetLabel}\label{wxmenugetlabel}
 
 \constfunc{wxString}{GetLabel}{\param{int}{ id}}
@@ -415,12 +440,14 @@ The item label, or the empty string if the item was not found.
 
 \helpref{wxMenu::SetLabel}{wxmenusetlabel}
 
+
 \membersection{wxMenu::GetMenuItemCount}\label{wxmenugetmenuitemcount}
 
 \constfunc{size\_t}{GetMenuItemCount}{\void}
 
 Returns the number of items in the menu.
 
+
 \membersection{wxMenu::GetMenuItems}\label{wxmenugetmenuitems}
 
 \constfunc{wxMenuItemList\&}{GetMenuItems}{\void}
@@ -428,6 +455,7 @@ Returns the number of items in the menu.
 Returns the list of items in the menu. wxMenuItemList is a pseudo-template
 list class containing wxMenuItem pointers.
 
+
 \membersection{wxMenu::GetTitle}\label{wxmenugettitle}
 
 \constfunc{wxString}{GetTitle}{\void}
@@ -444,6 +472,7 @@ menubar.
 
 \helpref{wxMenu::SetTitle}{wxmenusettitle}
 
+
 \membersection{wxMenu::Insert}\label{wxmenuinsert}
 
 \func{wxMenuItem*}{Insert}{\param{size\_t }{pos}, \param{wxMenuItem *}{item}}
@@ -461,6 +490,7 @@ as appending it.
 \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
@@ -473,6 +503,7 @@ Inserts a checkable item at the given position.
 \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
@@ -485,6 +516,7 @@ Inserts a radio item at the given position.
 \helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
 \helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem}
 
+
 \membersection{wxMenu::InsertSeparator}\label{wxmenuinsertseparator}
 
 \func{wxMenuItem*}{InsertSeparator}{\param{size\_t }{pos}}
@@ -496,6 +528,7 @@ Inserts a separator at the given position.
 \helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp
 \helpref{wxMenu::AppendSeparator}{wxmenuappendseparator}
 
+
 \membersection{wxMenu::IsChecked}\label{wxmenuischecked}
 
 \constfunc{bool}{IsChecked}{\param{int}{ id}}
@@ -514,6 +547,7 @@ true if the menu item is checked, false otherwise.
 
 \helpref{wxMenu::Check}{wxmenucheck}
 
+
 \membersection{wxMenu::IsEnabled}\label{wxmenuisenabled}
 
 \constfunc{bool}{IsEnabled}{\param{int}{ id}}
@@ -532,6 +566,7 @@ true if the menu item is enabled, false otherwise.
 
 \helpref{wxMenu::Enable}{wxmenuenable}
 
+
 \membersection{wxMenu::Prepend}\label{wxmenuprepend}
 
 \func{wxMenuItem*}{Prepend}{\param{wxMenuItem *}{item}}
@@ -548,6 +583,7 @@ existing items.
 \helpref{wxMenu::Append}{wxmenuappend},\rtfsp
 \helpref{wxMenu::Insert}{wxmenuinsert}
 
+
 \membersection{wxMenu::PrependCheckItem}\label{wxmenuprependcheckitem}
 
 \func{wxMenuItem*}{PrependCheckItem}{\param{int}{ id},\rtfsp
@@ -560,6 +596,7 @@ Inserts a checkable item at position $0$.
 \helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp
 \helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem}
 
+
 \membersection{wxMenu::PrependRadioItem}\label{wxmenuprependradioitem}
 
 \func{wxMenuItem*}{PrependRadioItem}{\param{int}{ id},\rtfsp
@@ -572,6 +609,7 @@ Inserts a radio item at position $0$.
 \helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp
 \helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem}
 
+
 \membersection{wxMenu::PrependSeparator}\label{wxmenuprependseparator}
 
 \func{wxMenuItem*}{PrependSeparator}{\void}
@@ -583,6 +621,7 @@ Inserts a separator at position $0$.
 \helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp
 \helpref{wxMenu::AppendSeparator}{wxmenuappendseparator}
 
+
 \membersection{wxMenu::Remove}\label{wxmenuremove}
 
 \func{wxMenuItem *}{Remove}{\param{int }{id}}
@@ -603,6 +642,7 @@ object. This allows to reuse the same item later by adding it back to the menu
 
 The item which was detached from the menu.
 
+
 \membersection{wxMenu::SetHelpString}\label{wxmenusethelpstring}
 
 \func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}}
@@ -619,6 +659,7 @@ Sets an item's help string.
 
 \helpref{wxMenu::GetHelpString}{wxmenugethelpstring}
 
+
 \membersection{wxMenu::SetLabel}\label{wxmenusetlabel}
 
 \func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}}
@@ -635,6 +676,7 @@ Sets the label of a menu item.
 
 \helpref{wxMenu::Append}{wxmenuappend}, \helpref{wxMenu::GetLabel}{wxmenugetlabel}
 
+
 \membersection{wxMenu::SetTitle}\label{wxmenusettitle}
 
 \func{void}{SetTitle}{\param{const wxString\& }{title}}
@@ -655,6 +697,7 @@ menubar.
 
 \helpref{wxMenu::GetTitle}{wxmenugettitle}
 
+
 \membersection{wxMenu::UpdateUI}\label{wxmenuupdateui}
 
 \constfunc{void}{UpdateUI}{\param{wxEvtHandler*}{ source = NULL}}
@@ -699,6 +742,7 @@ menu shortcuts may cease to work.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+
 \membersection{wxMenuBar::wxMenuBar}\label{wxmenubarctor}
 
 \func{}{wxMenuBar}{\param{long }{style = 0}}
@@ -726,12 +770,14 @@ Use \helpref{wxMenuBar::Append}{wxmenubarappend} instead.}
 \perlnote{wxPerl only supports the first constructor: 
 use \helpref{wxMenuBar::Append}{wxmenubarappend} instead.}
 
+
 \membersection{wxMenuBar::\destruct{wxMenuBar}}\label{wxmenubardtor}
 
 \func{void}{\destruct{wxMenuBar}}{\void}
 
 Destructor, destroying the menu bar and removing it from the parent frame (if any).
 
+
 \membersection{wxMenuBar::Append}\label{wxmenubarappend}
 
 \func{bool}{Append}{\param{wxMenu *}{menu}, \param{const wxString\& }{title}}
@@ -752,6 +798,7 @@ true on success, false if an error occurred.
 
 \helpref{wxMenuBar::Insert}{wxmenubarinsert}
 
+
 \membersection{wxMenuBar::Check}\label{wxmenubarcheck}
 
 \func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}}
@@ -769,6 +816,7 @@ Checks or unchecks a menu item.
 Only use this when the menu bar has been associated
 with a frame; otherwise, use the wxMenu equivalent call.
 
+
 \membersection{wxMenuBar::Enable}\label{wxmenubarenable}
 
 \func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}}
@@ -786,6 +834,7 @@ Enables or disables (greys out) a menu item.
 Only use this when the menu bar has been
 associated with a frame; otherwise, use the wxMenu equivalent call.
 
+
 \membersection{wxMenuBar::EnableTop}\label{wxmenubarenabletop}
 
 \func{void}{EnableTop}{\param{int}{ pos}, \param{const bool}{ enable}}
@@ -803,6 +852,7 @@ Enables or disables a whole menu.
 Only use this when the menu bar has been
 associated with a frame.
 
+
 \membersection{wxMenuBar::FindMenu}\label{wxmenubarfindmenu}
 
 \constfunc{int}{FindMenu}{\param{const wxString\& }{title}}
@@ -812,6 +862,7 @@ 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.
 
+
 \membersection{wxMenuBar::FindMenuItem}\label{wxmenubarfindmenuitem}
 
 \constfunc{int}{FindMenuItem}{\param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
@@ -833,6 +884,7 @@ The menu item identifier, or {\tt wxNOT\_FOUND} if none was found.
 Any special menu codes are stripped out of source and target strings
 before matching.
 
+
 \membersection{wxMenuBar::FindItem}\label{wxmenubarfinditem}
 
 \constfunc{wxMenuItem *}{FindItem}{\param{int}{ id}, \param{wxMenu}{ **menu = NULL}}
@@ -849,6 +901,7 @@ Finds the menu item object associated with the given menu item identifier.
 
 The found menu item object, or NULL if one was not found.
 
+
 \membersection{wxMenuBar::GetHelpString}\label{wxmenubargethelpstring}
 
 \constfunc{wxString}{GetHelpString}{\param{int}{ id}}
@@ -868,6 +921,7 @@ was not found.
 
 \helpref{wxMenuBar::SetHelpString}{wxmenubarsethelpstring}
 
+
 \membersection{wxMenuBar::GetLabel}\label{wxmenubargetlabel}
 
 \constfunc{wxString}{GetLabel}{\param{int}{ id}}
@@ -886,6 +940,7 @@ The menu item label, or the empty string if the item was not found.
 
 Use only after the menubar has been associated with a frame.
 
+
 \membersection{wxMenuBar::GetLabelTop}\label{wxmenubargetlabeltop}
 
 \constfunc{wxString}{GetLabelTop}{\param{int}{ pos}}
@@ -910,18 +965,21 @@ Use only after the menubar has been associated with a frame.
 
 \helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop}
 
+
 \membersection{wxMenuBar::GetMenu}\label{wxmenubargetmenu}
 
 \constfunc{wxMenu*}{GetMenu}{\param{int}{ menuIndex}}
 
 Returns the menu at {\it menuIndex} (zero-based).
 
+
 \membersection{wxMenuBar::GetMenuCount}\label{wxmenubargetmenucount}
 
 \constfunc{int}{GetMenuCount}{\void}
 
 Returns the number of menus in this menubar.
 
+
 \membersection{wxMenuBar::Insert}\label{wxmenubarinsert}
 
 \func{bool}{Insert}{\param{size\_t }{pos}, \param{wxMenu *}{menu}, \param{const wxString\& }{title}}
@@ -947,6 +1005,7 @@ true on success, false if an error occurred.
 
 \helpref{wxMenuBar::Append}{wxmenubarappend}
 
+
 \membersection{wxMenuBar::IsChecked}\label{wxmenubarischecked}
 
 \constfunc{bool}{IsChecked}{\param{int}{ id}}
@@ -961,6 +1020,7 @@ Determines whether an item is checked.
 
 true if the item was found and is checked, false otherwise.
 
+
 \membersection{wxMenuBar::IsEnabled}\label{wxmenubarisenabled}
 
 \constfunc{bool}{IsEnabled}{\param{int}{ id}}
@@ -975,12 +1035,14 @@ Determines whether an item is enabled.
 
 true if the item was found and is enabled, false otherwise.
 
+
 \membersection{wxMenuBar::Refresh}\label{wxmenubarrefresh}
 
 \func{void}{Refresh}{\void}
 
 Redraw the menu bar
 
+
 \membersection{wxMenuBar::Remove}\label{wxmenubarremove}
 
 \func{wxMenu *}{Remove}{\param{size\_t }{pos}}
@@ -994,6 +1056,7 @@ dynamically.
 
 \helpref{wxMenuBar::Replace}{wxmenubarreplace}
 
+
 \membersection{wxMenuBar::Replace}\label{wxmenubarreplace}
 
 \func{wxMenu *}{Replace}{\param{size\_t }{pos}, \param{wxMenu *}{menu}, \param{const wxString\& }{title}}
@@ -1018,6 +1081,7 @@ responsible for deleting it.
 \helpref{wxMenuBar::Insert}{wxmenubarinsert},\rtfsp
 \helpref{wxMenuBar::Remove}{wxmenubarremove}
 
+
 \membersection{wxMenuBar::SetHelpString}\label{wxmenubarsethelpstring}
 
 \func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}}
@@ -1034,6 +1098,7 @@ Sets the help string associated with a menu item.
 
 \helpref{wxMenuBar::GetHelpString}{wxmenubargethelpstring}
 
+
 \membersection{wxMenuBar::SetLabel}\label{wxmenubarsetlabel}
 
 \func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}}
@@ -1054,6 +1119,7 @@ Use only after the menubar has been associated with a frame.
 
 \helpref{wxMenuBar::GetLabel}{wxmenubargetlabel}
 
+
 \membersection{wxMenuBar::SetLabelTop}\label{wxmenubarsetlabeltop}
 
 \func{void}{SetLabelTop}{\param{int}{ pos}, \param{const wxString\& }{label}}
index 23cf0efa5b41109a1395123e11c672882a055f81..f03dc59acbe2d69ca15febe16186497cf1d96dd5 100644 (file)
@@ -87,12 +87,11 @@ public:
     }
 
     // append a submenu
-    wxMenuItem* Append(int itemid,
-                       const wxString& text,
-                       wxMenu *submenu,
-                       const wxString& help = wxEmptyString)
+    wxMenuItem* AppendSubMenu(wxMenu *submenu,
+                              const wxString& text,
+                              const wxString& help = wxEmptyString)
     {
-        return DoAppend(wxMenuItem::New((wxMenu *)this, itemid, text, help,
+        return DoAppend(wxMenuItem::New((wxMenu *)this, wxID_ANY, text, help,
                                         wxITEM_NORMAL, submenu));
     }
 
@@ -309,6 +308,16 @@ public:
         Append(itemid, text, help, isCheckable ? wxITEM_CHECK : wxITEM_NORMAL);
     }
 
+    // use more readable and not requiring unused itemid AppendSubMenu() instead
+    wxMenuItem* Append(int itemid,
+                       const wxString& text,
+                       wxMenu *submenu,
+                       const wxString& help = wxEmptyString)
+    {
+        return DoAppend(wxMenuItem::New((wxMenu *)this, itemid, text, help,
+                                        wxITEM_NORMAL, submenu));
+    }
+
     void Insert(size_t pos,
                 int itemid,
                 const wxString& text,