1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-01 16:19:43 +02:00

NumericTextCtrl::SetName takes TranslatableString

This commit is contained in:
Paul Licameli 2019-12-17 20:55:20 -05:00
parent 2214b5ff3b
commit 5909f67fdb
8 changed files with 44 additions and 23 deletions

View File

@ -2885,7 +2885,7 @@ void VSTEffect::BuildPlain()
mSampleRate,
NumericTextCtrl::Options{}
.AutoPos(true));
mDuration->SetName(_("Duration"));
mDuration->SetName( XO("Duration") );
gridSizer->Add(mDuration, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
gridSizer->Add(1, 1, 0);
gridSizer->Add(1, 1, 0);

View File

@ -1251,7 +1251,7 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
mSampleRate,
NumericTextCtrl::Options{}
.AutoPos(true));
mDuration->SetName(_("Duration"));
mDuration->SetName( XO("Duration") );
gridSizer->Add(mDuration, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
gridSizer->Add(1, 1, 0);
gridSizer->Add(1, 1, 0);

View File

@ -2334,7 +2334,7 @@ bool LV2Effect::BuildPlain()
mSampleRate,
NumericTextCtrl::Options {}
.AutoPos(true));
mDuration->SetName(_("Duration"));
mDuration->SetName( XO("Duration") );
sizer->Add(mDuration, 0, wxALIGN_CENTER | wxALL, 5);
groupSizer->Add(sizer.release(), 0, wxALIGN_CENTER | wxALL, 5);

View File

