]> git.saurik.com Git - wxWidgets.git/commitdiff
wxGTK compiles (and seems to work) again after wxMenu changes
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 2 Nov 1999 15:21:40 +0000 (15:21 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 2 Nov 1999 15:21:40 +0000 (15:21 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

12 files changed:
include/wx/gtk/menu.h
include/wx/gtk1/menu.h
include/wx/menu.h
samples/menu/Makefile.in [new file with mode: 0644]
samples/menu/menu.cpp
src/common/menucmn.cpp
src/gtk/frame.cpp
src/gtk/menu.cpp
src/gtk/window.cpp
src/gtk1/frame.cpp
src/gtk1/menu.cpp
src/gtk1/window.cpp

index 07f1575111d81b77ee0b93401b965bd9fab5dbee..13d2f6b343f4ecefb3e4be441700a088d58783ca 100644 (file)
@@ -77,7 +77,7 @@ public:
 
     // TODO: virtual void SetTitle(const wxString& title);
 
-#ifdef WXWIN_COMPATIBILITY
+#if WXWIN_COMPATIBILITY
     wxMenu(const wxString& title, const wxFunction func)
         : wxMenuBase(title)
     {
index 07f1575111d81b77ee0b93401b965bd9fab5dbee..13d2f6b343f4ecefb3e4be441700a088d58783ca 100644 (file)
@@ -77,7 +77,7 @@ public:
 
     // TODO: virtual void SetTitle(const wxString& title);
 
-#ifdef WXWIN_COMPATIBILITY
+#if WXWIN_COMPATIBILITY
     wxMenu(const wxString& title, const wxFunction func)
         : wxMenuBase(title)
     {
index 440747fe17c1126339abbf460b272dae872776cf..599326cb180928bcdee2e4732646eb24210c3185 100644 (file)
@@ -182,6 +182,11 @@ public:
     wxFunction m_callback;
 #endif // WXWIN_COMPATIBILITY
 
+    // unlike FindItem(), this function doesn't recurse but only looks through
+    // our direct children and also may return the index of the found child if
+    // pos != NULL
+    wxMenuItem *FindChildItem(int id, size_t *pos = NULL) const;
+
 protected:
     // virtuals to override in derived classes
     // ---------------------------------------
@@ -199,11 +204,6 @@ protected:
     // common part of all ctors
     void Init(long style);
 
-    // unlike FindItem(), this function doesn't recurse but only looks through
-    // our direct children and also may return the index of the found child if
-    // pos != NULL
-    wxMenuItem *FindChildItem(int id, size_t *pos = NULL) const;
-
 protected:
     wxMenuBar     *m_menuBar;           // menubar we belong to or NULL
     wxMenu        *m_menuParent;        // parent menu or NULL
diff --git a/samples/menu/Makefile.in b/samples/menu/Makefile.in
new file mode 100644 (file)
index 0000000..75b8753
--- /dev/null
@@ -0,0 +1,21 @@
+#
+# File:                makefile.unx
+# Author:      Julian Smart
+# Created:     1998
+# Updated:     
+# Copyright:   (c) 1998 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for minimal example (UNIX).
+
+top_srcdir = @top_srcdir@
+top_builddir = ../..
+program_dir = samples/menu
+
+PROGRAM=menu
+
+OBJECTS=$(PROGRAM).o
+
+include ../../src/makeprog.env
+
index 2e44aa47473ba7b86a9a151efb239d9ca3c62099..7fa2267150dfec3cab89304c3ccd1562d6ec4411 100644 (file)
@@ -313,7 +313,7 @@ void MyFrame::OnDeleteMenu(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnAppendMenu(wxCommandEvent& WXUNUSED(event))
 {
-    static s_count = 0;
+    static int s_count = 0;
 
     wxString title;
     title.Printf("Dummy menu &%d", ++s_count);
@@ -354,7 +354,7 @@ void MyFrame::OnGetLabelMenu(wxCommandEvent& WXUNUSED(event))
     size_t count = mbar->GetMenuCount();
 
     wxLogMessage("The label of the last menu item is '%s'",
-                 mbar->GetLabelTop(count - 1));
+                 mbar->GetLabelTop(count - 1).c_str());
 }
 
 void MyFrame::OnSetLabelMenu(wxCommandEvent& WXUNUSED(event))
@@ -448,7 +448,7 @@ void MyFrame::OnGetLabelMenuItem(wxCommandEvent& WXUNUSED(event))
     if ( item )
     {
         wxLogMessage("The label of the last menu item is '%s'",
-                     item->GetLabel());
+                     item->GetLabel().c_str());
     }
 }
 
index b5e8cd426659bf35df92f2765a4c07532157b462..33ccd66f3966db43e1684dc621dab7d6dce0747b 100644 (file)
@@ -310,7 +310,7 @@ wxMenuItem *wxMenuBase::FindChildItem(int id, size_t *ppos) const
 
     if ( ppos )
     {
-        *ppos = item ? pos : wxNOT_FOUND;
+        *ppos = item ? pos : (size_t)wxNOT_FOUND;
     }
 
     return item;
index 928f7fa9000a2e9b70ae62d14d26ebd1ef350e22..2deb4641eac62e4c9d56d4912caf4be3236a8e60 100644 (file)
@@ -1070,10 +1070,10 @@ void wxFrame::Command( int id )
     wxMenuBar *bar = GetMenuBar();
     if (!bar) return;
 
-    wxMenuItem *item = bar->FindItemForId(id) ;
+    wxMenuItem *item = bar->FindItem(id) ;
     if (item && item->IsCheckable())
     {
-        bar->Check(id,!bar->Checked(id)) ;
+        bar->Check(id, !bar->IsChecked(id)) ;
     }
 
     wxEvtHandler* evtHandler = GetEventHandler();
index b1906645a91a581f00e1dab0555f09a5523a06e6..5ebd301230a7ad1b98cd99aa0cec43b87a65120a 100644 (file)
@@ -128,13 +128,13 @@ static void wxMenubarUnsetInvokingWindow( wxMenu *menu, wxWindow *win )
     gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = menu->GetItems().First();
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+        wxMenuItem *menuitem = node->GetData();
         if (menuitem->IsSubMenu())
             wxMenubarUnsetInvokingWindow( menuitem->GetSubMenu(), win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -151,13 +151,13 @@ static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win )
     gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = menu->GetItems().First();
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+        wxMenuItem *menuitem = node->GetData();
         if (menuitem->IsSubMenu())
             wxMenubarSetInvokingWindow( menuitem->GetSubMenu(), win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -173,12 +173,12 @@ void wxMenuBar::SetInvokingWindow( wxWindow *win )
     gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         wxMenubarSetInvokingWindow( menu, win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -194,12 +194,12 @@ void wxMenuBar::UnsetInvokingWindow( wxWindow *win )
     gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         wxMenubarUnsetInvokingWindow( menu, win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -330,14 +330,14 @@ static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString
             return res;
     }
 
-    wxNode *node = ((wxMenu *)menu)->GetItems().First();    // const_cast
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *item = (wxMenuItem*)node->Data();
+        wxMenuItem *item = node->GetData();
         if (item->IsSubMenu())
             return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString);
 
-        node = node->Next();
+        node = node->GetNext();
     }
 
     return wxNOT_FOUND;
@@ -345,15 +345,17 @@ static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString
 
 int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemString ) const
 {
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         int res = FindMenuItemRecursive( menu, menuString, itemString);
-        if (res != -1) return res;
-        node = node->Next();
+        if (res != -1)
+            return res;
+        node = node->GetNext();
     }
-    return -1;
+
+    return wxNOT_FOUND;
 }
 
 // Find a wxMenuItem using its id. Recurses down into sub-menus
