]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/menu.cpp
correction to maintain data array in synch with string array
[wxWidgets.git] / src / msw / menu.cpp
index bf7b961b17c58a2e51f2f9cf0c31966dde2c285a..48b0b30706d0b178c84f8248d33964fffa0ea4cc 100644 (file)
@@ -434,7 +434,13 @@ bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id)
         wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED);
         event.SetEventObject( this );
         event.SetId( id );
-        event.SetInt( id );
+
+        // VZ: previosuly, the command int was set to id too which was quite
+        //     useless anyhow (as it could be retrieved using GetId()) and
+        //     uncompatible with wxGTK, so now we use the command int instead
+        //     to pass the checked status
+        event.SetInt(::GetMenuState(GetHmenu(), id, MF_BYCOMMAND) & MF_CHECKED);
+
         ProcessCommand(event);
     }
 
@@ -552,11 +558,9 @@ void wxMenuBar::Refresh()
 
 WXHMENU wxMenuBar::Create()
 {
-    if (m_hMenu != 0 )
+    if ( m_hMenu != 0 )
         return m_hMenu;
 
-    wxCHECK_MSG( !m_hMenu, TRUE, wxT("menubar already created") );
-
     m_hMenu = (WXHMENU)::CreateMenu();
 
     if ( !m_hMenu )