X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b1d2207ea3fe0b04d021bc9e7fa31a5d9464727..5fc01d1326a34223746546326a7f616df8bfa991:/src/mac/carbon/menu.cpp diff --git a/src/mac/carbon/menu.cpp b/src/mac/carbon/menu.cpp index 70ea0b4fba..9a04c36935 100644 --- a/src/mac/carbon/menu.cpp +++ b/src/mac/carbon/menu.cpp @@ -70,11 +70,11 @@ void wxMenu::Init() // create the menu m_macMenuId = s_macNextMenuId++; - m_hMenu = UMANewMenu(m_macMenuId, m_title); + m_hMenu = UMANewMenu(m_macMenuId, m_title, wxFont::GetDefaultEncoding() ); if ( !m_hMenu ) { - wxLogLastError("UMANewMenu failed"); + wxLogLastError(wxT("UMANewMenu failed")); } // if we have a title, insert it in the beginning of the menu @@ -130,9 +130,9 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) } if ( pos == (size_t)-1 ) - UMAAppendSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText(), pSubMenu->m_macMenuId); + UMAAppendSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText(), wxFont::GetDefaultEncoding() , pSubMenu->m_macMenuId); else - UMAInsertSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText() , pos, pSubMenu->m_macMenuId); + UMAInsertSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText(), wxFont::GetDefaultEncoding() , pos, pSubMenu->m_macMenuId); pItem->UpdateItemBitmap() ; pItem->UpdateItemStatus() ; } @@ -140,7 +140,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) { if ( pos == (size_t)-1 ) { - UMAAppendMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") ); + UMAAppendMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") , wxFont::GetDefaultEncoding() ); pos = CountMenuItems(MAC_WXHMENU(m_hMenu)) ; } else @@ -148,7 +148,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) // MacOS counts menu items from 1 and inserts after, therefore having the // same effect as wx 0 based and inserting before, we must correct pos // after however for updates to be correct - UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") , pos); + UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), wxT("a"), wxFont::GetDefaultEncoding(), pos); pos += 1 ; } @@ -177,9 +177,9 @@ void wxMenu::EndRadioGroup() m_startRadioGroup = -1; } -bool wxMenu::DoAppend(wxMenuItem *item) +wxMenuItem* wxMenu::DoAppend(wxMenuItem *item) { - wxCHECK_MSG( item, FALSE, _T("NULL item in wxMenu::DoAppend") ); + wxCHECK_MSG( item, NULL, _T("NULL item in wxMenu::DoAppend") ); bool check = FALSE; @@ -222,7 +222,7 @@ bool wxMenu::DoAppend(wxMenuItem *item) if ( !wxMenuBase::DoAppend(item) || !DoInsertOrAppend(item) ) { - return FALSE; + return NULL; } if ( check ) @@ -231,12 +231,15 @@ bool wxMenu::DoAppend(wxMenuItem *item) item->Check(TRUE); } - return TRUE; + return item; } -bool wxMenu::DoInsert(size_t pos, wxMenuItem *item) +wxMenuItem* wxMenu::DoInsert(size_t pos, wxMenuItem *item) { - return wxMenuBase::DoInsert(pos, item) && DoInsertOrAppend(item, pos); + if (wxMenuBase::DoInsert(pos, item) && DoInsertOrAppend(item, pos)) + return item; + else + return NULL; } wxMenuItem *wxMenu::DoRemove(wxMenuItem *item) @@ -270,21 +273,12 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item) void wxMenu::SetTitle(const wxString& label) { m_title = label ; - UMASetMenuTitle(MAC_WXHMENU(m_hMenu) , label ) ; + UMASetMenuTitle(MAC_WXHMENU(m_hMenu) , label , wxFont::GetDefaultEncoding() ) ; } bool wxMenu::ProcessCommand(wxCommandEvent & event) { bool processed = FALSE; -#if WXWIN_COMPATIBILITY - // Try a callback - if (m_callback) - { - (void)(*(m_callback))(*this, event); - processed = TRUE; - } -#endif WXWIN_COMPATIBILITY - // Try the menu's event handler if ( !processed && GetEventHandler()) { @@ -586,7 +580,7 @@ void wxMenuBar::MacInstallMenuBar() if ( item->GetId() == wxApp::s_macAboutMenuItemId ) { - UMASetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetText() ); + UMASetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetText() , wxFont::GetDefaultEncoding() ); UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 , true ); SetMenuItemCommandID( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetId() ) ; UMASetMenuItemShortcut( GetMenuHandle( kwxMacAppleMenuId ) , 1 , entry ) ; @@ -595,7 +589,7 @@ void wxMenuBar::MacInstallMenuBar() { if ( mh ) { - UMAAppendMenuItem(mh, item->GetText() , entry ); + UMAAppendMenuItem(mh, item->GetText() , wxFont::GetDefaultEncoding(), entry); SetMenuItemCommandID( mh , CountMenuItems(mh) , item->GetId() ) ; } } @@ -607,7 +601,7 @@ void wxMenuBar::MacInstallMenuBar() } else { - UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , m_titles[i] ) ; + UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , m_titles[i], m_font.GetEncoding() ) ; m_menus[i]->MacBeforeDisplay(false) ; ::InsertMenu(MAC_WXHMENU(m_menus[i]->GetHMenu()), 0); } @@ -690,7 +684,7 @@ wxMenu *wxMenuBar::Replace(size_t pos, wxMenu *menu, const wxString& title) ::DeleteMenu( menuOld->MacGetMenuId() /* m_menus[pos]->MacGetMenuId() */ ) ; { menu->MacBeforeDisplay( false ) ; - UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title ) ; + UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title , m_font.GetEncoding() ) ; if ( pos == m_menus.GetCount() - 1) { ::InsertMenu( MAC_WXHMENU(menu->GetHMenu()) , 0 ) ; @@ -715,7 +709,7 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title) m_titles.Insert(title, pos); - UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title ) ; + UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title , m_font.GetEncoding() ) ; if ( IsAttached() && s_macInstalledMenuBar == this ) { @@ -750,12 +744,10 @@ wxMenu *wxMenuBar::Remove(size_t pos) ::DeleteMenu( menu->MacGetMenuId() /* m_menus[pos]->MacGetMenuId() */ ) ; } - menu->Detach(); - Refresh(); } - m_titles.Remove(pos); + m_titles.RemoveAt(pos); return menu; } @@ -770,7 +762,7 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title) m_titles.Add(title); - UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title ) ; + UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title , m_font.GetEncoding() ) ; if ( IsAttached() ) {