@@ -361,15 +363,15 @@ static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id)
 {
     wxMenuItem* result = menu->FindChildItem(id);
 
-    wxNode *node = ((wxMenu *)menu)->GetItems().First(); // const_cast
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while ( node && result == NULL )
     {
-        wxMenuItem *item = (wxMenuItem*)node->Data();
+        wxMenuItem *item = node->GetData();
         if (item->IsSubMenu())
         {
             result = FindMenuItemByIdRecursive( item->GetSubMenu(), id );
         }
-        node = node->Next();
+        node = node->GetNext();
     }
 
     return result;
@@ -378,12 +380,12 @@ static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id)
 wxMenuItem* wxMenuBar::FindItem( int id, wxMenu **menuForItem ) const
 {
     wxMenuItem* result = 0;
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node && result == 0)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         result = FindMenuItemByIdRecursive( menu, id );
-        node = node->Next();
+        node = node->GetNext();
     }
 
     if ( menuForItem )
@@ -467,11 +469,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
     event.SetEventObject( menu );
     event.SetInt(id );
 
+#if WXWIN_COMPATIBILITY
     if (menu->GetCallback())
     {
         (void) (*(menu->GetCallback())) (*menu, event);
         return;
     }
+#endif // WXWIN_COMPATIBILITY
 
     if (menu->GetEventHandler()->ProcessEvent(event))
         return;
