]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/menu.cpp
pass wxIntPtr, not wxUIntPtr, to wxListCtrl::SortItems() callback as it's more compat...
[wxWidgets.git] / src / osx / carbon / menu.cpp
index 5f6a7a75d05c6b72d740275a10eb68416de74653..5db7b7bc502731ec93f21999be7ef7faa477c14b 100644 (file)
@@ -189,7 +189,6 @@ public :
 
     virtual ~wxMenuCarbonImpl();
         
-
     virtual void InsertOrAppend(wxMenuItem *pItem, size_t pos) 
     {
         // MacOS counts menu items from 1 and inserts after, therefore having the
@@ -217,7 +216,7 @@ public :
                 MenuRef submenu = pItem->GetSubMenu()->GetHMenu();
                 SetMenuItemHierarchicalMenu(m_osxMenu, index, submenu);
                 // carbon is using the title of the submenu, eg in the menubar
-                SetMenuTitleWithCFString(submenu, wxCFStringRef(wxStripMenuCodes(pItem->GetLabel())));
+                SetMenuTitleWithCFString(submenu, wxCFStringRef(pItem->GetItemLabelText()));
             }
             else
             {
@@ -244,8 +243,6 @@ public :
                 DeleteMenuItem(m_osxMenu , i);
                 impl->AttachToParent( NULL, 0 );
             }
-            
-            delete entry;
         }
     }
     
@@ -261,6 +258,24 @@ public :
 
     WXHMENU GetHMenu() { return m_osxMenu; }
 
+    virtual void PopUp( wxWindow *WXUNUSED(win), int x, int y )
+    {
+        long menuResult = ::PopUpMenuSelect(m_osxMenu, y, x, 0) ;
+        if ( HiWord(menuResult) != 0 )
+        {
+            MenuCommand macid;
+            GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &macid );
+            int id = wxMacCommandToId( macid );
+            wxMenuItem* item = NULL ;
+            wxMenu* realmenu ;
+            item = m_peer->FindItem( id, &realmenu ) ;
+            if ( item )
+            {
+                m_peer->HandleCommandProcess(item, NULL );
+            }
+        }
+    }
+
     static wxMenuImpl* Create( wxMenu* peer, const wxString& title );
     static wxMenuImpl* CreateRootMenu( wxMenu* peer );
 protected :