1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-17 00:20:06 +02:00

Fix OSX special menu items (About, Preferences, Quit)

And convert a few more command manager arguments to const
This commit is contained in:
Leland Lucius 2015-08-16 06:18:41 -05:00
parent b7fc0e4631
commit 7757297d82
3 changed files with 33 additions and 33 deletions

View File

@ -1159,14 +1159,14 @@ bool AudacityApp::OnInit()
#ifdef AUDACITY_NAME
wxString appName = wxT(AUDACITY_NAME);
wxString vendorName = wxT(AUDACITY_NAME);
#else
wxString vendorName = wxT("Audacity");
wxString appName = wxT("Audacity");
#endif
wxTheApp->SetVendorName(vendorName);
wxTheApp->SetAppName(appName);
// Explicitly set since OSX will use it for the "Quit" menu item
wxTheApp->SetAppDisplayName(wxT("Audacity"));
wxTheApp->SetVendorName(wxT("Audacity"));
// Unused strings that we want to be translated, even though
// we're not using them yet...

View File

@ -450,7 +450,7 @@ void CommandManager::PurgeData()
/// Names it according to the passed-in string argument.
///
/// If the menubar already exists, simply returns it.
wxMenuBar *CommandManager::AddMenuBar(wxString sMenu)
wxMenuBar *CommandManager::AddMenuBar(const wxString & sMenu)
{
wxMenuBar *menuBar = GetMenuBar(sMenu);
if (menuBar)
@ -470,7 +470,7 @@ wxMenuBar *CommandManager::AddMenuBar(wxString sMenu)
///
/// Retrieves the menubar based on the name given in AddMenuBar(name)
///
wxMenuBar * CommandManager::GetMenuBar(wxString sMenu) const
wxMenuBar * CommandManager::GetMenuBar(const wxString & sMenu) const
{
for(unsigned int i = 0; i < mMenuBarList.GetCount(); i++)
{
@ -495,29 +495,26 @@ wxMenuBar * CommandManager::CurrentMenuBar() const
///
/// This makes a new menu and adds it to the 'CurrentMenuBar'
/// This starts a new menu
///
/// If the menu already exists, all of the items in it are
/// cleared instead.
///
void CommandManager::BeginMenu(wxString tNameIn)
void CommandManager::BeginMenu(const wxString & tName)
{
wxString tName = tNameIn;
wxMenu *tmpMenu = new wxMenu();
mCurrentMenu = tmpMenu;
mCurrentMenuName = tName;
CurrentMenuBar()->Append(mCurrentMenu, tName);
}
///
/// This ends a menu by setting the pointer to it
/// to NULL. It is still attached to the CurrentMenuBar()
/// This attaches a menu to the menubar and ends the menu
///
void CommandManager::EndMenu()
{
// Add the menu to the menubard after all menu items have been
// added to the menu to allow OSX to rearrange special menu
// items like Preferences, About, and Quit.
CurrentMenuBar()->Append(mCurrentMenu, mCurrentMenuName);
mCurrentMenu = NULL;
mCurrentMenuName = COMMAND;
}
@ -526,10 +523,8 @@ void CommandManager::EndMenu()
///
/// This starts a new submenu, and names it according to
/// the function's argument.
wxMenu* CommandManager::BeginSubMenu(wxString tNameIn)
wxMenu* CommandManager::BeginSubMenu(const wxString & tName)
{
wxString tName = tNameIn;
SubMenuListEntry *tmpEntry = new SubMenuListEntry;
tmpEntry->menu = new wxMenu();
@ -597,12 +592,12 @@ wxMenu * CommandManager::CurrentMenu() const
///
/// Add a menu item to the current menu. When the user selects it, the
/// given functor will be called
void CommandManager::InsertItem(wxString name, wxString label_in,
CommandFunctor *callback, wxString after,
void CommandManager::InsertItem(const wxString & name,
const wxString & label_in,
CommandFunctor *callback,
const wxString & after,
int checkmark)
{
wxString label = label_in;
wxMenuBar *bar = GetActiveProject()->GetMenuBar();
wxArrayString names = ::wxStringTokenize(after, wxT(":"));
size_t cnt = names.GetCount();
@ -649,9 +644,9 @@ void CommandManager::InsertItem(wxString name, wxString label_in,
}
}
CommandListEntry *entry = NewIdentifier(name, label, menu, callback, false, 0, 0);
CommandListEntry *entry = NewIdentifier(name, label_in, menu, callback, false, 0, 0);
int ID = entry->id;
label = GetLabel(entry);
wxString label = GetLabel(entry);
if (checkmark >= 0) {
menu->InsertCheckItem(pos, ID, label);
@ -727,7 +722,8 @@ void CommandManager::AddItem(const wxChar *name,
/// with its position in the list as the index number.
/// When you call Enable on this command name, it will enable or disable
/// all of the items at once.
void CommandManager::AddItemList(wxString name, wxArrayString labels,
void CommandManager::AddItemList(const wxString & name,
const wxArrayString & labels,
CommandFunctor *callback)
{
for (size_t i = 0, cnt = labels.GetCount(); i < cnt; i++) {

View File

@ -90,21 +90,25 @@ class AUDACITY_DLL_API CommandManager: public XMLTagHandler
// Creating menus and adding commands
//
wxMenuBar *AddMenuBar(wxString sMenu);
wxMenuBar *AddMenuBar(const wxString & sMenu);
void BeginMenu(wxString tName);
void BeginMenu(const wxString & tName);
void EndMenu();
wxMenu* BeginSubMenu(wxString tName);
wxMenu* BeginSubMenu(const wxString & tName);
void EndSubMenu();
void SetToMenu( wxMenu * menu ){
mCurrentMenu = menu;
};
void InsertItem(wxString name, wxString label, CommandFunctor *callback,
wxString after, int checkmark = -1);
void InsertItem(const wxString & name,
const wxString & label,
CommandFunctor *callback,
const wxString & after,
int checkmark = -1);
void AddItemList(wxString name, wxArrayString labels,
void AddItemList(const wxString & name,
const wxArrayString & labels,
CommandFunctor *callback);
void AddCheck(const wxChar *name,
@ -267,7 +271,7 @@ protected:
//
wxMenuBar * CurrentMenuBar() const;
wxMenuBar * GetMenuBar(wxString sMenu) const;
wxMenuBar * GetMenuBar(const wxString & sMenu) const;
wxMenu * CurrentSubMenu() const;
wxMenu * CurrentMenu() const;
wxString GetLabel(const CommandListEntry *entry) const;