@@ -607,7 +611,7 @@ void wxMenuItem::SetText( const wxString& str )
         gtk_label_set( label, m_text.mb_str());
 
         /* reparse key accel */
-        guint accel_key = gtk_label_parse_uline (GTK_LABEL(label), m_text.mb_str() );
+        (void)gtk_label_parse_uline (GTK_LABEL(label), m_text.mb_str() );
         gtk_accel_label_refetch( GTK_ACCEL_LABEL(label) );
     }
 }
@@ -653,7 +657,7 @@ void wxMenuItem::DoSetText( const wxString& str )
 
 wxAcceleratorEntry *wxMenuItem::GetAccel() const
 {
-    if ( !item.GetHotKey() )
+    if ( !GetHotKey() )
     {
         // nothing
         return (wxAcceleratorEntry *)NULL;
@@ -661,7 +665,7 @@ wxAcceleratorEntry *wxMenuItem::GetAccel() const
 
     // as wxGetAccelFromString() looks for TAB, insert a dummy one here
     wxString label;
-    label << wxT('\t') << item.GetHotKey();
+    label << wxT('\t') << GetHotKey();
 
     return wxGetAccelFromString(label);
 }
@@ -760,7 +764,7 @@ wxMenu::~wxMenu()
    // the menu items are deleted by the base class dtor
 }
 
-virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
+bool wxMenu::DoAppend(wxMenuItem *mitem)
 {
     GtkWidget *menuItem;
 
@@ -802,12 +806,12 @@ virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
         gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 );  /* what is 2 ? */
 
         wxString path( mitem->GetFactoryPath() );
-        GtkWidget *menuItem = gtk_item_factory_get_item( m_factory, path.mb_str() );
+        menuItem = gtk_item_factory_get_item( m_factory, path.mb_str() );
 #else // GTK+ 1.0
-        GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText().mbc_str());
+        menuItem = gtk_menu_item_new_with_label(mitem->GetText().mbc_str());
 #endif // GTK 1.2/1.0
 
-        gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu );
+        gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), mitem->GetSubMenu()->m_menu );
     }
     else // a normal item
     {
@@ -824,7 +828,7 @@ virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
         entry.path = buf;
         entry.callback = (GtkItemFactoryCallback) gtk_menu_clicked_callback;
         entry.callback_action = 0;
-        if (checkable)
+        if ( mitem->IsCheckable() )
             entry.item_type = "<CheckItem>";
         else
             entry.item_type = "<Item>";
@@ -843,10 +847,10 @@ virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
         gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 );  /* what is 2 ? */
 
         wxString path( mitem->GetFactoryPath() );
-        GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, path.mb_str() );
+        menuItem = gtk_item_factory_get_widget( m_factory, path.mb_str() );
 #else // GTK+ 1.0
-        GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label( mitem->GetText().mb_str() )
-                                        : gtk_menu_item_new_with_label( mitem->GetText().mb_str() );
+        menuItem = checkable ? gtk_check_menu_item_new_with_label( mitem->GetText().mb_str() )
+                             : gtk_menu_item_new_with_label( mitem->GetText().mb_str() );
 
         gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
                             GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
index 5cc4b8901908441a628c33c0b2b8460f201bb0f3..b254ab8d789fd05c8dab5e061b53c399214303d4 100644 (file)
@@ -2815,15 +2815,16 @@ static void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting
 static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 {
     menu->SetInvokingWindow( win );
-    wxNode *node = menu->GetItems().First();
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+        wxMenuItem *menuitem = node->GetData();
         if (menuitem->IsSubMenu())
         {
             SetInvokingWindow( menuitem->GetSubMenu(), win );
         }
-        node = node->Next();
+
+        node = node->GetNext();
     }
 }
 