@ -162,12 +162,13 @@ auStaticText * SelectionBar::AddTitle( const wxString & Title, wxSizer * pSizer
}
NumericTextCtrl * SelectionBar::AddTime( const wxString Name, int id, wxSizer * pSizer ){
NumericTextCtrl * SelectionBar::AddTime(
const TranslatableString &Name, int id, wxSizer * pSizer ){
auto formatName = mListener ? mListener->AS_GetSelectionFormat()
: NumericFormatSymbol{};
auto pCtrl = safenew NumericTextCtrl(
this, id, NumericConverter::TIME, formatName, 0.0, mRate);
pCtrl->SetName(Name);
pCtrl->SetName( Name );
pSizer->Add(pCtrl, 0, wxALIGN_TOP | wxRIGHT, 5);
return pCtrl;
}
@ -327,7 +328,7 @@ void SelectionBar::Populate()
AddVLine( mainSizer );
mAudioTime = AddTime(_("Audio Position"), AudioTimeID, mainSizer );
mAudioTime = AddTime( XO("Audio Position"), AudioTimeID, mainSizer );
// This vertical line is NOT just for decoration!
// It works around a wxWidgets-on-Windows RadioButton bug, where tabbing
// into the radiobutton group jumps to selecting the first item in the
@ -341,10 +342,10 @@ void SelectionBar::Populate()
{
auto hSizer = std::make_unique<wxBoxSizer>(wxHORIZONTAL);
mStartTime = AddTime(_("Start"), StartTimeID, hSizer.get() );
mLengthTime = AddTime(_("Length"), LengthTimeID, hSizer.get() );
mCenterTime = AddTime(_("Center"), CenterTimeID, hSizer.get() );
mEndTime = AddTime(_("End"), EndTimeID, hSizer.get() );
mStartTime = AddTime( XO("Start"), StartTimeID, hSizer.get() );
mLengthTime = AddTime( XO("Length"), LengthTimeID, hSizer.get() );
mCenterTime = AddTime( XO("Center"), CenterTimeID, hSizer.get() );
mEndTime = AddTime( XO("End"), EndTimeID, hSizer.get() );
mainSizer->Add(hSizer.release(), 0, wxALIGN_TOP | wxRIGHT, 0);
}
@ -557,18 +558,30 @@ void SelectionBar::SetDrivers( int driver1, int driver2 )
mDrive2 = driver2;
NumericTextCtrl ** Ctrls[4] = { &mStartTime, &mCenterTime, &mLengthTime, &mEndTime};
wxString Text[4] = { _("Start"), _("Center"), _("Length"), _("End") };
static TranslatableString Text[4] = {
/* i18n-hint noun */
XO("Start"),
XO("Center"),
XO("Length"),
/* i18n-hint noun */
XO("End")
};
for(int i=0;i<4;i++){
int id = i + StartTimeID;
int fixed = (( id == mDrive2 )?mDrive1:mDrive2)-StartTimeID;
wxString Temp = Text[i];
// i18n-hint: %s is replaced e.g by 'Length', to indicate that it will be calculated from other parameters.
wxString Format = ( (id!=mDrive1) && (id!=mDrive2 ) ) ? _("%s - driven") : "%s";
wxString Title= wxString::Format( Format, Temp );
// i18n-hint: %s1 is replaced e.g by 'Length', %s2 e.g by 'Center'.
wxString VoiceOverText = wxString::Format(_("Selection %s. %s won't change."), Temp, Text[fixed]);
const auto &Temp = Text[i];
auto Title = ( (id!=mDrive1) && (id!=mDrive2 ) )
/* i18n-hint: %s is replaced e.g by one of 'Length', 'Center',
'Start', or 'End' (translated), to indicate that it will be
calculated from other parameters. */
? XO("%s - driven").Format( Temp )
: Temp ;
auto VoiceOverText =
/* i18n-hint: each string is replaced by one of 'Length', 'Center',
'Start', or 'End' (translated) */
XO("Selection %s. %s won't change.").Format( Temp, Text[fixed] );
if( *Ctrls[i] ){
(*Ctrls[i])->SetName( Temp );
}

View File

@ -63,7 +63,7 @@ class SelectionBar final : public ToolBar {
private:
auStaticText * AddTitle( const wxString & Title,
wxSizer * pSizer );
NumericTextCtrl * AddTime( const wxString Name, int id, wxSizer * pSizer );
NumericTextCtrl * AddTime( const TranslatableString &Name, int id, wxSizer * pSizer );
void AddVLine( wxSizer * pSizer );
void SetSelectionMode(int mode);

View File

@ -197,7 +197,7 @@ void SpectralSelectionBar::Populate()
NumericTextCtrl::Options{}
.InvalidValue( true, SelectedRegion::UndefinedFrequency )
);
mCenterCtrl->SetName(_("Center Frequency"));
mCenterCtrl->SetName( XO("Center Frequency") );
subSizer->Add(mCenterCtrl, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
mWidthCtrl = safenew NumericTextCtrl(
@ -206,7 +206,7 @@ void SpectralSelectionBar::Populate()
NumericTextCtrl::Options{}
.InvalidValue( true, -1.0 )
);
mWidthCtrl->SetName(wxString(_("Bandwidth")));
mWidthCtrl->SetName( XO("Bandwidth") );
subSizer->Add(mWidthCtrl, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
mLowCtrl = safenew NumericTextCtrl(
@ -215,7 +215,7 @@ void SpectralSelectionBar::Populate()
NumericTextCtrl::Options{}
.InvalidValue( true, SelectedRegion::UndefinedFrequency )
);
mLowCtrl->SetName(_("Low Frequency"));
mLowCtrl->SetName( XO("Low Frequency") );
subSizer->Add(mLowCtrl, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
mHighCtrl = safenew NumericTextCtrl(
@ -224,7 +224,7 @@ void SpectralSelectionBar::Populate()
NumericTextCtrl::Options{}
.InvalidValue( true, SelectedRegion::UndefinedFrequency )
);
mHighCtrl->SetName(wxString(_("High Frequency")));
mHighCtrl->SetName( XO("High Frequency") );
subSizer->Add(mHighCtrl, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
mCenterCtrl->Show(mbCenterAndWidth);

View File

@ -1338,7 +1338,7 @@ NumericTextCtrl::NumericTextCtrl(wxWindow *parent, wxWindowID id,
#if wxUSE_ACCESSIBILITY
SetLabel(wxT(""));
SetName(wxT(""));
SetName( {} );
SetAccessible(safenew NumericTextCtrlAx(this));
#endif
@ -1356,6 +1356,11 @@ NumericTextCtrl::~NumericTextCtrl()
{
}
void NumericTextCtrl::SetName( const TranslatableString &name )
{
wxControl::SetName( name.Translation() );
}
// Set the focus to the first (left-most) non-zero digit
// If all digits are zero, the right-most position is focused
// If all digits are hyphens (invalid), the left-most position is focused

View File

@ -187,6 +187,9 @@ class NumericTextCtrl final : public wxControl, public NumericConverter
virtual ~NumericTextCtrl();
// Hide the inherited function that takes wxString
void SetName( const TranslatableString &name );
bool Layout() override;
void Fit() override;