mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-15 07:01:18 +02:00
Use make_unique for wxMenu objects
This commit is contained in:
@@ -1434,17 +1434,18 @@ bool AudacityApp::OnInit()
|
|||||||
// On the Mac, users don't expect a program to quit when you close the last window.
|
// On the Mac, users don't expect a program to quit when you close the last window.
|
||||||
// Create a menubar that will show when all project windows are closed.
|
// Create a menubar that will show when all project windows are closed.
|
||||||
|
|
||||||
wxMenu *fileMenu = new wxMenu();
|
auto fileMenu = std::make_unique<wxMenu>();
|
||||||
wxMenu *recentMenu = new wxMenu();
|
auto urecentMenu = std::make_unique<wxMenu>();
|
||||||
|
auto recentMenu = urecentMenu.get();
|
||||||
fileMenu->Append(wxID_NEW, wxString(_("&New")) + wxT("\tCtrl+N"));
|
fileMenu->Append(wxID_NEW, wxString(_("&New")) + wxT("\tCtrl+N"));
|
||||||
fileMenu->Append(wxID_OPEN, wxString(_("&Open...")) + wxT("\tCtrl+O"));
|
fileMenu->Append(wxID_OPEN, wxString(_("&Open...")) + wxT("\tCtrl+O"));
|
||||||
fileMenu->AppendSubMenu(recentMenu, _("Open &Recent..."));
|
fileMenu->AppendSubMenu(urecentMenu.release(), _("Open &Recent..."));
|
||||||
fileMenu->Append(wxID_ABOUT, _("&About Audacity..."));
|
fileMenu->Append(wxID_ABOUT, _("&About Audacity..."));
|
||||||
fileMenu->Append(wxID_PREFERENCES, wxString(_("&Preferences...")) + wxT("\tCtrl+,"));
|
fileMenu->Append(wxID_PREFERENCES, wxString(_("&Preferences...")) + wxT("\tCtrl+,"));
|
||||||
|
|
||||||
{
|
{
|
||||||
auto menuBar = std::make_unique<wxMenuBar>();
|
auto menuBar = std::make_unique<wxMenuBar>();
|
||||||
menuBar->Append(fileMenu, _("&File"));
|
menuBar->Append(fileMenu.release(), _("&File"));
|
||||||
|
|
||||||
// PRL: Are we sure wxWindows will not leak this menuBar?
|
// PRL: Are we sure wxWindows will not leak this menuBar?
|
||||||
// The online documentation is not explicit.
|
// The online documentation is not explicit.
|
||||||
|
@@ -3290,7 +3290,6 @@ void EffectUIHost::OnDebug(wxCommandEvent & evt)
|
|||||||
void EffectUIHost::OnMenu(wxCommandEvent & WXUNUSED(evt))
|
void EffectUIHost::OnMenu(wxCommandEvent & WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
wxMenu menu;
|
wxMenu menu;
|
||||||
wxMenu *sub;
|
|
||||||
|
|
||||||
LoadUserPresets();
|
LoadUserPresets();
|
||||||
|
|
||||||
@@ -3300,12 +3299,12 @@ void EffectUIHost::OnMenu(wxCommandEvent & WXUNUSED(evt))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub = new wxMenu();
|
auto sub = std::make_unique<wxMenu>();
|
||||||
for (size_t i = 0, cnt = mUserPresets.GetCount(); i < cnt; i++)
|
for (size_t i = 0, cnt = mUserPresets.GetCount(); i < cnt; i++)
|
||||||
{
|
{
|
||||||
sub->Append(kUserPresetsID + i, mUserPresets[i]);
|
sub->Append(kUserPresetsID + i, mUserPresets[i]);
|
||||||
}
|
}
|
||||||
menu.Append(0, _("User Presets"), sub);
|
menu.Append(0, _("User Presets"), sub.release());
|
||||||
}
|
}
|
||||||
|
|
||||||
menu.Append(kSaveAsID, _("Save Preset..."));
|
menu.Append(kSaveAsID, _("Save Preset..."));
|
||||||
@@ -3316,35 +3315,37 @@ void EffectUIHost::OnMenu(wxCommandEvent & WXUNUSED(evt))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub = new wxMenu();
|
auto sub = std::make_unique<wxMenu>();
|
||||||
for (size_t i = 0, cnt = mUserPresets.GetCount(); i < cnt; i++)
|
for (size_t i = 0, cnt = mUserPresets.GetCount(); i < cnt; i++)
|
||||||
{
|
{
|
||||||
sub->Append(kDeletePresetID + i, mUserPresets[i]);
|
sub->Append(kDeletePresetID + i, mUserPresets[i]);
|
||||||
}
|
}
|
||||||
menu.Append(0, _("Delete Preset"), sub);
|
menu.Append(0, _("Delete Preset"), sub.release());
|
||||||
}
|
}
|
||||||
|
|
||||||
menu.AppendSeparator();
|
menu.AppendSeparator();
|
||||||
|
|
||||||
wxArrayString factory = mEffect->GetFactoryPresets();
|
wxArrayString factory = mEffect->GetFactoryPresets();
|
||||||
|
|
||||||
sub = new wxMenu();
|
|
||||||
sub->Append(kDefaultsID, _("Defaults"));
|
|
||||||
if (factory.GetCount() > 0)
|
|
||||||
{
|
{
|
||||||
sub->AppendSeparator();
|
auto sub = std::make_unique<wxMenu>();
|
||||||
for (size_t i = 0, cnt = factory.GetCount(); i < cnt; i++)
|
sub->Append(kDefaultsID, _("Defaults"));
|
||||||
|
if (factory.GetCount() > 0)
|
||||||
{
|
{
|
||||||
wxString label = factory[i];
|
sub->AppendSeparator();
|
||||||
if (label.IsEmpty())
|
for (size_t i = 0, cnt = factory.GetCount(); i < cnt; i++)
|
||||||
{
|
{
|
||||||
label = _("None");
|
wxString label = factory[i];
|
||||||
}
|
if (label.IsEmpty())
|
||||||
|
{
|
||||||
|
label = _("None");
|
||||||
|
}
|
||||||
|
|
||||||
sub->Append(kFactoryPresetsID + i, label);
|
sub->Append(kFactoryPresetsID + i, label);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
menu.Append(0, _("Factory Presets"), sub.release());
|
||||||
}
|
}
|
||||||
menu.Append(0, _("Factory Presets"), sub);
|
|
||||||
|
|
||||||
menu.AppendSeparator();
|
menu.AppendSeparator();
|
||||||
menu.Append(kImportID, _("Import..."))->Enable(mClient->CanExportPresets());
|
menu.Append(kImportID, _("Import..."))->Enable(mClient->CanExportPresets());
|
||||||
@@ -3353,15 +3354,17 @@ void EffectUIHost::OnMenu(wxCommandEvent & WXUNUSED(evt))
|
|||||||
menu.Append(kOptionsID, _("Options..."))->Enable(mClient->HasOptions());
|
menu.Append(kOptionsID, _("Options..."))->Enable(mClient->HasOptions());
|
||||||
menu.AppendSeparator();
|
menu.AppendSeparator();
|
||||||
|
|
||||||
sub = new wxMenu();
|
{
|
||||||
|
auto sub = std::make_unique<wxMenu>();
|
||||||
|
|
||||||
sub->Append(kDummyID, wxString::Format(_("Type: %s"), mEffect->GetFamily().c_str()));
|
sub->Append(kDummyID, wxString::Format(_("Type: %s"), mEffect->GetFamily().c_str()));
|
||||||
sub->Append(kDummyID, wxString::Format(_("Name: %s"), mEffect->GetName().c_str()));
|
sub->Append(kDummyID, wxString::Format(_("Name: %s"), mEffect->GetName().c_str()));
|
||||||
sub->Append(kDummyID, wxString::Format(_("Version: %s"), mEffect->GetVersion().c_str()));
|
sub->Append(kDummyID, wxString::Format(_("Version: %s"), mEffect->GetVersion().c_str()));
|
||||||
sub->Append(kDummyID, wxString::Format(_("Vendor: %s"), mEffect->GetVendor().c_str()));
|
sub->Append(kDummyID, wxString::Format(_("Vendor: %s"), mEffect->GetVendor().c_str()));
|
||||||
sub->Append(kDummyID, wxString::Format(_("Description: %s"), mEffect->GetDescription().c_str()));
|
sub->Append(kDummyID, wxString::Format(_("Description: %s"), mEffect->GetDescription().c_str()));
|
||||||
|
|
||||||
menu.Append(0, _("About"), sub);
|
menu.Append(0, _("About"), sub.release());
|
||||||
|
}
|
||||||
|
|
||||||
wxWindow *btn = FindWindow(kMenuID);
|
wxWindow *btn = FindWindow(kMenuID);
|
||||||
wxRect r = btn->GetRect();
|
wxRect r = btn->GetRect();
|
||||||
|
Reference in New Issue
Block a user