index 928f7fa9000a2e9b70ae62d14d26ebd1ef350e22..2deb4641eac62e4c9d56d4912caf4be3236a8e60 100644 (file)
@@ -1070,10 +1070,10 @@ void wxFrame::Command( int id )
     wxMenuBar *bar = GetMenuBar();
     if (!bar) return;
 
-    wxMenuItem *item = bar->FindItemForId(id) ;
+    wxMenuItem *item = bar->FindItem(id) ;
     if (item && item->IsCheckable())
     {
-        bar->Check(id,!bar->Checked(id)) ;
+        bar->Check(id, !bar->IsChecked(id)) ;
     }
 
     wxEvtHandler* evtHandler = GetEventHandler();
index b1906645a91a581f00e1dab0555f09a5523a06e6..5ebd301230a7ad1b98cd99aa0cec43b87a65120a 100644 (file)
@@ -128,13 +128,13 @@ static void wxMenubarUnsetInvokingWindow( wxMenu *menu, wxWindow *win )
     gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = menu->GetItems().First();
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+        wxMenuItem *menuitem = node->GetData();
         if (menuitem->IsSubMenu())
             wxMenubarUnsetInvokingWindow( menuitem->GetSubMenu(), win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -151,13 +151,13 @@ static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win )
     gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = menu->GetItems().First();
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+        wxMenuItem *menuitem = node->GetData();
         if (menuitem->IsSubMenu())
             wxMenubarSetInvokingWindow( menuitem->GetSubMenu(), win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -173,12 +173,12 @@ void wxMenuBar::SetInvokingWindow( wxWindow *win )
     gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         wxMenubarSetInvokingWindow( menu, win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -194,12 +194,12 @@ void wxMenuBar::UnsetInvokingWindow( wxWindow *win )
     gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) );
 #endif
 
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         wxMenubarUnsetInvokingWindow( menu, win );
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -330,14 +330,14 @@ static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString
             return res;
     }
 
-    wxNode *node = ((wxMenu *)menu)->GetItems().First();    // const_cast
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *item = (wxMenuItem*)node->Data();
+        wxMenuItem *item = node->GetData();
         if (item->IsSubMenu())
             return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString);
 
-        node = node->Next();
+        node = node->GetNext();
     }
 
     return wxNOT_FOUND;
@@ -345,15 +345,17 @@ static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString
 
 int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemString ) const
 {
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         int res = FindMenuItemRecursive( menu, menuString, itemString);
-        if (res != -1) return res;
-        node = node->Next();
+        if (res != -1)
+            return res;
+        node = node->GetNext();
     }
-    return -1;
+
+    return wxNOT_FOUND;
 }
 
 // Find a wxMenuItem using its id. Recurses down into sub-menus
@@ -361,15 +363,15 @@ static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id)
 {
     wxMenuItem* result = menu->FindChildItem(id);
 
-    wxNode *node = ((wxMenu *)menu)->GetItems().First(); // const_cast
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while ( node && result == NULL )
     {
-        wxMenuItem *item = (wxMenuItem*)node->Data();
+        wxMenuItem *item = node->GetData();
         if (item->IsSubMenu())
         {
             result = FindMenuItemByIdRecursive( item->GetSubMenu(), id );
         }
-        node = node->Next();
+        node = node->GetNext();
     }
 
     return result;
@@ -378,12 +380,12 @@ static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id)
 wxMenuItem* wxMenuBar::FindItem( int id, wxMenu **menuForItem ) const
 {
     wxMenuItem* result = 0;
-    wxNode *node = m_menus.First();
+    wxMenuList::Node *node = m_menus.GetFirst();
     while (node && result == 0)
     {
-        wxMenu *menu = (wxMenu*)node->Data();
+        wxMenu *menu = node->GetData();
         result = FindMenuItemByIdRecursive( menu, id );
-        node = node->Next();
+        node = node->GetNext();
     }
 
     if ( menuForItem )
@@ -467,11 +469,13 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
     event.SetEventObject( menu );
     event.SetInt(id );
 
+#if WXWIN_COMPATIBILITY
     if (menu->GetCallback())
     {
         (void) (*(menu->GetCallback())) (*menu, event);
         return;
     }
+#endif // WXWIN_COMPATIBILITY
 
     if (menu->GetEventHandler()->ProcessEvent(event))
         return;
@@ -607,7 +611,7 @@ void wxMenuItem::SetText( const wxString& str )
         gtk_label_set( label, m_text.mb_str());
 
         /* reparse key accel */
-        guint accel_key = gtk_label_parse_uline (GTK_LABEL(label), m_text.mb_str() );
+        (void)gtk_label_parse_uline (GTK_LABEL(label), m_text.mb_str() );
         gtk_accel_label_refetch( GTK_ACCEL_LABEL(label) );
     }
 }
