]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/menu.cpp
Allow app to call SetWindowVariant before creation of control
[wxWidgets.git] / src / motif / menu.cpp
index 79c8ab506113204c86f229b66c66f9598a72c07a..2b2113f171b3153b3c9aa4f7f2a0aeca7539b44e 100644 (file)
@@ -114,12 +114,12 @@ void wxMenu::Break()
 }
 
 // function appends a new item or submenu to the menu
 }
 
 // function appends a new item or submenu to the menu
-bool wxMenu::DoAppend(wxMenuItem *pItem)
+wxMenuItem* wxMenu::DoAppend(wxMenuItem *pItem)
 {
     if (m_menuWidget)
     {
         // this is a dynamic Append
 {
     if (m_menuWidget)
     {
         // this is a dynamic Append
-        pItem->CreateItem(m_menuWidget, m_menuBar, m_topLevelMenu);
+        pItem->CreateItem(m_menuWidget, GetMenuBar(), m_topLevelMenu);
     }
 
     if ( pItem->IsSubMenu() )
     }
 
     if ( pItem->IsSubMenu() )
@@ -137,14 +137,14 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
     return wxMenuBase::DoRemove(item);
 }
 
     return wxMenuBase::DoRemove(item);
 }
 
-bool wxMenu::DoInsert(size_t pos, wxMenuItem *item)
+wxMenuItem* wxMenu::DoInsert(size_t pos, wxMenuItem *item)
 {
     if ( wxMenuBase::DoInsert(pos, item) )
 {
     if ( wxMenuBase::DoInsert(pos, item) )
-        return TRUE;
+        return item;
 
     wxFAIL_MSG(wxT("DoInsert not implemented; or error in wxMenuBase::DoInsert"));
 
 
     wxFAIL_MSG(wxT("DoInsert not implemented; or error in wxMenuBase::DoInsert"));
 
-    return FALSE;
+    return NULL;
 }
 
 void wxMenu::SetTitle(const wxString& label)
 }
 
 void wxMenu::SetTitle(const wxString& label)
@@ -206,6 +206,17 @@ void wxMenuBar::Init()
     m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
 }
 
     m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
 }
 
+wxMenuBar::wxMenuBar(int n, wxMenu *menus[], const wxArrayString& titles)
+{
+    wxASSERT( size_t(n) == titles.GetCount() );
+
+    Init();
+
+    m_titles = titles;
+    for ( int i = 0; i < n; i++ )
+        m_menus.Append(menus[i]);
+}
+
 wxMenuBar::wxMenuBar(int n, wxMenu *menus[], const wxString titles[])
 {
     Init();
 wxMenuBar::wxMenuBar(int n, wxMenu *menus[], const wxString titles[])
 {
     Init();
@@ -278,8 +289,6 @@ bool wxMenuBar::Append(wxMenu * menu, const wxString& title)
         menu->SetButtonWidget(w);
     }
 
         menu->SetButtonWidget(w);
     }
 
-    //menu->SetMenuBar(this);
-
     m_titles.Add(title);
 
     return wxMenuBarBase::Append(menu, title);
     m_titles.Add(title);
 
     return wxMenuBarBase::Append(menu, title);
@@ -511,7 +520,6 @@ WXWidget wxMenu::CreateMenu (wxMenuBar * menuBar, WXWidget parent, wxMenu * topM
 
     m_menuWidget = (WXWidget) menu;
 
 
     m_menuWidget = (WXWidget) menu;
 
-    m_menuBar = menuBar;
     m_topLevelMenu = topMenu;
 
     for ( wxMenuItemList::compatibility_iterator node = GetMenuItems().GetFirst();
     m_topLevelMenu = topMenu;
 
     for ( wxMenuItemList::compatibility_iterator node = GetMenuItems().GetFirst();