Use macro safenew for many allocations of wxWindow subclasses

This commit is contained in:
Paul Licameli 2016-02-13 18:06:49 -05:00
parent 6052b5f9be
commit 3f237daddc
42 changed files with 238 additions and 214 deletions

View File

@ -194,7 +194,7 @@ AboutDialog::AboutDialog(wxWindow * parent)
* In English it is slightly humorous alternative to an 'OK' button.
* If the humour doesn't work in your language, then just use whatever
* you would use for a translation for 'OK' on a button. */
wxButton *ok = new wxButton(S.GetParent(), wxID_OK, _("OK... Audacious!"));
wxButton *ok = safenew wxButton(S.GetParent(), wxID_OK, _("OK... Audacious!"));
ok->SetDefault();
S.Prop(0).AddWindow( ok );
@ -286,7 +286,7 @@ visit our <a href=\"http://forum.audacityteam.org/\">forum</a>.");
S.StartVerticalLay(1);
//v For now, change to AudacityLogoWithName via old-fashioned way, not Theme.
logo = new wxBitmap((const char **) AudacityLogoWithName_xpm); //v
wxBitmap *const logo = new wxBitmap((const char **) AudacityLogoWithName_xpm); //v
// JKC: Resize to 50% of size. Later we may use a smaller xpm as
// our source, but this allows us to tweak the size - if we want to.
@ -298,7 +298,7 @@ visit our <a href=\"http://forum.audacityteam.org/\">forum</a>.");
wxBitmap RescaledBitmap( RescaledImage );
icon =
new wxStaticBitmap(S.GetParent(), -1,
safenew wxStaticBitmap(S.GetParent(), -1,
//*logo, //v
//v theTheme.Bitmap(bmpAudacityLogo), wxPoint(93, 10), wxSize(215, 190));
//v theTheme.Bitmap(bmpAudacityLogoWithName),
@ -308,7 +308,7 @@ visit our <a href=\"http://forum.audacityteam.org/\">forum</a>.");
delete logo;
S.Prop(0).AddWindow( icon );
HtmlWindow *html = new LinkingHtmlWindow(S.GetParent(), -1,
HtmlWindow *html = safenew LinkingHtmlWindow(S.GetParent(), -1,
wxDefaultPosition,
wxSize(ABOUT_DIALOG_WIDTH, 359),
wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER);
@ -332,7 +332,7 @@ void AboutDialog::PopulateInformationPage( ShuttleGui & S )
wxString informationStr; // string to build up list of information in
S.StartNotebookPage( _("Build Information") ); // start the tab
S.StartVerticalLay(2); // create the window
HtmlWindow *html = new LinkingHtmlWindow(S.GetParent(), -1, wxDefaultPosition,
HtmlWindow *html = safenew LinkingHtmlWindow(S.GetParent(), -1, wxDefaultPosition,
wxSize(ABOUT_DIALOG_WIDTH, 264),
wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER);
// create a html pane in it to put the content in.
@ -559,7 +559,7 @@ void AboutDialog::PopulateLicensePage( ShuttleGui & S )
{
S.StartNotebookPage( _("GPL License") );
S.StartVerticalLay(1);
HtmlWindow *html = new LinkingHtmlWindow(S.GetParent(), -1,
HtmlWindow *html = safenew LinkingHtmlWindow(S.GetParent(), -1,
wxDefaultPosition,
wxSize(ABOUT_DIALOG_WIDTH, 264),
wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER);
@ -918,8 +918,6 @@ void AboutDialog::AddBuildinfoRow( wxString* htmlstring, const wxChar * libname,
AboutDialog::~AboutDialog()
{
delete icon;
// delete logo;
}
void AboutDialog::OnOK(wxCommandEvent & WXUNUSED(event))

View File

@ -54,7 +54,6 @@ class AboutDialog:public wxDialog {
wxBoxSizer *topsizer;
wxStaticBitmap *icon;
wxBitmap *logo; //v
DECLARE_EVENT_TABLE()

View File

@ -152,7 +152,7 @@ void BatchProcessDialog::OnApplyToProject(wxCommandEvent & WXUNUSED(event))
}
wxString name = mChains->GetItemText(item);
wxDialog * pD = new wxDialog(this, wxID_ANY, GetTitle());
wxDialog * pD = safenew wxDialog(this, wxID_ANY, GetTitle());
pD->SetName(pD->GetTitle());
ShuttleGui S(pD, eIsCreating);
@ -292,7 +292,7 @@ void BatchProcessDialog::OnApplyToFiles(wxCommandEvent & WXUNUSED(event))
files.Sort();
wxDialog * pD = new wxDialog(this, wxID_ANY, GetTitle());
wxDialog * pD = safenew wxDialog(this, wxID_ANY, GetTitle());
pD->SetName(pD->GetTitle());
ShuttleGui S(pD, eIsCreating);

View File

@ -304,7 +304,7 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
{
S.StartVerticalLay();
{
mPanScroller = new wxScrollBar(this, FreqPanScrollerID,
mPanScroller = safenew wxScrollBar(this, FreqPanScrollerID,
wxDefaultPosition, wxDefaultSize, wxSB_VERTICAL);
mPanScroller->SetName(_("Scroll"));
S.Prop(1);
@ -314,12 +314,12 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
S.StartVerticalLay();
{
wxStaticBitmap *zi = new wxStaticBitmap(this, wxID_ANY, wxBitmap(ZoomIn));
wxStaticBitmap *zi = safenew wxStaticBitmap(this, wxID_ANY, wxBitmap(ZoomIn));
S.AddWindow((wxWindow *) zi, wxALIGN_CENTER);
S.AddSpace(5);
mZoomSlider = new wxSlider(this, FreqZoomSliderID, 100, 1, 100,
mZoomSlider = safenew wxSlider(this, FreqZoomSliderID, 100, 1, 100,
wxDefaultPosition, wxDefaultSize, wxSL_VERTICAL);
S.Prop(1);
S.AddWindow(mZoomSlider, wxALIGN_CENTER_HORIZONTAL);
@ -327,7 +327,7 @@ FreqWindow::FreqWindow(wxWindow * parent, wxWindowID id,
S.AddSpace(5);
wxStaticBitmap *zo = new wxStaticBitmap(this, wxID_ANY, wxBitmap(ZoomOut));
wxStaticBitmap *zo = safenew wxStaticBitmap(this, wxID_ANY, wxBitmap(ZoomOut));
S.AddWindow((wxWindow *) zo, wxALIGN_CENTER);
}
S.EndVerticalLay();

View File

@ -98,7 +98,7 @@ HistoryWindow::HistoryWindow(AudacityProject *parent, UndoManager *manager):
S.AddVariableText(wxT(""))->Hide();
S.AddPrompt(_("&Levels To Discard"));
mLevels = new wxSpinCtrl(this,
mLevels = safenew wxSpinCtrl(this,
ID_LEVELS,
wxT("1"),
wxDefaultPosition,

View File

@ -110,7 +110,7 @@ LabelDialog::LabelDialog(wxWindow *parent,
// A little instruction
wxStaticText *instruct =
new wxStaticText(this,
safenew wxStaticText(this,
wxID_ANY,
_("Press F2 or double click to edit cell contents."));
instruct->SetName(instruct->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
@ -125,11 +125,11 @@ LabelDialog::LabelDialog(wxWindow *parent,
// Create the action buttons
wxBoxSizer *hs = new wxBoxSizer(wxHORIZONTAL);
hs->Add(new wxButton(this, ID_INSERTA, _("Insert &After")), 1, wxCENTER | wxALL, 5);
hs->Add(new wxButton(this, ID_INSERTB, _("Insert &Before")), 1, wxCENTER | wxALL, 5);
hs->Add(new wxButton(this, ID_REMOVE, _("&Remove")), 1, wxCENTER | wxALL, 5);
hs->Add(new wxButton(this, ID_IMPORT, _("&Import...")), 1, wxCENTER | wxALL, 5);
hs->Add(new wxButton(this, ID_EXPORT, _("&Export...")), 1, wxCENTER | wxALL, 5);
hs->Add(safenew wxButton(this, ID_INSERTA, _("Insert &After")), 1, wxCENTER | wxALL, 5);
hs->Add(safenew wxButton(this, ID_INSERTB, _("Insert &Before")), 1, wxCENTER | wxALL, 5);
hs->Add(safenew wxButton(this, ID_REMOVE, _("&Remove")), 1, wxCENTER | wxALL, 5);
hs->Add(safenew wxButton(this, ID_IMPORT, _("&Import...")), 1, wxCENTER | wxALL, 5);
hs->Add(safenew wxButton(this, ID_EXPORT, _("&Export...")), 1, wxCENTER | wxALL, 5);
vs->Add(hs, 0, wxEXPAND | wxCENTER | wxALL, 5);
// Create the exit buttons

View File

@ -86,8 +86,9 @@ LyricsWindow::LyricsWindow(AudacityProject *parent):
//
//wxToolBar* pToolBar = this->CreateToolBar();
//const int kHorizMargin = 8;
//wxASSERT(pToolBar); // To justify safenew
//wxRadioButton* pRadioButton_BouncingBall =
// new wxRadioButton(pToolBar, kID_RadioButton_BouncingBall, _("Bouncing Ball"), wxPoint(kHorizMargin, 4),
// safenew wxRadioButton(pToolBar, kID_RadioButton_BouncingBall, _("Bouncing Ball"), wxPoint(kHorizMargin, 4),
// wxDefaultSize, wxRB_GROUP);
//// Reposition to center vertically.
//wxSize tbSize = pToolBar->GetSize();
@ -98,7 +99,7 @@ LyricsWindow::LyricsWindow(AudacityProject *parent):
//
//int left = kHorizMargin + btnSize.GetWidth() + kHorizMargin; //vvv Doesn't actually work. Probably need sizers.
//wxRadioButton* pRadioButton_Highlight =
// new wxRadioButton(pToolBar, kID_RadioButton_Highlight, _("Highlight"), wxPoint(left, top));
// safenew wxRadioButton(pToolBar, kID_RadioButton_Highlight, _("Highlight"), wxPoint(left, top));
//pToolBar->AddControl(pRadioButton_Highlight);
//
//panelPos.x += tbSize.GetHeight();

View File

@ -190,10 +190,10 @@ MixerTrackCluster::MixerTrackCluster(wxWindow* parent,
wxSize ctrlSize(size.GetWidth() - kQuadrupleInset, TRACK_NAME_HEIGHT);
mStaticText_TrackName =
#ifdef EXPERIMENTAL_MIDI_OUT
new wxStaticText(this, -1, mTrack->GetName(), ctrlPos, ctrlSize,
safenew wxStaticText(this, -1, mTrack->GetName(), ctrlPos, ctrlSize,
wxALIGN_CENTRE | wxST_NO_AUTORESIZE | wxSUNKEN_BORDER);
#else
new wxStaticText(this, -1, mLeftTrack->GetName(), ctrlPos, ctrlSize,
safenew wxStaticText(this, -1, mLeftTrack->GetName(), ctrlPos, ctrlSize,
wxALIGN_CENTRE | 0x0001 | wxBORDER_SUNKEN);
#endif
//v Useful when different tracks are different colors, but not now.
@ -241,7 +241,7 @@ MixerTrackCluster::MixerTrackCluster(wxWindow* parent,
#endif
wxASSERT(bitmap);
mBitmapButton_MusicalInstrument =
new wxBitmapButton(this, ID_BITMAPBUTTON_MUSICAL_INSTRUMENT, *bitmap,
safenew wxBitmapButton(this, ID_BITMAPBUTTON_MUSICAL_INSTRUMENT, *bitmap,
ctrlPos, ctrlSize,
wxBU_AUTODRAW, wxDefaultValidator,
_("Musical Instrument"));

View File

@ -923,7 +923,7 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id,
// Not using a notebook, so we place the track panel inside another panel,
// this keeps the notebook code and normal code consistant and also
// paves the way for adding additional windows inside the track panel.
mMainPanel = new wxPanel(this, -1,
mMainPanel = safenew wxPanel(this, -1,
wxDefaultPosition,
wxDefaultSize,
wxNO_BORDER);

View File

@ -333,13 +333,14 @@ void ScreenFrame::PopulateOrExchange(ShuttleGui & S)
S.Id(IdMainWindowLarge).AddButton(_("Resize Large"));
/* i18n-hint: Bkgnd is short for background and appears on a small button
* It is OK to just translate this item as if it said 'Blue' */
mBlue = new wxToggleButton(p,
wxASSERT(p); // To justify safenew
mBlue = safenew wxToggleButton(p,
IdToggleBackgroundBlue,
_("Blue Bkgnd"));
S.AddWindow(mBlue);
/* i18n-hint: Bkgnd is short for background and appears on a small button
* It is OK to just translate this item as if it said 'White' */
mWhite = new wxToggleButton(p,
mWhite = safenew wxToggleButton(p,
IdToggleBackgroundWhite,
_("White Bkgnd"));
S.AddWindow(mWhite);

View File

@ -95,6 +95,7 @@ for registering for changes.
#include "Audacity.h"
#include <memory>
#include <wx/wx.h>
#include <wx/wxprec.h>
#include <wx/listctrl.h>
@ -216,7 +217,7 @@ void ShuttleGuiBase::AddPrompt(const wxString &Prompt)
if( mShuttleMode != eIsCreating )
return;
miProp=1;
mpWind = new wxStaticText(mpParent, -1, Prompt, wxDefaultPosition, wxDefaultSize,
mpWind = safenew wxStaticText(GetParent(), -1, Prompt, wxDefaultPosition, wxDefaultSize,
Style( wxALIGN_RIGHT ));
mpWind->SetName(wxStripMenuCodes(Prompt)); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
UpdateSizersCore( false, wxALL | wxALIGN_CENTRE_VERTICAL );
@ -230,7 +231,7 @@ void ShuttleGuiBase::AddUnits(const wxString &Prompt)
if( mShuttleMode != eIsCreating )
return;
miProp=1;
mpWind = new wxStaticText(mpParent, -1, Prompt, wxDefaultPosition, wxDefaultSize,
mpWind = safenew wxStaticText(GetParent(), -1, Prompt, wxDefaultPosition, wxDefaultSize,
Style( wxALIGN_LEFT ));
mpWind->SetName(Prompt); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
UpdateSizersCore( false, wxALL | wxALIGN_LEFT );
@ -243,7 +244,7 @@ void ShuttleGuiBase::AddTitle(const wxString &Prompt)
return;
if( mShuttleMode != eIsCreating )
return;
mpWind = new wxStaticText(mpParent, -1, Prompt, wxDefaultPosition, wxDefaultSize,
mpWind = safenew wxStaticText(GetParent(), -1, Prompt, wxDefaultPosition, wxDefaultSize,
Style( wxALIGN_CENTRE ));
mpWind->SetName(Prompt); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
UpdateSizers();
@ -268,7 +269,7 @@ wxCheckBox * ShuttleGuiBase::AddCheckBox( const wxString &Prompt, const wxString
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxCheckBox);
wxCheckBox * pCheckBox;
miProp=0;
mpWind = pCheckBox = new wxCheckBox(mpParent, miId, Prompt, wxDefaultPosition, wxDefaultSize,
mpWind = pCheckBox = safenew wxCheckBox(GetParent(), miId, Prompt, wxDefaultPosition, wxDefaultSize,
Style( 0 ));
pCheckBox->SetValue(Selected == wxT("true"));
pCheckBox->SetName(wxStripMenuCodes(Prompt));
@ -287,7 +288,7 @@ wxCheckBox * ShuttleGuiBase::AddCheckBoxOnRight( const wxString &Prompt, const w
wxCheckBox * pCheckBox;
miProp=0;
AddPrompt( Prompt );
mpWind = pCheckBox = new wxCheckBox(mpParent, miId, wxT(""), wxDefaultPosition, wxDefaultSize,
mpWind = pCheckBox = safenew wxCheckBox(GetParent(), miId, wxT(""), wxDefaultPosition, wxDefaultSize,
Style( 0 ));
pCheckBox->SetValue(Selected==wxT("true"));
pCheckBox->SetName(wxStripMenuCodes(Prompt));
@ -301,7 +302,7 @@ wxButton * ShuttleGuiBase::AddButton(const wxString &Text, int PositionFlags)
if( mShuttleMode != eIsCreating )
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxButton);
wxButton * pBtn;
mpWind = pBtn = new wxButton( mpParent, miId, Text, wxDefaultPosition, wxDefaultSize,
mpWind = pBtn = safenew wxButton(GetParent(), miId, Text, wxDefaultPosition, wxDefaultSize,
Style( 0 ) );
mpWind->SetName(wxStripMenuCodes(Text));
miProp=0;
@ -315,7 +316,7 @@ wxBitmapButton * ShuttleGuiBase::AddBitmapButton(const wxBitmap &Bitmap, int Pos
if( mShuttleMode != eIsCreating )
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxBitmapButton);
wxBitmapButton * pBtn;
mpWind = pBtn = new wxBitmapButton( mpParent, miId, Bitmap,
mpWind = pBtn = safenew wxBitmapButton(GetParent(), miId, Bitmap,
wxDefaultPosition, wxDefaultSize, Style( wxNO_BORDER ) );
pBtn->SetBackgroundColour(
wxColour( 246,246,243));
@ -334,8 +335,8 @@ wxChoice * ShuttleGuiBase::AddChoice( const wxString &Prompt, const wxString &Se
miProp=0;
AddPrompt( Prompt );
mpWind = pChoice = new wxChoice(
mpParent,
mpWind = pChoice = safenew wxChoice(
GetParent(),
miId,
wxDefaultPosition,
wxDefaultSize,
@ -355,7 +356,7 @@ void ShuttleGuiBase::AddFixedText(const wxString &Str, bool bCenter)
UseUpId();
if( mShuttleMode != eIsCreating )
return;
mpWind = new wxStaticText(mpParent, miId, Str, wxDefaultPosition, wxDefaultSize,
mpWind = safenew wxStaticText(GetParent(), miId, Str, wxDefaultPosition, wxDefaultSize,
Style( wxALIGN_LEFT ));
mpWind->SetName(wxStripMenuCodes(Str)); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
if( bCenter )
@ -374,7 +375,7 @@ wxStaticText * ShuttleGuiBase::AddVariableText(const wxString &Str, bool bCenter
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxStaticText);
wxStaticText *pStatic;
mpWind = pStatic = new wxStaticText(mpParent, miId, Str, wxDefaultPosition, wxDefaultSize,
mpWind = pStatic = safenew wxStaticText(GetParent(), miId, Str, wxDefaultPosition, wxDefaultSize,
Style( wxALIGN_LEFT ));
mpWind->SetName(wxStripMenuCodes(Str)); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
if( bCenter )
@ -412,7 +413,7 @@ wxComboBox * ShuttleGuiBase::AddCombo( const wxString &Prompt, const wxString &S
AddPrompt( Prompt );
mpWind = pCombo = new wxComboBox(mpParent, miId, Selected, wxDefaultPosition, wxDefaultSize,
mpWind = pCombo = safenew wxComboBox(GetParent(), miId, Selected, wxDefaultPosition, wxDefaultSize,
n, Choices, Style( style ));
mpWind->SetName(wxStripMenuCodes(Prompt));
@ -429,7 +430,7 @@ wxRadioButton * ShuttleGuiBase::AddRadioButton(const wxString &Prompt)
if( mShuttleMode != eIsCreating )
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxRadioButton);
wxRadioButton * pRad;
mpWind = pRad = new wxRadioButton( mpParent, miId, Prompt,
mpWind = pRad = safenew wxRadioButton(GetParent(), miId, Prompt,
wxDefaultPosition, wxDefaultSize, Style( wxRB_GROUP ) );
mpWind->SetName(wxStripMenuCodes(Prompt));
pRad->SetValue(true );
@ -443,7 +444,7 @@ wxRadioButton * ShuttleGuiBase::AddRadioButtonToGroup(const wxString &Prompt)
if( mShuttleMode != eIsCreating )
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxRadioButton);
wxRadioButton * pRad;
mpWind = pRad = new wxRadioButton( mpParent, miId, Prompt,
mpWind = pRad = safenew wxRadioButton(GetParent(), miId, Prompt,
wxDefaultPosition, wxDefaultSize, Style( 0 ) );
mpWind->SetName(wxStripMenuCodes(Prompt));
UpdateSizers();
@ -457,7 +458,7 @@ wxSlider * ShuttleGuiBase::AddSlider(const wxString &Prompt, int pos, int Max, i
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxSlider);
AddPrompt( Prompt );
wxSlider * pSlider;
mpWind = pSlider = new wxSlider( mpParent, miId,
mpWind = pSlider = safenew wxSlider(GetParent(), miId,
pos, Min, Max,
wxDefaultPosition, wxDefaultSize,
Style( wxSL_HORIZONTAL | wxSL_LABELS | wxSL_AUTOTICKS )
@ -475,7 +476,7 @@ wxSpinCtrl * ShuttleGuiBase::AddSpinCtrl(const wxString &Prompt, int Value, int
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxSpinCtrl);
AddPrompt( Prompt );
wxSpinCtrl * pSpinCtrl;
mpWind = pSpinCtrl = new wxSpinCtrl( mpParent, miId,
mpWind = pSpinCtrl = safenew wxSpinCtrl(GetParent(), miId,
wxEmptyString,
wxDefaultPosition, wxDefaultSize,
Style( wxSP_VERTICAL | wxSP_ARROW_KEYS ),
@ -508,7 +509,7 @@ wxTextCtrl * ShuttleGuiBase::AddTextBox(const wxString &Caption, const wxString
long flags = wxTE_LEFT;
#endif
mpWind = pTextCtrl = new wxTextCtrl(mpParent, miId, Value,
mpWind = pTextCtrl = safenew wxTextCtrl(GetParent(), miId, Value,
wxDefaultPosition, Size, Style( flags ));
mpWind->SetName(wxStripMenuCodes(Caption));
UpdateSizers();
@ -536,7 +537,7 @@ wxTextCtrl * ShuttleGuiBase::AddNumericTextBox(const wxString &Caption, const wx
#endif
wxTextValidator Validator(wxFILTER_NUMERIC);
mpWind = pTextCtrl = new wxTextCtrl(mpParent, miId, Value,
mpWind = pTextCtrl = safenew wxTextCtrl(GetParent(), miId, Value,
wxDefaultPosition, Size, Style( flags ),
Validator // It's OK to pass this. It will be cloned.
);
@ -553,7 +554,7 @@ wxTextCtrl * ShuttleGuiBase::AddTextWindow(const wxString &Value)
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxTextCtrl);
wxTextCtrl * pTextCtrl;
SetProportions( 1 );
mpWind = pTextCtrl = new wxTextCtrl(mpParent, miId, Value,
mpWind = pTextCtrl = safenew wxTextCtrl(GetParent(), miId, Value,
wxDefaultPosition, wxDefaultSize, Style( wxTE_MULTILINE ));
UpdateSizers();
// Start off at start of window...
@ -573,7 +574,7 @@ void ShuttleGuiBase::AddConstTextBox(const wxString &Prompt, const wxString &Val
AddPrompt( Prompt );
UpdateSizers();
miProp=0;
mpWind = new wxStaticText(mpParent, miId, Value, wxDefaultPosition, wxDefaultSize,
mpWind = safenew wxStaticText(GetParent(), miId, Value, wxDefaultPosition, wxDefaultSize,
Style( 0 ));
mpWind->SetName(Value); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
UpdateSizers();
@ -586,7 +587,7 @@ wxListBox * ShuttleGuiBase::AddListBox(const wxArrayString * pChoices, long styl
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxListBox);
wxListBox * pListBox;
SetProportions( 1 );
mpWind = pListBox = new wxListBox(mpParent, miId,
mpWind = pListBox = safenew wxListBox(GetParent(), miId,
wxDefaultPosition, wxDefaultSize,*pChoices, style);
pListBox->SetMinSize( wxSize( 120,150 ));
UpdateSizers();
@ -601,7 +602,7 @@ wxListCtrl * ShuttleGuiBase::AddListControl()
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxListCtrl);
wxListCtrl * pListCtrl;
SetProportions( 1 );
mpWind = pListCtrl = new wxListCtrl(mpParent, miId,
mpWind = pListCtrl = safenew wxListCtrl(GetParent(), miId,
wxDefaultPosition, wxDefaultSize, Style( wxLC_ICON ));
pListCtrl->SetMinSize( wxSize( 120,150 ));
UpdateSizers();
@ -615,7 +616,7 @@ wxGrid * ShuttleGuiBase::AddGrid()
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxGrid);
wxGrid * pGrid;
SetProportions( 1 );
mpWind = pGrid = new wxGrid(mpParent, miId, wxDefaultPosition,
mpWind = pGrid = safenew wxGrid(GetParent(), miId, wxDefaultPosition,
wxDefaultSize, Style( wxWANTS_CHARS ));
pGrid->SetMinSize( wxSize( 120, 150 ));
UpdateSizers();
@ -629,7 +630,7 @@ wxListCtrl * ShuttleGuiBase::AddListControlReportMode()
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxListCtrl);
wxListCtrl * pListCtrl;
SetProportions( 1 );
mpWind = pListCtrl = new wxListCtrl(mpParent, miId,
mpWind = pListCtrl = safenew wxListCtrl(GetParent(), miId,
wxDefaultPosition, wxSize(230,120),//wxDefaultSize,
Style( wxLC_REPORT | wxLC_HRULES | wxLC_VRULES | wxSUNKEN_BORDER ));
// pListCtrl->SetMinSize( wxSize( 120,150 ));
@ -644,7 +645,7 @@ wxTreeCtrl * ShuttleGuiBase::AddTree()
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxTreeCtrl);
wxTreeCtrl * pTreeCtrl;
SetProportions( 1 );
mpWind = pTreeCtrl = new wxTreeCtrl(mpParent, miId, wxDefaultPosition, wxDefaultSize,
mpWind = pTreeCtrl = safenew wxTreeCtrl(GetParent(), miId, wxDefaultPosition, wxDefaultSize,
Style( wxTR_HAS_BUTTONS ));
pTreeCtrl->SetMinSize( wxSize( 120,650 ));
UpdateSizers();
@ -658,7 +659,7 @@ void ShuttleGuiBase::AddIcon(wxBitmap *pBmp)
// return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wx);
return;
wxBitmapButton * pBtn;
mpWind = pBtn = new wxBitmapButton( mpParent, miId, *pBmp,
mpWind = pBtn = safenew wxBitmapButton(GetParent(), miId, *pBmp,
wxDefaultPosition, wxDefaultSize, Style( wxBU_AUTODRAW ) );
pBtn->SetWindowStyle( 0 );
UpdateSizersC();
@ -702,7 +703,7 @@ wxStaticBox * ShuttleGuiBase::StartStatic(const wxString &Str, int iProp)
mBoxName = Str;
if( mShuttleMode != eIsCreating )
return NULL;
wxStaticBox * pBox = new wxStaticBox(mpParent, miId,
wxStaticBox * pBox = safenew wxStaticBox(GetParent(), miId,
Str );
pBox->SetLabel( Str );
pBox->SetName(wxStripMenuCodes(Str));
@ -736,7 +737,7 @@ wxScrolledWindow * ShuttleGuiBase::StartScroller(int iStyle)
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxScrolledWindow);
wxScrolledWindow * pScroller;
mpWind = pScroller = new wxScrolledWindow( mpParent, miId, wxDefaultPosition, wxDefaultSize,
mpWind = pScroller = safenew wxScrolledWindow(GetParent(), miId, wxDefaultPosition, wxDefaultSize,
Style( wxSUNKEN_BORDER ) );
pScroller->SetScrollRate( 20,20 );
@ -792,7 +793,7 @@ wxPanel * ShuttleGuiBase::StartPanel(int iStyle)
if( mShuttleMode != eIsCreating )
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxPanel);
wxPanel * pPanel;
mpWind = pPanel = new wxPanel( mpParent, miId, wxDefaultPosition, wxDefaultSize,
mpWind = pPanel = safenew wxPanel( GetParent(), miId, wxDefaultPosition, wxDefaultSize,
Style( wxNO_BORDER ));
if( iStyle != 0 )
@ -829,7 +830,7 @@ wxNotebook * ShuttleGuiBase::StartNotebook()
if( mShuttleMode != eIsCreating )
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxNotebook);
wxNotebook * pNotebook;
mpWind = pNotebook = new wxNotebook(mpParent,
mpWind = pNotebook = safenew wxNotebook(GetParent(),
miId, wxDefaultPosition, wxDefaultSize, Style( 0 ));
SetProportions( 1 );
UpdateSizers();
@ -850,7 +851,7 @@ wxNotebookPage * ShuttleGuiBase::StartNotebookPage( const wxString & Name )
return NULL;
// return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wx);
wxNotebook * pNotebook = (wxNotebook*)mpParent;
wxNotebookPage * pPage = new wxPanel(mpParent );
wxNotebookPage * pPage = safenew wxPanel(GetParent());
pPage->SetName(Name);
pNotebook->AddPage(
@ -873,7 +874,7 @@ void ShuttleGuiBase::StartNotebookPage( const wxString & Name, wxNotebookPage *
return;
// return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wx);
wxNotebook * pNotebook = (wxNotebook*)mpParent;
// wxNotebookPage * pPage = new wxPanel(mpParent );
// wxNotebookPage * pPage = safenew wxPanel(GetParent());
pPage->Create( mpParent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, wxT("panel"));
pPage->SetName(Name);
@ -937,7 +938,7 @@ wxPanel * ShuttleGuiBase::StartInvisiblePanel()
if( mShuttleMode != eIsCreating )
return wxDynamicCast(wxWindow::FindWindowById( miId, mpDlg), wxPanel);
wxPanel * pPanel;
mpWind = pPanel = new wxPanel( mpParent, miId, wxDefaultPosition, wxDefaultSize,
mpWind = pPanel = safenew wxPanel(GetParent(), miId, wxDefaultPosition, wxDefaultSize,
wxNO_BORDER);
mpWind->SetBackgroundColour(
@ -1343,7 +1344,7 @@ wxRadioButton * ShuttleGuiBase::TieRadioButton(const wxString &Prompt, WrappedTy
{
case eIsCreating:
{
mpWind = pRadioButton = new wxRadioButton( mpParent, miId, Prompt,
mpWind = pRadioButton = safenew wxRadioButton(GetParent(), miId, Prompt,
wxDefaultPosition, wxDefaultSize,
(mRadioCount==1)?wxRB_GROUP:0);
pRadioButton->SetValue(WrappedRef.ValuesMatch( mRadioValue ));
@ -2117,77 +2118,80 @@ AttachableScrollBar * ShuttleGui::AddAttachableScrollBar( long style )
wxSizer *CreateStdButtonSizer(wxWindow *parent, long buttons, wxWindow *extra)
{
wxButton *b = new wxButton( parent, 0, wxEmptyString );
wxASSERT(parent != NULL); // To justify safenew
int margin;
{
#if defined(__WXMAC__)
margin = 12;
margin = 12;
#elif defined(__WXGTK20__)
margin = 12;
margin = 12;
#elif defined(__WXMSW__)
margin = b->ConvertDialogToPixels( wxSize( 2, 0 ) ).x;
wxButton b(parent, 0, wxEmptyString);
margin = b.ConvertDialogToPixels(wxSize(2, 0)).x;
#else
margin = b->ConvertDialogToPixels( wxSize( 4, 0 ) ).x;
wxButton b(parent, 0, wxEmptyString);
margin = b->ConvertDialogToPixels(wxSize(4, 0)).x;
#endif
}
delete b;
wxButton *b = NULL;
wxStdDialogButtonSizer *bs = new wxStdDialogButtonSizer();
if( buttons & eOkButton )
{
b = new wxButton( parent, wxID_OK );
b = safenew wxButton(parent, wxID_OK);
b->SetDefault();
bs->AddButton( b );
}
if( buttons & eCancelButton )
{
bs->AddButton( new wxButton( parent, wxID_CANCEL ) );
bs->AddButton(safenew wxButton(parent, wxID_CANCEL));
}
if( buttons & eYesButton )
{
b = new wxButton( parent, wxID_YES );
b = safenew wxButton(parent, wxID_YES);
b->SetDefault();
bs->AddButton( b );
}
if( buttons & eNoButton )
{
bs->AddButton( new wxButton( parent, wxID_NO ) );
bs->AddButton(safenew wxButton(parent, wxID_NO));
}
if( buttons & eApplyButton )
{
b = new wxButton( parent, wxID_APPLY );
b = safenew wxButton(parent, wxID_APPLY);
b->SetDefault();
bs->AddButton( b );
}
if( buttons & eCloseButton )
{
bs->AddButton( new wxButton( parent, wxID_CANCEL, _("&Close") ) );
bs->AddButton(safenew wxButton(parent, wxID_CANCEL, _("&Close")));
}
if( buttons & eHelpButton )
{
bs->AddButton( new wxButton( parent, wxID_HELP ) );
bs->AddButton(safenew wxButton(parent, wxID_HELP));
}
if (buttons & ePreviewButton)
{
bs->Add( new wxButton( parent, ePreviewID, _("Pre&view") ), 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, margin );
bs->Add(safenew wxButton(parent, ePreviewID, _("Pre&view")), 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, margin);
}
if (buttons & ePreviewDryButton)
{
bs->Add(new wxButton( parent, ePreviewDryID, _("Dry Previe&w") ), 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, margin );
bs->Add(safenew wxButton(parent, ePreviewDryID, _("Dry Previe&w")), 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, margin);
bs->Add( 20, 0 );
}
if( buttons & eSettingsButton )
{
bs->Add(new wxButton( parent, eSettingsID, _("&Settings") ), 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, margin );
bs->Add(safenew wxButton(parent, eSettingsID, _("&Settings")), 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, margin);
bs->Add( 20, 0 );
}
@ -2218,7 +2222,7 @@ wxSizer *CreateStdButtonSizer(wxWindow *parent, long buttons, wxWindow *extra)
}
}
b = new wxButton( parent, eDebugID, _("Debu&g") );
b = safenew wxButton(parent, eDebugID, _("Debu&g"));
bs->Insert( lastLastSpacer + 1, b, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, margin );
}

View File

@ -256,7 +256,13 @@ public:
void SetStretchyRow( int i );
//--Some Additions since June 2007 that don't fit in elsewhere...
wxWindow * GetParent() {return mpParent;};
wxWindow * GetParent()
{
// This assertion justifies the use of safenew in many places where GetParent()
// is used to construct a window
wxASSERT(mpParent != NULL);
return mpParent;
}
ShuttleGuiBase & Prop( int iProp );
int GetId() {return miIdNext;};
void UseUpId();

View File

@ -65,7 +65,6 @@ SplashDialog::SplashDialog(wxWindow * parent)
{
SetName(GetTitle());
this->SetBackgroundColour(theTheme.Colour( clrAboutBoxBackground ));
m_pIcon = NULL;
m_pLogo = NULL; //v
ShuttleGui S( this, eIsCreating );
Populate( S );
@ -94,16 +93,16 @@ void SplashDialog::Populate( ShuttleGui & S )
// wxIMAGE_QUALITY_HIGH not supported by wxWidgets 2.6.1, or we would use it here.
RescaledImage.Rescale( int(LOGOWITHNAME_WIDTH * fScale), int(LOGOWITHNAME_HEIGHT *fScale) );
wxBitmap RescaledBitmap( RescaledImage );
m_pIcon =
new wxStaticBitmap(S.GetParent(), -1,
wxStaticBitmap *const icon =
safenew wxStaticBitmap(S.GetParent(), -1,
//*m_pLogo, //v theTheme.Bitmap(bmpAudacityLogoWithName),
RescaledBitmap,
wxDefaultPosition,
wxSize(int(LOGOWITHNAME_WIDTH*fScale), int(LOGOWITHNAME_HEIGHT*fScale)));
S.Prop(0).AddWindow( m_pIcon );
S.Prop(0).AddWindow( icon );
mpHtml = new LinkingHtmlWindow(S.GetParent(), -1,
mpHtml = safenew LinkingHtmlWindow(S.GetParent(), -1,
wxDefaultPosition,
wxSize(506, 280),
wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER );
@ -114,7 +113,7 @@ void SplashDialog::Populate( ShuttleGui & S )
{
S.SetBorder( 5 );
S.Id( DontShowID).AddCheckBox( _("Don't show this again at start up"), bShow ? wxT("false") : wxT("true") );
wxButton *ok = new wxButton(S.GetParent(), wxID_OK);
wxButton *ok = safenew wxButton(S.GetParent(), wxID_OK);
ok->SetDefault();
S.SetBorder( 5 );
S.Prop(0).AddWindow( ok, wxALIGN_RIGHT| wxALL );
@ -124,7 +123,6 @@ void SplashDialog::Populate( ShuttleGui & S )
SplashDialog::~SplashDialog()
{
delete m_pIcon;
delete m_pLogo;
}

View File

@ -37,7 +37,6 @@ private:
void OnDontShow( wxCommandEvent & Evt );
HtmlWindow * mpHtml;
wxStaticBitmap* m_pIcon;
wxBitmap* m_pLogo; //vvv
static SplashDialog * pSelf;
};

View File

@ -356,7 +356,7 @@ void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S)
S.StartStatic(_("Start Date and Time"), true);
{
m_pDatePickerCtrl_Start =
new wxDatePickerCtrl(this, // wxWindow *parent,
safenew wxDatePickerCtrl(this, // wxWindow *parent,
ID_DATEPICKER_START, // wxWindowID id,
m_DateTime_Start); // const wxDateTime& dt = wxDefaultDateTime,
// const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, const wxValidator& validator = wxDefaultValidator, const wxString& name = "datectrl")
@ -378,7 +378,7 @@ void TimerRecordDialog::PopulateOrExchange(ShuttleGui& S)
S.StartStatic(_("End Date and Time"), true);
{
m_pDatePickerCtrl_End =
new wxDatePickerCtrl(this, // wxWindow *parent,
safenew wxDatePickerCtrl(this, // wxWindow *parent,
ID_DATEPICKER_END, // wxWindowID id,
m_DateTime_End); // const wxDateTime& dt = wxDefaultDateTime,
// const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, const wxValidator& validator = wxDefaultValidator, const wxString& name = "datectrl")

View File

@ -9392,7 +9392,7 @@ void TrackPanel::OnSetFont(wxCommandEvent & WXUNUSED(event))
/* i18n-hint: (noun) The name of the typeface*/
S.AddPrompt(_("Face name"));
lb = new wxListBox(&dlg, wxID_ANY,
lb = safenew wxListBox(&dlg, wxID_ANY,
wxDefaultPosition,
wxDefaultSize,
facenames,
@ -9404,7 +9404,7 @@ void TrackPanel::OnSetFont(wxCommandEvent & WXUNUSED(event))
/* i18n-hint: (noun) The size of the typeface*/
S.AddPrompt(_("Face size"));
sc = new wxSpinCtrl(&dlg, wxID_ANY,
sc = safenew wxSpinCtrl(&dlg, wxID_ANY,
wxString::Format(wxT("%ld"), fontsize),
wxDefaultPosition,
wxDefaultSize,

View File

@ -2855,7 +2855,8 @@ int EffectUIHost::ShowModal()
#if defined(__WXMSW__)
// Swap the Close and Apply buttons
wxSizer *sz = mApplyBtn->GetContainingSizer();
wxButton *apply = new wxButton(mApplyBtn->GetParent(), wxID_APPLY);
wxASSERT(mApplyBtn->GetParent()); // To justify safenew
wxButton *apply = safenew wxButton(mApplyBtn->GetParent(), wxID_APPLY);
sz->Replace(mCloseBtn, apply);
sz->Replace(mApplyBtn, mCloseBtn);
sz->Layout();
@ -2901,8 +2902,8 @@ bool EffectUIHost::Initialize()
hs->Add(w, 1, wxEXPAND);
vs->Add(hs, 1, wxEXPAND);
wxPanel *buttonPanel = new wxPanel(this, wxID_ANY);
wxPanel *bar = new wxPanel(buttonPanel, wxID_ANY);
wxPanel *buttonPanel = safenew wxPanel(this, wxID_ANY);
wxPanel *const bar = safenew wxPanel(buttonPanel, wxID_ANY);
// This fools NVDA into not saying "Panel" when the dialog gets focus
bar->SetName(wxT("\a"));
@ -2924,12 +2925,14 @@ bool EffectUIHost::Initialize()
if (!mIsGUI)
{
mMenuBtn = new wxButton(bar, kMenuID, _("&Manage"));
wxASSERT(bar); // To justify safenew
mMenuBtn = safenew wxButton(bar, kMenuID, _("&Manage"));
bs->Add(mMenuBtn, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, margin);
}
else
{
mMenuBtn = new wxBitmapButton(bar, kMenuID, CreateBitmap(effect_menu_xpm, true, false));
wxASSERT(bar); // To justify safenew
mMenuBtn = safenew wxBitmapButton(bar, kMenuID, CreateBitmap(effect_menu_xpm, true, false));
#if defined(__WXMAC__)
mMenuBtn->SetName(_("&Manage"));
#else
@ -2947,13 +2950,15 @@ bool EffectUIHost::Initialize()
{
if (mSupportsRealtime)
{
mPlayToggleBtn = new wxButton(bar, kPlayID, _("Start &Playback"));
wxASSERT(bar); // To justify safenew
mPlayToggleBtn = safenew wxButton(bar, kPlayID, _("Start &Playback"));
mPlayToggleBtn->SetToolTip(_("Start and stop playback"));
bs->Add(mPlayToggleBtn, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, margin);
}
else if (mEffect->GetType() != EffectTypeAnalyze)
{
mPlayToggleBtn = new wxButton(bar, kPlayID, _("&Preview"));
wxASSERT(bar); // To justify safenew
mPlayToggleBtn = safenew wxButton(bar, kPlayID, _("&Preview"));
mPlayToggleBtn->SetToolTip(_("Preview effect"));
bs->Add(mPlayToggleBtn, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, margin);
}
@ -2964,7 +2969,8 @@ bool EffectUIHost::Initialize()
mPlayDisabledBM = CreateBitmap(effect_play_disabled_xpm, true, false);
mStopBM = CreateBitmap(effect_stop_xpm, true, false);
mStopDisabledBM = CreateBitmap(effect_stop_disabled_xpm, true, false);
bb = new wxBitmapButton(bar, kPlayID, mPlayBM);
wxASSERT(bar); // To justify safenew
bb = safenew wxBitmapButton(bar, kPlayID, mPlayBM);
bb->SetBitmapDisabled(mPlayDisabledBM);
mPlayBtn = bb;
bs->Add(mPlayBtn);
@ -2983,12 +2989,14 @@ bool EffectUIHost::Initialize()
{
if (!mIsGUI)
{
mRewindBtn = new wxButton(bar, kRewindID, _("Skip &Backward"));
wxASSERT(bar); // To justify safenew
mRewindBtn = safenew wxButton(bar, kRewindID, _("Skip &Backward"));
bs->Add(mRewindBtn, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, margin);
}
else
{
bb = new wxBitmapButton(bar, kRewindID, CreateBitmap(effect_rewind_xpm, true, true));
wxASSERT(bar); // To justify safenew
bb = safenew wxBitmapButton(bar, kRewindID, CreateBitmap(effect_rewind_xpm, true, true));
bb->SetBitmapDisabled(CreateBitmap(effect_rewind_disabled_xpm, true, true));
mRewindBtn = bb;
#if defined(__WXMAC__)
@ -3002,12 +3010,14 @@ bool EffectUIHost::Initialize()
if (!mIsGUI)
{
mFFwdBtn = new wxButton(bar, kFFwdID, _("Skip &Forward"));
wxASSERT(bar); // To justify safenew
mFFwdBtn = safenew wxButton(bar, kFFwdID, _("Skip &Forward"));
bs->Add(mFFwdBtn, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, margin);
}
else
{
bb = new wxBitmapButton(bar, kFFwdID, CreateBitmap(effect_ffwd_xpm, true, true));
wxASSERT(bar); // To justify safenew
bb = safenew wxBitmapButton(bar, kFFwdID, CreateBitmap(effect_ffwd_xpm, true, true));
bb->SetBitmapDisabled(CreateBitmap(effect_ffwd_disabled_xpm, true, true));
mFFwdBtn = bb;
#if defined(__WXMAC__)
@ -3021,7 +3031,7 @@ bool EffectUIHost::Initialize()
bs->Add(5, 5);
mEnableCb = new wxCheckBox(bar, kEnableID, _("&Enable"));
mEnableCb = safenew wxCheckBox(bar, kEnableID, _("&Enable"));
mEnableCb->SetValue(mEnabled);
mEnableCb->SetName(_("Enable"));
bs->Add(mEnableCb, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, margin);

View File

@ -105,21 +105,22 @@ EffectRack::EffectRack()
mRemoveRaised = CreateBitmap(remove_16x16_xpm, true, true);
wxBoxSizer *bs = new wxBoxSizer(wxVERTICAL);
mPanel = new wxPanel(this, wxID_ANY);
mPanel = safenew wxPanel(this, wxID_ANY);
bs->Add(mPanel, 1, wxEXPAND);
SetSizer(bs);
wxBoxSizer *hs = new wxBoxSizer(wxHORIZONTAL);
hs->Add(new wxButton(mPanel, wxID_APPLY, _("&Apply")), 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
wxASSERT(mPanel); // To justify safenew
hs->Add(safenew wxButton(mPanel, wxID_APPLY, _("&Apply")), 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
hs->AddStretchSpacer();
mLatency = new wxStaticText(mPanel, wxID_ANY, _("Latency: 0"));
mLatency = safenew wxStaticText(mPanel, wxID_ANY, _("Latency: 0"));
hs->Add(mLatency, 0, wxALIGN_CENTER);
hs->AddStretchSpacer();
hs->Add(new wxToggleButton(mPanel, wxID_CLEAR, _("&Bypass")), 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
hs->Add(safenew wxToggleButton(mPanel, wxID_CLEAR, _("&Bypass")), 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
bs = new wxBoxSizer(wxVERTICAL);
bs->Add(hs, 0, wxEXPAND);
bs->Add(new wxStaticLine(mPanel, wxID_ANY), 0, wxEXPAND);
bs->Add(safenew wxStaticLine(mPanel, wxID_ANY), 0, wxEXPAND);
mMainSizer = new wxFlexGridSizer(7);
mMainSizer->AddGrowableCol(6);
@ -176,7 +177,8 @@ void EffectRack::Add(Effect *effect, bool active, bool favorite)
wxBitmapButton *bb;
bb = new wxBitmapButton(mPanel, ID_POWER + mNumEffects, mPowerRaised);
wxASSERT(mPanel); // To justify safenew
bb = safenew wxBitmapButton(mPanel, ID_POWER + mNumEffects, mPowerRaised);
bb->SetBitmapSelected(mPowerRaised);
bb->SetName(_("Active State"));
bb->SetToolTip(_("Set effect active state"));
@ -193,27 +195,27 @@ void EffectRack::Add(Effect *effect, bool active, bool favorite)
}
mMainSizer->Add(bb, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
bb = new wxBitmapButton(mPanel, ID_EDITOR + mNumEffects, mSettingsRaised);
bb = safenew wxBitmapButton(mPanel, ID_EDITOR + mNumEffects, mSettingsRaised);
bb->SetBitmapSelected(mSettingsPushed);
bb->SetName(_("Show/Hide Editor"));
bb->SetToolTip(_("Open/close effect editor"));
mMainSizer->Add(bb, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
bb = new wxBitmapButton(mPanel, ID_UP + mNumEffects, mUpRaised);
bb = safenew wxBitmapButton(mPanel, ID_UP + mNumEffects, mUpRaised);
bb->SetBitmapSelected(mUpPushed);
bb->SetBitmapDisabled(mUpDisabled);
bb->SetName(_("Move Up"));
bb->SetToolTip(_("Move effect up in the rack"));
mMainSizer->Add(bb, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
bb = new wxBitmapButton(mPanel, ID_DOWN + mNumEffects, mDownRaised);
bb = safenew wxBitmapButton(mPanel, ID_DOWN + mNumEffects, mDownRaised);
bb->SetBitmapSelected(mDownPushed);
bb->SetBitmapDisabled(mDownDisabled);
bb->SetName(_("Move Down"));
bb->SetToolTip(_("Move effect down in the rack"));
mMainSizer->Add(bb, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
bb = new wxBitmapButton(mPanel, ID_FAV + mNumEffects, mFavRaised);
bb = safenew wxBitmapButton(mPanel, ID_FAV + mNumEffects, mFavRaised);
bb->SetBitmapSelected(mFavPushed);
bb->SetName(_("Favorite"));
bb->SetToolTip(_("Mark effect as a favorite"));
@ -230,13 +232,13 @@ void EffectRack::Add(Effect *effect, bool active, bool favorite)
}
mMainSizer->Add(bb, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
bb = new wxBitmapButton(mPanel, ID_REMOVE + mNumEffects, mRemoveRaised);
bb = safenew wxBitmapButton(mPanel, ID_REMOVE + mNumEffects, mRemoveRaised);
bb->SetBitmapSelected(mRemovePushed);
bb->SetName(_("Remove"));
bb->SetToolTip(_("Remove effect from the rack"));
mMainSizer->Add(bb, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
wxStaticText *text = new wxStaticText(mPanel, ID_NAME + mNumEffects, effect->GetName());
wxStaticText *text = safenew wxStaticText(mPanel, ID_NAME + mNumEffects, effect->GetName());
text->SetToolTip(_("Name of the effect"));
mMainSizer->Add(text, 0, wxEXPAND | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL, 5);

View File

@ -719,12 +719,12 @@ void EffectEqualization::PopulateOrExchange(ShuttleGui & S)
szrG = S.GetSizer();
// Panel used to host the sliders since they will be positioned manually.
mGraphicPanel = new wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(-1, 150));
mGraphicPanel = safenew wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(-1, 150));
S.Prop(1).AddWindow(mGraphicPanel, wxEXPAND);
for (int i = 0; (i < NUMBER_OF_BANDS) && (kThirdOct[i] <= mHiFreq); ++i)
{
mSliders[i] = new wxSlider(mGraphicPanel, ID_Slider + i, 0, -20, +20,
mSliders[i] = safenew wxSlider(mGraphicPanel, ID_Slider + i, 0, -20, +20,
wxDefaultPosition, wxDefaultSize, wxSL_VERTICAL | wxSL_INVERSE);
mSliders[i]->Connect(wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(EffectEqualization::OnErase));

View File

@ -81,9 +81,9 @@ ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
gPrefs->Read(wxT("/Tracks/Synchronize/SmoothTime"), &p.mSmoothTime,
float(SA_DFT_SMOOTH_TIME));
//wxButton *ok = new wxButton(this, wxID_OK, _("OK"));
//wxButton *cancel = new wxButton(this, wxID_CANCEL, _("Cancel"));
//wxSlider *sl = new wxSlider(this, ID_SLIDER, 0, 0, 100,
//wxButton *ok = safenew wxButton(this, wxID_OK, _("OK"));
//wxButton *cancel = safenew wxButton(this, wxID_CANCEL, _("Cancel"));
//wxSlider *sl = safenew wxSlider(this, ID_SLIDER, 0, 0, 100,
// wxDefaultPosition, wxSize(20, 124),
// wxSL_HORIZONTAL);
@ -178,7 +178,7 @@ ScoreAlignDialog::ScoreAlignDialog(wxWindow *parent, ScoreAlignParams &params)
S.EndMultiColumn();
S.EndStatic();
mDefaultButton = new wxButton(this, ID_DEFAULT, _("Use Defaults"));
mDefaultButton = safenew wxButton(this, ID_DEFAULT, _("Use Defaults"));
mDefaultButton->SetName(_("Restore Defaults"));
S.AddStandardButtons(eOkButton | eCancelButton, mDefaultButton);

View File

@ -2850,7 +2850,8 @@ void VSTEffect::BuildFancy()
void VSTEffect::BuildPlain()
{
wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
wxScrolledWindow *scroller = new wxScrolledWindow(mParent,
wxASSERT(mParent); // To justify safenew
wxScrolledWindow *const scroller = safenew wxScrolledWindow(mParent,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize,
@ -2881,7 +2882,7 @@ void VSTEffect::BuildPlain()
// Add the duration control for generators
if (GetType() == EffectTypeGenerate)
{
wxControl *item = new wxStaticText(scroller, 0, _("Duration:"));
wxControl *item = safenew wxStaticText(scroller, 0, _("Duration:"));
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
mDuration = new
NumericTextCtrl(NumericConverter::TIME,
@ -2924,7 +2925,7 @@ void VSTEffect::BuildPlain()
for (int i = 0; i < mAEffect->numParams; i++)
{
mNames[i] = new wxStaticText(scroller,
mNames[i] = safenew wxStaticText(scroller,
wxID_ANY,
wxEmptyString,
wxDefaultPosition,
@ -2932,7 +2933,7 @@ void VSTEffect::BuildPlain()
wxALIGN_RIGHT | wxST_NO_AUTORESIZE);
gridSizer->Add(mNames[i], 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
mSliders[i] = new wxSlider(scroller,
mSliders[i] = safenew wxSlider(scroller,
ID_Sliders + i,
0,
0,
@ -2941,7 +2942,7 @@ void VSTEffect::BuildPlain()
wxSize(200, -1));
gridSizer->Add(mSliders[i], 0, wxALIGN_CENTER_VERTICAL | wxEXPAND | wxALL, 5);
mDisplays[i] = new wxStaticText(scroller,
mDisplays[i] = safenew wxStaticText(scroller,
wxID_ANY,
wxEmptyString,
wxDefaultPosition,
@ -2949,7 +2950,7 @@ void VSTEffect::BuildPlain()
wxALIGN_RIGHT | wxST_NO_AUTORESIZE);
gridSizer->Add(mDisplays[i], 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
mLabels[i] = new wxStaticText(scroller,
mLabels[i] = safenew wxStaticText(scroller,
wxID_ANY,
wxEmptyString,
wxDefaultPosition,

View File

@ -1754,7 +1754,8 @@ bool AudioUnitEffect::PopulateUI(wxWindow *parent)
wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
wxPanel *container = new wxPanel(mParent, wxID_ANY);
wxASSERT(mParent); // To justify safenew
wxPanel *container = safenew wxPanel(mParent, wxID_ANY);
mainSizer->Add(container, 1, wxEXPAND);
mParent->SetSizer(mainSizer);

View File

@ -1165,7 +1165,8 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
memset(mFields, 0, mData->PortCount * sizeof(wxTextCtrl *));
wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
wxScrolledWindow *w = new wxScrolledWindow(mParent,
wxASSERT(mParent); // To justify safenew
wxScrolledWindow *const w = safenew wxScrolledWindow(mParent,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize,
@ -1193,7 +1194,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
// Add the duration control for generators
if (GetType() == EffectTypeGenerate)
{
item = new wxStaticText(w, 0, _("Duration:"));
item = safenew wxStaticText(w, 0, _("Duration:"));
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
mDuration = new
NumericTextCtrl(NumericConverter::TIME,
@ -1222,7 +1223,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
}
wxString labelText = LAT1CTOWX(mData->PortNames[p]);
item = new wxStaticText(w, 0, labelText + wxT(":"));
item = safenew wxStaticText(w, 0, labelText + wxT(":"));
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
wxString fieldText;
@ -1230,7 +1231,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
if (LADSPA_IS_HINT_TOGGLED(hint.HintDescriptor))
{
mToggles[p] = new wxCheckBox(w, ID_Toggles + p, wxT(""));
mToggles[p] = safenew wxCheckBox(w, ID_Toggles + p, wxT(""));
mToggles[p]->SetName(labelText);
mToggles[p]->SetValue(mInputControls[p] > 0);
gridSizer->Add(mToggles[p], 0, wxALL, 5);
@ -1285,7 +1286,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
// Don't specify a value at creation time. This prevents unwanted events
// being sent to the OnTextCtrl() handler before the associated slider
// has been created.
mFields[p] = new wxTextCtrl(w, ID_Texts + p);
mFields[p] = safenew wxTextCtrl(w, ID_Texts + p);
mFields[p]->SetName(labelText);
gridSizer->Add(mFields[p], 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
@ -1300,7 +1301,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
{
str = Internat::ToDisplayString(lower);
}
item = new wxStaticText(w, 0, str);
item = safenew wxStaticText(w, 0, str);
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
}
else
@ -1308,7 +1309,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
gridSizer->Add(1, 1, 0);
}
mSliders[p] = new wxSlider(w, ID_Sliders + p,
mSliders[p] = safenew wxSlider(w, ID_Sliders + p,
0, 0, 1000,
wxDefaultPosition,
wxSize(200, -1));
@ -1325,7 +1326,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
{
str = Internat::ToDisplayString(upper);
}
item = new wxStaticText(w, 0, str);
item = safenew wxStaticText(w, 0, str);
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT | wxALL, 5);
}
else
@ -1394,7 +1395,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
}
wxString labelText = LAT1CTOWX(mData->PortNames[p]);
item = new wxStaticText(w, 0, labelText + wxT(":"));
item = safenew wxStaticText(w, 0, labelText + wxT(":"));
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
LADSPA_PortRangeHint hint = mData->PortRangeHints[p];

View File

@ -1454,7 +1454,7 @@ bool LV2Effect::BuildFancy()
}
// Use a panel to host the plugins GUI
mContainer = new wxPanel(mParent, wxID_ANY);
mContainer = safenew wxPanel(mParent, wxID_ANY);
if (!mContainer)
{
lilv_uis_free(uis);
@ -1579,7 +1579,8 @@ bool LV2Effect::BuildPlain()
mFields = new wxTextCtrl *[ctrlcnt];
wxSizer *outerSizer = new wxBoxSizer(wxVERTICAL);
wxScrolledWindow *w = new wxScrolledWindow(mParent,
wxASSERT(mParent); // To justify safenew
wxScrolledWindow *const w = safenew wxScrolledWindow(mParent,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize,
@ -1601,7 +1602,7 @@ bool LV2Effect::BuildPlain()
wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
wxWindow *item = new wxStaticText(w, 0, _("&Duration:"));
wxWindow *item = safenew wxStaticText(w, 0, _("&Duration:"));
sizer->Add(item, 0, wxALIGN_CENTER | wxALL, 5);
mDuration = new
NumericTextCtrl(NumericConverter::TIME,
@ -1650,7 +1651,8 @@ bool LV2Effect::BuildPlain()
{
gridSizer->Add(1, 1, 0);
wxButton *b = new wxButton(w, ID_Triggers + p, labelText);
wxASSERT(w); // To justify safenew
wxButton *b = safenew wxButton(w, ID_Triggers + p, labelText);
gridSizer->Add(b, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
gridSizer->Add(1, 1, 0);
@ -1659,14 +1661,14 @@ bool LV2Effect::BuildPlain()
continue;
}
wxWindow *item = new wxStaticText(w, wxID_ANY, labelText + wxT(":"),
wxWindow *item = safenew wxStaticText(w, wxID_ANY, labelText + wxT(":"),
wxDefaultPosition, wxDefaultSize,
wxALIGN_RIGHT);
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT);
if (ctrl.mToggle)
{
wxCheckBox *c = new wxCheckBox(w, ID_Toggles + p, wxT(""));
wxCheckBox *c = safenew wxCheckBox(w, ID_Toggles + p, wxT(""));
c->SetName(labelText);
c->SetValue(ctrl.mVal > 0);
gridSizer->Add(c, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
@ -1691,7 +1693,7 @@ bool LV2Effect::BuildPlain()
s = 0;
}
wxChoice *c = new wxChoice(w, ID_Choices + p);
wxChoice *c = safenew wxChoice(w, ID_Choices + p);
c->SetName(labelText);
c->Append(ctrl.mScaleLabels);
c->SetSelection(s);
@ -1711,7 +1713,7 @@ bool LV2Effect::BuildPlain()
}
else
{
mFields[p] = new wxTextCtrl(w, ID_Texts + p, wxT(""));
mFields[p] = safenew wxTextCtrl(w, ID_Texts + p, wxT(""));
mFields[p]->SetName(labelText);
gridSizer->Add(mFields[p], 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
@ -1754,7 +1756,7 @@ bool LV2Effect::BuildPlain()
{
str = Internat::ToDisplayString(ctrl.mLo);
}
item = new wxStaticText(w, wxID_ANY, str);
item = safenew wxStaticText(w, wxID_ANY, str);
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT);
}
else
@ -1762,7 +1764,7 @@ bool LV2Effect::BuildPlain()
gridSizer->Add(1, 1, 0);
}
mSliders[p] = new wxSlider(w, ID_Sliders + p,
mSliders[p] = safenew wxSlider(w, ID_Sliders + p,
0, 0, 1000,
wxDefaultPosition,
wxSize(150, -1));
@ -1780,7 +1782,7 @@ bool LV2Effect::BuildPlain()
{
str = Internat::ToDisplayString(ctrl.mHi);
}
item = new wxStaticText(w, wxID_ANY, str);
item = safenew wxStaticText(w, wxID_ANY, str);
gridSizer->Add(item, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
}
else

View File

@ -2247,13 +2247,13 @@ NyquistOutputDialog::NyquistOutputDialog(wxWindow * parent, wxWindowID id,
wxButton *button;
wxControl *item;
item = new wxStaticText(this, -1, prompt);
item = safenew wxStaticText(this, -1, prompt);
item->SetName(prompt); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
mainSizer->Add(item, 0, wxALIGN_LEFT | wxLEFT | wxTOP | wxRIGHT, 10);
// TODO use ShowInfoDialog() instead.
// Beware this dialog MUST work with screen readers.
item = new wxTextCtrl(this, -1, message,
item = safenew wxTextCtrl(this, -1, message,
wxDefaultPosition, wxSize(400, 200),
wxTE_MULTILINE | wxTE_READONLY);
mainSizer->Add(item, 0, wxALIGN_LEFT | wxALL, 10);
@ -2261,7 +2261,7 @@ NyquistOutputDialog::NyquistOutputDialog(wxWindow * parent, wxWindowID id,
hSizer = new wxBoxSizer(wxHORIZONTAL);
/* i18n-hint: In most languages OK is to be translated as OK. It appears on a button.*/
button = new wxButton(this, wxID_OK, _("OK"));
button = safenew wxButton(this, wxID_OK, _("OK"));
button->SetDefault();
hSizer->Add(button, 0, wxALIGN_CENTRE | wxALL, 5);

View File

@ -225,7 +225,8 @@ bool ExportPlugin::DisplayOptions(wxWindow * WXUNUSED(parent), int WXUNUSED(form
wxWindow *ExportPlugin::OptionsCreate(wxWindow *parent, int WXUNUSED(format))
{
wxPanel *p = new wxPanel(parent, wxID_ANY);
wxASSERT(parent); // To justify safenew
wxPanel *p = safenew wxPanel(parent, wxID_ANY);
ShuttleGui S(p, eIsCreatingFromPrefs);
S.StartHorizontalLay(wxCENTER);
@ -881,7 +882,7 @@ void Exporter::CreateUserPane(wxWindow *parent)
{
S.StartStatic(_("Format Options"), 1);
{
mBook = new wxSimplebook(parent);
mBook = safenew wxSimplebook(S.GetParent());
S.AddWindow(mBook, wxEXPAND);
for (size_t i = 0; i < mPlugins.GetCount(); i++)
@ -1224,10 +1225,10 @@ ExportMixerDialog::ExportMixerDialog( TrackList *tracks, bool selectedOnly,
wxString label;
label.Printf( _( "Output Channels: %2d" ), mMixerSpec->GetNumChannels() );
mChannelsText = new wxStaticText( this, -1, label);
mChannelsText = safenew wxStaticText(this, -1, label);
horSizer->Add( mChannelsText, 0, wxALIGN_LEFT | wxALL, 5 );
wxSlider *channels = new wxSlider( this, ID_SLIDER_CHANNEL,
wxSlider *channels = safenew wxSlider( this, ID_SLIDER_CHANNEL,
mMixerSpec->GetNumChannels(), 1, mMixerSpec->GetMaxNumChannels(),
wxDefaultPosition, wxSize( 300, -1 ) );
channels->SetName(label);

View File

@ -270,7 +270,7 @@ void ExportMultiple::PopulateOrExchange(ShuttleGui& S)
S.AddPrompt(_("Options:"));
if (!mBook)
{
mBook = new wxSimplebook(S.GetParent(), OptionsID, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC);
mBook = safenew wxSimplebook(S.GetParent(), OptionsID, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC);
for (size_t i = 0; i < mPlugins.GetCount(); i++)
{
for (int j = 0; j < mPlugins[i]->GetFormatCount(); j++)

View File

@ -755,7 +755,7 @@ wxDialog( parent, id, title, position, size, style | wxRESIZE_BORDER )
wxBoxSizer *vertSizer = new wxBoxSizer( wxVERTICAL );
wxArrayString *choices = mFile->GetStreamInfo();
StreamList = new wxListBox(this, -1, wxDefaultPosition, wxDefaultSize, *choices , wxLB_EXTENDED | wxLB_ALWAYS_SB);
StreamList = safenew wxListBox(this, -1, wxDefaultPosition, wxDefaultSize, *choices , wxLB_EXTENDED | wxLB_ALWAYS_SB);
vertSizer->Add( StreamList, 1, wxEXPAND | wxALIGN_LEFT | wxALL, 5 );

View File

@ -243,7 +243,7 @@ static wxString AskCopyOrEdit()
wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL);
dialog.SetSizer(vbox);
wxStaticText *message = new wxStaticText(&dialog, -1, wxString::Format(_("\
wxStaticText *message = safenew wxStaticText(&dialog, -1, wxString::Format(_("\
When importing uncompressed audio files you can either copy them \
into the project, or read them directly from their current location (without copying).\n\n\
Your current preference is set to %s.\n\n\
@ -259,19 +259,19 @@ How do you want to import the current file(s)?"), oldCopyPref == wxT("copy") ? _
vbox->Add(message, 1, wxALL | wxEXPAND, 10);
wxStaticBox *box = new wxStaticBox(&dialog, -1, _("Choose an import method"));
wxStaticBox *box = safenew wxStaticBox(&dialog, -1, _("Choose an import method"));
box->SetName(box->GetLabel());
wxStaticBoxSizer *boxsizer = new wxStaticBoxSizer(box, wxVERTICAL);
wxRadioButton *copyRadio = new wxRadioButton(&dialog, -1, _("Make a &copy of the files before editing (safer)"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
wxRadioButton *copyRadio = safenew wxRadioButton(&dialog, -1, _("Make a &copy of the files before editing (safer)"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
boxsizer->Add(copyRadio, 0, wxALL);
copyRadio->SetName(wxStripMenuCodes(copyRadio->GetLabel()));
wxRadioButton *aliasRadio = new wxRadioButton(&dialog, -1, _("Read the files &directly from the original (faster)"));
wxRadioButton *aliasRadio = safenew wxRadioButton(&dialog, -1, _("Read the files &directly from the original (faster)"));
boxsizer->Add(aliasRadio, 0, wxALL);
aliasRadio->SetName(wxStripMenuCodes(aliasRadio->GetLabel()));
wxCheckBox *dontAskNextTimeBox = new wxCheckBox(&dialog, -1, _("Don't &warn again and always use my choice above"));
wxCheckBox *dontAskNextTimeBox = safenew wxCheckBox(&dialog, -1, _("Don't &warn again and always use my choice above"));
boxsizer->Add(dontAskNextTimeBox, 0, wxALL);
vbox->Add(boxsizer, 0, wxALL, 10);
dontAskNextTimeBox->SetName(wxStripMenuCodes(dontAskNextTimeBox->GetLabel()));

View File

@ -200,7 +200,7 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
mFilterLabel = S.AddVariableText(_("Searc&h:"));
if (!mFilter) {
mFilter = new wxTextCtrl(this,
mFilter = safenew wxTextCtrl(this,
FilterID,
wxT(""),
wxDefaultPosition,
@ -241,7 +241,7 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
S.StartThreeColumn();
{
if (!mKey) {
mKey = new wxTextCtrl(this,
mKey = safenew wxTextCtrl(this,
CurrentComboID,
wxT(""),
wxDefaultPosition,
@ -769,7 +769,7 @@ void KeyConfigPrefs::PopulateOrExchange(ShuttleGui & S)
S.StartThreeColumn();
{
if (!mKey) {
mKey = new wxTextCtrl(this,
mKey = safenew wxTextCtrl(this,
CurrentComboID,
wxT(""),
wxDefaultPosition,

View File

@ -217,7 +217,7 @@ PrefsDialog::PrefsDialog
{
wxASSERT(factories.size() > 0);
if (!uniquePage) {
mCategories = new wxTreebookExt(this, wxID_ANY, mTitlePrefix);
mCategories = safenew wxTreebookExt(this, wxID_ANY, mTitlePrefix);
S.StartHorizontalLay(wxALIGN_LEFT | wxEXPAND, true);
{
S.Prop(1);

View File

@ -93,7 +93,7 @@ void DeviceToolBar::Populate()
{
DeinitChildren();
// Hosts
mHost = new wxChoice(this,
mHost = safenew wxChoice(this,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize);
@ -104,17 +104,17 @@ void DeviceToolBar::Populate()
if( mRecordBitmap == NULL )
mRecordBitmap = new wxBitmap(theTheme.Bitmap(bmpMic));
Add(new wxStaticBitmap(this,
Add(safenew wxStaticBitmap(this,
wxID_ANY,
*mRecordBitmap), 0, wxALIGN_CENTER);
mInput = new wxChoice(this,
mInput = safenew wxChoice(this,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize);
Add(mInput, 0, wxALIGN_CENTER);
mInputChannels = new wxChoice(this,
mInputChannels = safenew wxChoice(this,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize);
@ -123,11 +123,11 @@ void DeviceToolBar::Populate()
// Output device
if( mPlayBitmap == NULL )
mPlayBitmap = new wxBitmap(theTheme.Bitmap(bmpSpeaker));
Add(new wxStaticBitmap(this,
Add(safenew wxStaticBitmap(this,
wxID_ANY,
*mPlayBitmap), 0, wxALIGN_CENTER);
mOutput = new wxChoice(this,
mOutput = safenew wxChoice(this,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize);

View File

@ -80,7 +80,7 @@ void MixerToolBar::Populate()
if( mRecordBitmap == NULL )
mRecordBitmap = new wxBitmap(theTheme.Bitmap(bmpMic));
Add(new wxStaticBitmap(this,
Add(safenew wxStaticBitmap(this,
wxID_ANY,
*mRecordBitmap), 0, wxALIGN_CENTER);
@ -93,7 +93,7 @@ void MixerToolBar::Populate()
if( mPlayBitmap == NULL )
mPlayBitmap = new wxBitmap(theTheme.Bitmap(bmpSpeaker));
Add(new wxStaticBitmap(this,
Add(safenew wxStaticBitmap(this,
wxID_ANY,
*mPlayBitmap), 0, wxALIGN_CENTER);

View File

@ -129,7 +129,7 @@ void SelectionBar::Populate()
// Top row (mostly labels)
//
mainSizer->Add(new wxStaticText(this, -1, _("Project Rate (Hz):"),
mainSizer->Add(safenew wxStaticText(this, -1, _("Project Rate (Hz):"),
// LLL: On my Ubuntu 7.04 install, the label wraps to two lines
// and I could not figure out why. Thus...hackage.
#if defined(__WXGTK__)
@ -141,24 +141,24 @@ void SelectionBar::Populate()
mainSizer->Add(5, 1);
mainSizer->Add(new wxStaticText(this, -1, _("Snap To:")),
mainSizer->Add(safenew wxStaticText(this, -1, _("Snap To:")),
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
mainSizer->Add(new wxStaticText(this, -1, _("Selection Start:")),
mainSizer->Add(safenew wxStaticText(this, -1, _("Selection Start:")),
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
bool showSelectionLength = false;
gPrefs->Read(wxT("/ShowSelectionLength"), &showSelectionLength);
hSizer = new wxBoxSizer(wxHORIZONTAL);
mRightEndButton = new wxRadioButton(this, OnEndRadioID, _("End"),
mRightEndButton = safenew wxRadioButton(this, OnEndRadioID, _("End"),
wxDefaultPosition, wxDefaultSize,
wxRB_GROUP);
mRightEndButton->SetName(_("End"));
mRightEndButton->SetValue(!showSelectionLength);
hSizer->Add(mRightEndButton,
0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5);
mRightLengthButton = new wxRadioButton(this, OnLengthRadioID, _("Length"));
mRightLengthButton = safenew wxRadioButton(this, OnLengthRadioID, _("Length"));
mRightLengthButton->SetName(_("Length"));
mRightLengthButton->SetValue(showSelectionLength);
hSizer->Add(mRightLengthButton,
@ -169,7 +169,7 @@ void SelectionBar::Populate()
// so it's probably been fixed. But, it doesn't hurt to have this
// in for all versions.
wxRadioButton* dummyButton =
new wxRadioButton(this, wxID_ANY, _("hidden"),
safenew wxRadioButton(this, wxID_ANY, _("hidden"),
wxDefaultPosition, wxDefaultSize,
wxRB_GROUP);
dummyButton->Disable();
@ -179,14 +179,14 @@ void SelectionBar::Populate()
mainSizer->Add(5, 1);
mainSizer->Add(new wxStaticText(this, -1, _("Audio Position:")),
mainSizer->Add(safenew wxStaticText(this, -1, _("Audio Position:")),
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 0);
//
// Middle row (mostly time controls)
//
mRateBox = new wxComboBox(this, OnRateID,
mRateBox = safenew wxComboBox(this, OnRateID,
wxT(""),
wxDefaultPosition, wxSize(80, -1));
mRateBox->SetName(_("Project Rate (Hz):"));
@ -226,12 +226,12 @@ void SelectionBar::Populate()
mainSizer->Add(mRateBox, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
mainSizer->Add(new wxStaticLine(this, -1, wxDefaultPosition,
mainSizer->Add(safenew wxStaticLine(this, -1, wxDefaultPosition,
wxSize(1, toolbarSingle),
wxLI_VERTICAL),
0, wxRIGHT, 5);
mSnapTo = new wxChoice(this, OnSnapToID,
mSnapTo = safenew wxChoice(this, OnSnapToID,
wxDefaultPosition, wxDefaultSize,
SnapManager::GetSnapLabels());
mainSizer->Add(mSnapTo,
@ -265,7 +265,7 @@ void SelectionBar::Populate()
mRightTime->EnableMenu();
mainSizer->Add(mRightTime, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
mainSizer->Add(new wxStaticLine(this, -1, wxDefaultPosition,
mainSizer->Add(safenew wxStaticLine(this, -1, wxDefaultPosition,
wxSize(1, toolbarSingle),
wxLI_VERTICAL),
0, wxRIGHT, 5);

View File

@ -134,7 +134,7 @@ void SpectralSelectionBar::Populate()
_("Center frequency and Width"),
_("Low and High Frequencies"),
};
mChoice = new wxChoice
mChoice = safenew wxChoice
(this, OnChoiceID, wxDefaultPosition, wxDefaultSize, 2, choices,
0, wxDefaultValidator, _("Spectral Selection"));
mChoice->SetSelection(mbCenterAndWidth ? 0 : 1);

View File

@ -255,7 +255,7 @@ void TranscriptionToolBar::Populate()
TRANSLATABLE("Direction Changes (High Threshold)")
};
mKeyTypeChoice = new wxChoice(this, TTB_KeyType,
mKeyTypeChoice = safenew wxChoice(this, TTB_KeyType,
wxDefaultPosition,
wxDefaultSize,
5,

View File

@ -114,13 +114,13 @@ ErrorDialog::ErrorDialog(
wxBoxSizer *hSizer = new wxBoxSizer(wxHORIZONTAL);
wxStaticText *statText = new wxStaticText(this, -1, message);
wxStaticText *statText = safenew wxStaticText(this, -1, message);
mainSizer->Add(statText, 0, wxALIGN_LEFT|wxALL, 5);
wxButton *help = new wxButton(this, wxID_HELP, _("Help"));
wxButton *help = safenew wxButton(this, wxID_HELP, _("Help"));
hSizer->Add(help, 0, wxALIGN_LEFT|wxALL, 5);
wxButton *ok = new wxButton(this, wxID_OK, _("OK"));
wxButton *ok = safenew wxButton(this, wxID_OK, _("OK"));
ok->SetDefault();
ok->SetFocus();
hSizer->Add(ok, 0, wxALIGN_RIGHT|wxALL, 5);

View File

@ -135,9 +135,9 @@ ExpandingToolBar::ExpandingToolBar(wxWindow* parent,
mDragImage(NULL),
mTopLevelParent(NULL)
{
mMainPanel = new wxPanel(this, -1,
mMainPanel = safenew wxPanel(this, -1,
wxDefaultPosition, wxSize(1, 1));
mExtraPanel = new wxPanel(this, -1,
mExtraPanel = safenew wxPanel(this, -1,
wxDefaultPosition, wxSize(1, 1));
mGrabber = NULL;

View File

@ -278,7 +278,7 @@ wxGridCellEditor *ChoiceEditor::Clone() const
void ChoiceEditor::Create(wxWindow* parent, wxWindowID id, wxEvtHandler* evtHandler)
{
m_control = new wxChoice(parent,
m_control = safenew wxChoice(parent,
id,
wxDefaultPosition,
wxDefaultSize,

View File

@ -78,7 +78,7 @@ void HelpSystem::ShowInfoDialog( wxWindow *parent,
S.EndHorizontalLay();
// Next three lines add a tiny dragger.
wxStatusBar * pBar = new wxStatusBar( &dlog );
wxStatusBar * pBar = safenew wxStatusBar( &dlog );
pBar->SetSize( 18, 38);
S.AddWindow( pBar, wxALIGN_BOTTOM|wxALIGN_RIGHT );
@ -135,7 +135,7 @@ void HelpSystem::ShowHtmlText(wxWindow *pParent,
}
S.EndHorizontalLay();
html = new LinkingHtmlWindow(pPan, wxID_ANY,
html = safenew LinkingHtmlWindow(pPan, wxID_ANY,
wxDefaultPosition,
bIsFile ? wxSize(500, 400) : wxSize(480, 240),
wxHW_SCROLLBAR_AUTO | wxSUNKEN_BORDER);

View File

@ -74,10 +74,10 @@ MultiDialog::MultiDialog(wxWindow * pParent,
wxBitmap bitmap = wxArtProvider::GetIcon(wxART_WARNING,
wxART_MESSAGE_BOX);
wxStaticBitmap *icon = new wxStaticBitmap(this, -1, bitmap);
wxStaticBitmap *icon = safenew wxStaticBitmap(this, -1, bitmap);
iconAndTextSizer->Add( icon, 0, wxCENTER );
wxStaticText *statText = new wxStaticText(this, -1, message);
wxStaticText *statText = safenew wxStaticText(this, -1, message);
statText->SetName(message); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
iconAndTextSizer->Add(statText, 1, wxCENTER|wxLEFT,15 );
@ -94,7 +94,7 @@ MultiDialog::MultiDialog(wxWindow * pParent,
count++;
}
mRadioBox = new wxRadioBox(this,-1,
mRadioBox = safenew wxRadioBox(this,-1,
boxMsg,
wxDefaultPosition, wxDefaultSize,
count, buttonLabels,
@ -109,14 +109,14 @@ MultiDialog::MultiDialog(wxWindow * pParent,
wxButton* pButton;
if(log)
{
pButton = new wxButton(this, ID_SHOW_LOG_BUTTON, _("Show Log for Details"));
pButton = safenew wxButton(this, ID_SHOW_LOG_BUTTON, _("Show Log for Details"));
buttonSizer->Add(pButton, 0, wxALIGN_LEFT | wxALL, 5);
pButton->SetDefault(); // Encourage user to look at files.
buttonSizer->AddSpacer(40);
}
pButton = new wxButton(this, wxID_OK, _("OK"));
pButton = safenew wxButton(this, wxID_OK, _("OK"));
if(!log)
pButton->SetDefault();
buttonSizer->Add(pButton, 0, wxALIGN_RIGHT | wxALL, 5);

View File

@ -1095,7 +1095,7 @@ bool ProgressDialog::Create(const wxString & title,
v = new wxBoxSizer(wxVERTICAL);
mMessage = new wxStaticText(this,
mMessage = safenew wxStaticText(this,
wxID_ANY,
message,
wxDefaultPosition,
@ -1108,7 +1108,7 @@ bool ProgressDialog::Create(const wxString & title,
//
//
//
mGauge = new wxGauge(this,
mGauge = safenew wxGauge(this,
wxID_ANY,
1000,
wxDefaultPosition,
@ -1122,7 +1122,7 @@ bool ProgressDialog::Create(const wxString & title,
//
wxFlexGridSizer *g = new wxFlexGridSizer(2, 2, 10, 10);
w = new wxStaticText(this,
w = safenew wxStaticText(this,
wxID_ANY,
_("Elapsed Time:"),
wxDefaultPosition,
@ -1131,7 +1131,7 @@ bool ProgressDialog::Create(const wxString & title,
w->SetName(w->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
g->Add(w, 0, wxALIGN_RIGHT);
mElapsed = new wxStaticText(this,
mElapsed = safenew wxStaticText(this,
wxID_ANY,
wxT("00:00:00"),
wxDefaultPosition,
@ -1144,7 +1144,7 @@ bool ProgressDialog::Create(const wxString & title,
//
//
//
w = new wxStaticText(this,
w = safenew wxStaticText(this,
wxID_ANY,
_("Remaining Time:"),
wxDefaultPosition,
@ -1153,7 +1153,7 @@ bool ProgressDialog::Create(const wxString & title,
w->SetName(w->GetLabel()); // fix for bug 577 (NVDA/Narrator screen readers do not read static text in dialogs)
g->Add(w, 0, wxALIGN_RIGHT);
mRemaining = new wxStaticText(this,
mRemaining = safenew wxStaticText(this,
wxID_ANY,
wxT("00:00:00"),
wxDefaultPosition,
@ -1169,13 +1169,13 @@ bool ProgressDialog::Create(const wxString & title,
if (!(flags & pdlgHideStopButton))
{
w = new wxButton(this, wxID_OK, _("Stop"));
w = safenew wxButton(this, wxID_OK, _("Stop"));
h->Add(w, 0, wxRIGHT, 10);
}
if (!(flags & pdlgHideCancelButton))
{
w = new wxButton(this, wxID_CANCEL, _("Cancel"));
w = safenew wxButton(this, wxID_CANCEL, _("Cancel"));
h->Add(w, 0, wxRIGHT, 10);
}