@@ -653,7 +657,7 @@ void wxMenuItem::DoSetText( const wxString& str )
 
 wxAcceleratorEntry *wxMenuItem::GetAccel() const
 {
-    if ( !item.GetHotKey() )
+    if ( !GetHotKey() )
     {
         // nothing
         return (wxAcceleratorEntry *)NULL;
@@ -661,7 +665,7 @@ wxAcceleratorEntry *wxMenuItem::GetAccel() const
 
     // as wxGetAccelFromString() looks for TAB, insert a dummy one here
     wxString label;
-    label << wxT('\t') << item.GetHotKey();
+    label << wxT('\t') << GetHotKey();
 
     return wxGetAccelFromString(label);
 }
@@ -760,7 +764,7 @@ wxMenu::~wxMenu()
    // the menu items are deleted by the base class dtor
 }
 
-virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
+bool wxMenu::DoAppend(wxMenuItem *mitem)
 {
     GtkWidget *menuItem;
 
@@ -802,12 +806,12 @@ virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
         gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 );  /* what is 2 ? */
 
         wxString path( mitem->GetFactoryPath() );
-        GtkWidget *menuItem = gtk_item_factory_get_item( m_factory, path.mb_str() );
+        menuItem = gtk_item_factory_get_item( m_factory, path.mb_str() );
 #else // GTK+ 1.0
-        GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText().mbc_str());
+        menuItem = gtk_menu_item_new_with_label(mitem->GetText().mbc_str());
 #endif // GTK 1.2/1.0
 
-        gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu );
+        gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), mitem->GetSubMenu()->m_menu );
     }
     else // a normal item
     {
@@ -824,7 +828,7 @@ virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
         entry.path = buf;
         entry.callback = (GtkItemFactoryCallback) gtk_menu_clicked_callback;
         entry.callback_action = 0;
-        if (checkable)
+        if ( mitem->IsCheckable() )
             entry.item_type = "<CheckItem>";
         else
             entry.item_type = "<Item>";
@@ -843,10 +847,10 @@ virtual bool wxMenu::DoAppend(wxMenuItem *mitem)
         gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 );  /* what is 2 ? */
 
         wxString path( mitem->GetFactoryPath() );
-        GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, path.mb_str() );
+        menuItem = gtk_item_factory_get_widget( m_factory, path.mb_str() );
 #else // GTK+ 1.0
-        GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label( mitem->GetText().mb_str() )
-                                        : gtk_menu_item_new_with_label( mitem->GetText().mb_str() );
+        menuItem = checkable ? gtk_check_menu_item_new_with_label( mitem->GetText().mb_str() )
+                             : gtk_menu_item_new_with_label( mitem->GetText().mb_str() );
 
         gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
                             GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
index 5cc4b8901908441a628c33c0b2b8460f201bb0f3..b254ab8d789fd05c8dab5e061b53c399214303d4 100644 (file)
@@ -2815,15 +2815,16 @@ static void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting
 static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 {
     menu->SetInvokingWindow( win );
-    wxNode *node = menu->GetItems().First();
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
     while (node)
     {
-        wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+        wxMenuItem *menuitem = node->GetData();
         if (menuitem->IsSubMenu())
         {
             SetInvokingWindow( menuitem->GetSubMenu(), win );
         }
-        node = node->Next();
+
+        node = node->GetNext();
     }
 }