Remove individual credits from built-in effects. Should always be in About dialog instead.

This commit is contained in:
v.audacity 2013-06-21 22:10:50 +00:00
parent 298f0688cb
commit b33983833b
22 changed files with 57 additions and 230 deletions

View File

@ -87,24 +87,27 @@ void AboutDialog::CreateCreditsList()
// All other contributors
AddCredit(wxT("Lynn Allan"), roleContributor);
AddCredit(wxT("Lynn Allan (Leveller, StereoToMono, TruncSilence)"), roleContributor);
AddCredit(wxT("David Bailes"), roleContributor);
AddCredit(wxT("William Bland"), roleContributor);
AddCredit(wxT("Chris Cannam"), roleContributor);
AddCredit(wxT("Craig DeForest"), roleContributor);
AddCredit(wxT("Craig DeForest (Click Removal"), roleContributor);
AddCredit(wxT("Mitch Golden"), roleContributor);
AddCredit(wxT("Brian Gunlogson"), roleContributor);
AddCredit(wxT("Daniel Horgan"), roleContributor);
AddCredit(wxT("Steve Jolly"), roleContributor);
AddCredit(wxT("Arun Kishore"), roleContributor);
AddCredit(wxT("Paul Livesey"), roleContributor);
AddCredit(wxT("Harvey Lubin"), roleContributor);
AddCredit(wxT("Greg Mekkes"), roleContributor);
AddCredit(wxT("Abe Milde"), roleContributor);
AddCredit(wxT("Paul Nasca"), roleContributor);
AddCredit(wxT("<a href=\"http://www.paulnasca.com/\">Paul Nasca, aka Nasca Octavian Paul</a> (Paulstretch, Phaser, Wahwah)"), roleContributor);
AddCredit(wxT("Clayton Otey"), roleContributor);
AddCredit(wxT("Andr\u00e9 Pinto"), roleContributor);
AddCredit(wxT("Mark Phillips"), roleContributor);
AddCredit(wxT("Augustus Saunders"), roleContributor);
AddCredit(wxT("David R. Sky"), roleContributor);
AddCredit(wxT("Rob Sykes (libsoxr Resample, Reverb)"), roleContributor);
AddCredit(wxT("Mike Underwood"), roleContributor);
AddCredit(wxT("Philip Van Baren"), roleContributor);
AddCredit(wxT("Salvo Ventura"), roleContributor);
@ -121,7 +124,7 @@ void AboutDialog::CreateCreditsList()
AddCredit(wxT("libresample"), roleLibrary);
#endif
#if USE_LIBSAMPLERATE
AddCredit(wxT("libsamplerate"), roleLibrary);
AddCredit(wxT("libsamplerate, by Erik de Castro Lopo"), roleLibrary);
#endif
#if USE_LIBSOXR
AddCredit(wxT("libsoxr"), roleLibrary);
@ -131,8 +134,8 @@ void AboutDialog::CreateCreditsList()
AddCredit(wxT("Ogg Vorbis"), roleLibrary);
AddCredit(wxT("PortAudio"), roleLibrary);
AddCredit(wxT("portsmf"), roleLibrary);
AddCredit(wxT("sbsms"), roleLibrary);
AddCredit(wxT("SoundTouch"), roleLibrary);
AddCredit(wxT("sbsms, by Clayton Otey"), roleLibrary);
AddCredit(wxT("<a href=\"http://www.surina.net/soundtouch/\">SoundTouch</a>, by Olli Parviainen"), roleLibrary);
AddCredit(wxT("TwoLAME"), roleLibrary);
AddCredit(wxT("Vamp"), roleLibrary);
AddCredit(wxT("wxWidgets"), roleLibrary);
@ -148,7 +151,6 @@ void AboutDialog::CreateCreditsList()
AddCredit(wxT("Logan Lewis"), roleThanks);
AddCredit(wxT("David Luff"), roleThanks);
AddCredit(wxT("Jason Pepas"), roleThanks);
AddCredit(wxT("Mark Phillips"), roleThanks);
AddCredit(wxT("Jonathan Ryshpan"), roleThanks);
AddCredit(wxT("Michael Schwendt"), roleThanks);
AddCredit(wxT("Patrick Shirkey"), roleThanks);
@ -206,7 +208,7 @@ void AboutDialog::PopulateAudacityPage( ShuttleGui & S )
wxString par1Str = _(
"Audacity is a free program written by a worldwide team of volunteer <a href=\"http://audacity.sourceforge.net/community/developers\">developers</a>. \
We thank <a href=\"http://code.google.com\">Google Code</a> and <a href=\"http://sourceforge.net\">SourceForge.net</a> for hosting our project. \
We thank <a href=\"http://code.google.com\">Google Code</a> and <a href=\"http://sourceforge.net\">SourceForge</a> for hosting our project. \
Audacity is <a href=\"http://audacity.sourceforge.net/download/\">available</a> for Windows, Mac, and GNU/Linux (and other Unix-like systems).");
wxString par2Str = _(

View File

@ -76,7 +76,7 @@ public:
~ShuttleGuiBase(void);
void Init();
//-- Add functions. These only add a widget.
//-- Add functions. These only add a widget or 2.
void AddPrompt(const wxString &Prompt);
void AddUnits(const wxString &Prompt);
void AddTitle(const wxString &Prompt);

View File

@ -147,17 +147,7 @@ void AmplifyDialog::PopulateOrExchange(ShuttleGui & S)
{
wxTextValidator vld(wxFILTER_NUMERIC);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Dominic Mazzoni"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.AddSpace(0, 5);
// Amplitude
S.StartMultiColumn(2, wxCENTER);

View File

@ -481,26 +481,12 @@ EffectAutoDuckDialog::EffectAutoDuckDialog(EffectAutoDuck* effect,
S.SetBorder(5);
S.StartVerticalLay(true);
{
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("Auto Duck by Markus Meyer"));
}
S.EndHorizontalLay();
S.AddSpace(0, 5);
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
mPanel = (EffectAutoDuckPanel*)
S.AddWindow(new EffectAutoDuckPanel(this, ID_PANEL));
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.AddSpace(0, 5);
S.StartMultiColumn(6, wxCENTER);
{

View File

@ -290,19 +290,6 @@ BassTrebleDialog::BassTrebleDialog(EffectBassTreble *effect,
void BassTrebleDialog::PopulateOrExchange(ShuttleGui & S)
{
S.StartHorizontalLay(wxCENTER, false);
{
/* i18n-hint: Steve Daulton is a person's name.*/
S.AddTitle(_("by Steve Daulton"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.StartStatic(wxT(""));
{
S.StartMultiColumn(3, wxEXPAND);

View File

@ -341,18 +341,11 @@ ChangeSpeedDialog::ChangeSpeedDialog(EffectChangeSpeed *effect, wxWindow *parent
void ChangeSpeedDialog::PopulateOrExchange(ShuttleGui & S)
{
S.SetBorder(10);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("Change Speed, affecting both Tempo and Pitch") +
wxString(wxT("\n\n")) +
_("by Vaughan Johnson && Dominic Mazzoni") +
wxString(wxT("\n")) +
_("using SampleRate, by Erik de Castro Lopo"));
}
S.EndHorizontalLay();
S.SetBorder(5);
S.AddSpace(0, 5);
S.AddTitle(_("Change Speed, affecting both Tempo and Pitch"));
//
S.StartMultiColumn(2, wxCENTER);
{

View File

@ -177,16 +177,8 @@ void ChangeTempoDialog::PopulateOrExchange(ShuttleGui & S)
wxTextValidator nullvld(wxFILTER_INCLUDE_CHAR_LIST);
wxTextValidator numvld(wxFILTER_NUMERIC);
S.SetBorder(10);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("Change Tempo without Changing Pitch") +
wxString(wxT("\n\n")) +
_("by Vaughan Johnson && Dominic Mazzoni") +
wxString(wxT("\n")) +
_("using SoundTouch, by Olli Parviainen"));
}
S.EndHorizontalLay();
S.AddSpace(0, 5);
S.AddTitle(_("Change Tempo without Changing Pitch"));
S.SetBorder(5);
//

View File

@ -322,23 +322,14 @@ void ClickRemovalDialog::PopulateOrExchange(ShuttleGui & S)
wxTextValidator vld(wxFILTER_INCLUDE_CHAR_LIST);
vld.SetIncludes(wxArrayString(10, numbers));
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("Click and Pop Removal by Craig DeForest"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.AddSpace(0, 5);
S.SetBorder(10);
S.StartMultiColumn(3, wxEXPAND);
S.SetStretchyCol(2);
{
// Threshold
mThreshT = S.Id(ID_THRESH_TEXT).AddTextBox(_("Select threshold (lower is more sensitive):"),
mThreshT = S.Id(ID_THRESH_TEXT).AddTextBox(_("Threshold (lower is more sensitive):"),
wxT(""),
10);
mThreshT->SetValidator(vld);
@ -347,7 +338,7 @@ void ClickRemovalDialog::PopulateOrExchange(ShuttleGui & S)
mThreshS = S.Id(ID_THRESH_SLIDER).AddSlider(wxT(""),
0,
MAX_THRESHOLD);
mThreshS->SetName(_("Select threshold"));
mThreshS->SetName(_("Threshold"));
mThreshS->SetRange(MIN_THRESHOLD, MAX_THRESHOLD);
#if defined(__WXGTK__)
// Force a minimum size since wxGTK allows it to go to zero
@ -355,7 +346,7 @@ void ClickRemovalDialog::PopulateOrExchange(ShuttleGui & S)
#endif
// Click width
mWidthT = S.Id(ID_WIDTH_TEXT).AddTextBox(_("Max spike width (higher is more sensitive):"),
mWidthT = S.Id(ID_WIDTH_TEXT).AddTextBox(_("Max Spike Width (higher is more sensitive):"),
wxT(""),
10);
mWidthT->SetValidator(vld);
@ -364,7 +355,7 @@ void ClickRemovalDialog::PopulateOrExchange(ShuttleGui & S)
mWidthS = S.Id(ID_WIDTH_SLIDER).AddSlider(wxT(""),
0,
MAX_CLICK_WIDTH);
mWidthS->SetName(_("Max spike width"));
mWidthS->SetName(_("Max Spike Width"));
mWidthS->SetRange(MIN_CLICK_WIDTH, MAX_CLICK_WIDTH);
#if defined(__WXGTK__)
// Force a minimum size since wxGTK allows it to go to zero

View File

@ -604,12 +604,6 @@ CompressorDialog::CompressorDialog(EffectCompressor *effect, wxWindow *parent)
void CompressorDialog::PopulateOrExchange(ShuttleGui & S)
{
S.SetBorder(10);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Dominic Mazzoni"));
}
S.EndHorizontalLay();
S.SetBorder(5);
S.StartHorizontalLay(wxEXPAND, true);

View File

@ -441,8 +441,7 @@ void DtmfDialog::PopulateOrExchange( ShuttleGui & S )
wxTextValidator vldDtmf(wxFILTER_INCLUDE_CHAR_LIST);
vldDtmf.SetIncludes(wxArrayString(42, dtmfSymbols));
S.AddTitle(_("by Salvo Ventura"));
S.AddSpace(0, 5);
S.StartMultiColumn(2, wxEXPAND);
{
mDtmfStringT = S.Id(ID_DTMF_STRING_TEXT).AddTextBox(_("DTMF sequence:"), wxT(""), 10);

View File

@ -192,14 +192,6 @@ EchoDialog::EchoDialog(EffectEcho * effect, wxWindow * parent)
void EchoDialog::PopulateOrExchange(ShuttleGui & S)
{
S.StartHorizontalLay(wxCENTER, false);
{
/* i18n-hint: && in here is an escape character to get a single & on
* screen, so keep it as is */
S.AddTitle(_("by Dominic Mazzoni && Vaughan Johnson"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space

View File

@ -1112,18 +1112,10 @@ void EqualizationDialog::MakeEqualizationDialog()
// Create the base sizer
szrV = new wxBoxSizer( wxVERTICAL );
szrV->AddSpacer(10);
// -------------------------------------------------------------------
// ROW 1: Banner
// -------------------------------------------------------------------
txt = new wxStaticText(this, wxID_ANY,
/* i18n-hint: && in here is an escape character to get a single &
* on screen, so keep it as is */
_("Equalization, by Martyn Shaw && Mitch Golden"));
szrV->Add( txt, 0, wxALIGN_CENTRE|wxALL, 4 );
// -------------------------------------------------------------------
// ROW 2: EQ panel and sliders for vertical scale
// EQ panel and sliders for vertical scale
// -------------------------------------------------------------------
szr1 = new wxFlexGridSizer( 4, 0, 0 );
szr1->AddGrowableCol( 2, 1 );
@ -1198,7 +1190,7 @@ void EqualizationDialog::MakeEqualizationDialog()
szrV->Add( szr1, 1, wxEXPAND|wxALIGN_CENTER|wxALL, 0 );
// -------------------------------------------------------------------
// ROW 3: Graphic EQ - this gets laid out horizontally in onSize
// Graphic EQ - this gets laid out horizontally in onSize
// -------------------------------------------------------------------
szrG = new wxBoxSizer( wxHORIZONTAL );
@ -1233,7 +1225,7 @@ void EqualizationDialog::MakeEqualizationDialog()
szr3->SetMinSize(EQsliderSize.x/2, -1); //extra gap for last slider
// -------------------------------------------------------------------
// ROW 4a: Graphic or curve drawing?
// Graphic or curve drawing?
// -------------------------------------------------------------------
szrH = new wxBoxSizer( wxHORIZONTAL );
@ -1265,7 +1257,7 @@ void EqualizationDialog::MakeEqualizationDialog()
szrH->Add(szrL); // either szrI or szrL are visible, not both.
// -------------------------------------------------------------------
// ROW 4b: Filter length grouping
// Filter length grouping
// -------------------------------------------------------------------
// length of filter (M) label
@ -1288,7 +1280,7 @@ void EqualizationDialog::MakeEqualizationDialog()
szrV->Add( szrH, 0, wxALIGN_CENTER | wxALL, 4 );
// -------------------------------------------------------------------
// ROW 5: Curve management grouping
// Curve management grouping
// -------------------------------------------------------------------
szrC = new wxBoxSizer( wxHORIZONTAL ); //szrC is for the curves bits
@ -1319,13 +1311,10 @@ void EqualizationDialog::MakeEqualizationDialog()
szrV->Add( szrC, 0, wxALIGN_CENTER | wxALL, 0 );
// -------------------------------------------------------------------
// ROW 6: Preview, OK, & Cancel buttons
// Preview, OK, & Cancel buttons
// -------------------------------------------------------------------
szrV->Add(CreateStdButtonSizer(this, ePreviewButton|eCancelButton|eOkButton), 0, wxEXPAND);
// -------------------------------------------------------------------
// Display now
// -------------------------------------------------------------------
SetAutoLayout(false);
szrV->Show(szrG,true);

View File

@ -217,18 +217,6 @@ FindClippingDialog::FindClippingDialog(EffectFindClipping * effect, wxWindow * p
void FindClippingDialog::PopulateOrExchange(ShuttleGui & S)
{
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Leland Lucius"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.StartMultiColumn(2, wxALIGN_CENTER);
{
S.TieTextBox(_("Start threshold (samples):"),

View File

@ -731,41 +731,22 @@ void NoiseRemovalDialog::OnCancel(wxCommandEvent &event)
void NoiseRemovalDialog::PopulateOrExchange(ShuttleGui & S)
{
wxString step1Label;
wxString step1Prompt;
wxString step2Label;
wxString step2Prompt;
step1Label = _("Step 1");
step1Prompt = _("Select a few seconds of just noise so Audacity knows what to filter out,\nthen click Get Noise Profile:");
step2Label = _("Step 2");
step2Prompt = _("Select all of the audio you want filtered, choose how much noise you want\nfiltered out, and then click 'OK' to remove noise.\n");
S.StartHorizontalLay(wxCENTER, false);
S.StartStatic(_("Step 1"));
{
S.AddTitle(_("Noise Removal by Dominic Mazzoni"));
}
S.EndHorizontalLay();
S.StartStatic(step1Label);
{
S.AddVariableText(step1Prompt);
m_pButton_GetProfile = S.Id(ID_BUTTON_GETPROFILE).
AddButton(_("&Get Noise Profile"));
S.AddVariableText(_("Select a few seconds of just noise so Audacity knows what to filter out,\nthen click Get Noise Profile:"));
m_pButton_GetProfile = S.Id(ID_BUTTON_GETPROFILE).AddButton(_("&Get Noise Profile"));
}
S.EndStatic();
S.StartStatic(step2Label);
S.StartStatic(_("Step 2"));
{
S.AddVariableText(step2Prompt);
S.AddVariableText(_("Select all of the audio you want filtered, choose how much noise you want\nfiltered out, and then click 'OK' to remove noise.\n"));
S.StartMultiColumn(3, wxEXPAND);
S.SetStretchyCol(2);
{
wxTextValidator vld(wxFILTER_NUMERIC);
mGainT = S.Id(ID_GAIN_TEXT).AddTextBox(_("Noise re&duction (dB):"),
wxT(""),
0);
mGainT = S.Id(ID_GAIN_TEXT).AddTextBox(_("Noise re&duction (dB):"), wxT(""), 0);
S.SetStyle(wxSL_HORIZONTAL);
mGainT->SetValidator(vld);
mGainS = S.Id(ID_GAIN_SLIDER).AddSlider(wxT(""), 0, GAIN_MAX);

View File

@ -463,30 +463,22 @@ void NormalizeDialog::PopulateOrExchange(ShuttleGui & S)
{
wxTextValidator vld(wxFILTER_NUMERIC);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Dominic Mazzoni"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.StartTwoColumn();
{
S.StartVerticalLay(false);
{
mDCCheckBox = S.Id(ID_DC_REMOVE).AddCheckBox(_("Remove any DC offset (center on 0.0 vertically)"),
mDC ? wxT("true") : wxT("false"));
mGainCheckBox = S.Id(ID_NORMALIZE_AMPLITUDE).AddCheckBox(_("Normalize maximum amplitude to:"),
mGain ? wxT("true") : wxT("false"));
mDCCheckBox =
S.Id(ID_DC_REMOVE).
AddCheckBox(_("Remove DC offset (center on 0.0 vertically)"),
mDC ? wxT("true") : wxT("false"));
S.StartHorizontalLay(wxALIGN_CENTER, false);
{
mGainCheckBox =
S.Id(ID_NORMALIZE_AMPLITUDE).
AddCheckBox(_("Normalize maximum amplitude to"),
mGain ? wxT("true") : wxT("false"));
mLevelTextCtrl = S.Id(ID_LEVEL_TEXT).AddTextBox(wxT(""), wxT(""), 10);
mLevelTextCtrl->SetValidator(vld);
mLevelTextCtrl->SetName(_("Maximum amplitude dB"));

View File

@ -414,16 +414,8 @@ END_EVENT_TABLE()
};
void PaulstretchDialog::PopulateOrExchange(ShuttleGui & S){
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Nasca Octavian Paul"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
S.EndHorizontalLay();
void PaulstretchDialog::PopulateOrExchange(ShuttleGui & S)
{
S.StartMultiColumn(2, wxALIGN_CENTER);
{
/* i18n-hint: This is how many times longer the sound will be, e.g. applying

View File

@ -215,12 +215,7 @@ PhaserDialog::PhaserDialog(EffectPhaser * effect, wxWindow * parent)
void PhaserDialog::PopulateOrExchange(ShuttleGui & S)
{
wxTextValidator vld(wxFILTER_NUMERIC);
S.SetBorder(10);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Nasca Octavian Paul"));
}
S.EndHorizontalLay();
S.SetBorder(5);
S.StartMultiColumn(3, wxEXPAND);

View File

@ -210,18 +210,6 @@ void RepeatDialog::PopulateOrExchange(ShuttleGui & S)
wxTextValidator vld(wxFILTER_INCLUDE_CHAR_LIST);
vld.SetIncludes(wxArrayString(10, numbers));
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Dominic Mazzoni && Vaughan Johnson"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
mRepeatCount = S.Id(ID_REPEAT_TEXT).AddTextBox(_("Number of times to repeat:"),

View File

@ -310,9 +310,6 @@ ReverbDialogue::ReverbDialogue(EffectReverb * effect, wxWindow * parent):
void ReverbDialogue::PopulateOrExchange(ShuttleGui & s)
{
s.StartHorizontalLay(wxCENTER, false);
s.AddTitle(_("by Rob Sykes")); /* i18n-hint: Rob Sykes is a person's name.*/
s.EndHorizontalLay();
s.StartHorizontalLay(wxCENTER, false); // Add a little space
s.EndHorizontalLay();

View File

@ -169,7 +169,7 @@ BEGIN_EVENT_TABLE(TimeScaleDialog, EffectDialog)
END_EVENT_TABLE()
TimeScaleDialog::TimeScaleDialog(EffectTimeScale *effect, wxWindow *parent)
: EffectDialog(parent, _("Time Scale"), INSERT_EFFECT),
: EffectDialog(parent, _("Sliding Time Scale/Pitch Shift"), INSERT_EFFECT),
mEffect(effect)
{
m_bLoopDetect = false;
@ -206,16 +206,9 @@ void TimeScaleDialog::PopulateOrExchange(ShuttleGui & S)
wxTextValidator nullvld(wxFILTER_INCLUDE_CHAR_LIST);
wxTextValidator numvld(wxFILTER_NUMERIC);
S.SetBorder(10);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("Sliding Time Scale/Pitch Shift") +
wxString(wxT("\n")) +
_("using SBSMS, by Clayton Otey"));
}
S.EndHorizontalLay();
S.SetBorder(5);
S.AddSpace(0, 5);
S.StartMultiColumn(2, 0);
// Rate Start
S.StartStatic(_("Initial Tempo Change (%)"));

View File

@ -528,17 +528,7 @@ TruncSilenceDialog::TruncSilenceDialog(EffectTruncSilence * effect,
void TruncSilenceDialog::PopulateOrExchange(ShuttleGui & S)
{
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Lynn Allan && Philip Van Baren"));
}
S.EndHorizontalLay();
S.StartHorizontalLay(wxCENTER, false);
{
// Add a little space
}
S.EndHorizontalLay();
S.AddSpace(0, 5);
S.StartThreeColumn();
{

View File

@ -210,13 +210,9 @@ WahwahDialog::WahwahDialog(EffectWahwah * effect, wxWindow * parent)
void WahwahDialog::PopulateOrExchange(ShuttleGui & S)
{
wxTextValidator vld(wxFILTER_NUMERIC);
S.SetBorder(10);
S.StartHorizontalLay(wxCENTER, false);
{
S.AddTitle(_("by Nasca Octavian Paul"));
}
S.EndHorizontalLay();
S.SetBorder(5);
S.AddSpace(0, 5);
S.StartMultiColumn(3, wxCENTER);
{