Built-in effect dialogs: add access keys where necessary

Several of the dialog were missing acccess keys.
Note: access keys not added to Distortion effect as yet, due to complexity of control names changing when the Distortion type is changed.
This commit is contained in:
David Bailes 2020-03-27 10:41:30 +00:00
parent f449607751
commit eeeb4f3e1f
14 changed files with 56 additions and 56 deletions

View File

@ -245,7 +245,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
.Validator<FloatingPointValidator<double>>(
precision, &mAmp, NumValidatorStyle::ONE_TRAILING_ZERO, MIN_Amp, MAX_Amp
)
.AddTextBox(XO("Amplification (dB):"), wxT(""), 12);
.AddTextBox(XO("&Amplification (dB):"), wxT(""), 12);
}
S.EndMultiColumn();
@ -272,7 +272,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
RoundValue( precision + 1, MIN_Amp + LINEAR_TO_DB(mPeak) ),
RoundValue( precision + 1, MAX_Amp + LINEAR_TO_DB(mPeak) )
)
.AddTextBox(XO("New Peak Amplitude (dB):"), wxT(""), 12);
.AddTextBox(XO("&New Peak Amplitude (dB):"), wxT(""), 12);
}
S.EndMultiColumn();
@ -281,7 +281,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
{
mClip = S.Id(ID_Clip).Disable( batch )
.AddCheckBox(XO("Allow clipping"), false);
.AddCheckBox(XO("Allo&w clipping"), false);
}
S.EndHorizontalLay();
}

View File

@ -442,7 +442,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
MIN_DuckAmountDb, MAX_DuckAmountDb
)
.NameSuffix(XO("db"))
.AddTextBox(XO("Duck amount:"), wxT(""), 10);
.AddTextBox(XO("Duck &amount:"), wxT(""), 10);
S.AddUnits(XO("dB"));
mMaximumPauseBox = S.Validator<FloatingPointValidator<double>>(
@ -450,7 +450,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
MIN_MaximumPause, MAX_MaximumPause
)
.NameSuffix(XO("seconds"))
.AddTextBox(XO("Maximum pause:"), wxT(""), 10);
.AddTextBox(XO("Ma&ximum pause:"), wxT(""), 10);
S.AddUnits(XO("seconds"));
mOuterFadeDownLenBox = S.Validator<FloatingPointValidator<double>>(
@ -458,7 +458,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
MIN_OuterFadeDownLen, MAX_OuterFadeDownLen
)
.NameSuffix(XO("seconds"))
.AddTextBox(XO("Outer fade down length:"), wxT(""), 10);
.AddTextBox(XO("Outer fade &down length:"), wxT(""), 10);
S.AddUnits(XO("seconds"));
mOuterFadeUpLenBox = S.Validator<FloatingPointValidator<double>>(
@ -466,7 +466,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
MIN_OuterFadeUpLen, MAX_OuterFadeUpLen
)
.NameSuffix(XO("seconds"))
.AddTextBox(XO("Outer fade up length:"), wxT(""), 10);
.AddTextBox(XO("Outer fade &up length:"), wxT(""), 10);
S.AddUnits(XO("seconds"));
mInnerFadeDownLenBox = S.Validator<FloatingPointValidator<double>>(
@ -474,7 +474,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
MIN_InnerFadeDownLen, MAX_InnerFadeDownLen
)
.NameSuffix(XO("seconds"))
.AddTextBox(XO("Inner fade down length:"), wxT(""), 10);
.AddTextBox(XO("Inner fade d&own length:"), wxT(""), 10);
S.AddUnits(XO("seconds"));
mInnerFadeUpLenBox = S.Validator<FloatingPointValidator<double>>(
@ -482,7 +482,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
MIN_InnerFadeUpLen, MAX_InnerFadeUpLen
)
.NameSuffix(XO("seconds"))
.AddTextBox(XO("Inner fade up length:"), wxT(""), 10);
.AddTextBox(XO("Inner &fade up length:"), wxT(""), 10);
S.AddUnits(XO("seconds"));
}
S.EndMultiColumn();
@ -494,7 +494,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
MIN_ThresholdDb, MAX_ThresholdDb
)
.NameSuffix(XO("db"))
.AddTextBox(XO("Threshold:"), wxT(""), 10);
.AddTextBox(XO("&Threshold:"), wxT(""), 10);
S.AddUnits(XO("dB"));
}
S.EndMultiColumn();

View File

@ -285,7 +285,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
/* i18n-hint: changing a quantity "from" one value "to" another */
.Name(XO("from"))
.MinSize( { 80, -1 } )
.AddChoice(XO("from"), pitch);
.AddChoice(XO("&from"), pitch);
m_pSpin_FromOctave = S.Id(ID_FromOctave)
.Name(XO("from Octave"))
@ -296,7 +296,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
/* i18n-hint: changing a quantity "from" one value "to" another */
.Name(XO("to"))
.MinSize( { 80, -1 } )
.AddChoice(XO("to"), pitch);
.AddChoice(XO("&to"), pitch);
m_pSpin_ToOctave = S.Id(ID_ToOctave)
.Name(XO("to Octave"))
@ -313,7 +313,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
2, &m_dSemitonesChange,
NumValidatorStyle::TWO_TRAILING_ZEROES
)
.AddTextBox(XO("Semitones (half-steps):"), wxT(""), 12);
.AddTextBox(XO("&Semitones (half-steps):"), wxT(""), 12);
}
S.EndHorizontalLay();
}
@ -330,7 +330,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::THREE_TRAILING_ZEROES,
0.0
)
.AddTextBox(XO("from"), wxT(""), 12);
.AddTextBox(XO("f&rom"), wxT(""), 12);
m_pTextCtrl_ToFrequency = S.Id(ID_ToFrequency)
.Name(XO("to (Hz)"))
@ -339,7 +339,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::THREE_TRAILING_ZEROES,
0.0
)
.AddTextBox(XO("to"), wxT(""), 12);
.AddTextBox(XO("t&o"), wxT(""), 12);
S.AddUnits(XO("Hz"));
}
@ -353,7 +353,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::THREE_TRAILING_ZEROES,
MIN_Percentage, MAX_Percentage
)
.AddTextBox(XO("Percent Change:"), wxT(""), 12);
.AddTextBox(XO("Percent C&hange:"), wxT(""), 12);
}
S.EndHorizontalLay();
@ -372,7 +372,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
S.StartMultiColumn(2);
{
mUseSBSMSCheckBox = S.Validator<wxGenericValidator>(&mUseSBSMS)
.AddCheckBox(XO("Use high quality stretching (slow)"),
.AddCheckBox(XO("&Use high quality stretching (slow)"),
mUseSBSMS);
}
S.EndMultiColumn();

View File

@ -317,7 +317,7 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::THREE_TRAILING_ZEROES,
MIN_Percentage / 100.0, ((MAX_Percentage / 100.0) + 1)
)
.AddTextBox(XO("Speed Multiplier:"), wxT(""), 12);
.AddTextBox(XO("&Speed Multiplier:"), wxT(""), 12);
mpTextCtrl_PercentChange = S.Id(ID_PercentChange)
.Validator<FloatingPointValidator<double>>(
@ -325,7 +325,7 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::THREE_TRAILING_ZEROES,
MIN_Percentage, MAX_Percentage
)
.AddTextBox(XO("Percent Change:"), wxT(""), 12);
.AddTextBox(XO("Percent C&hange:"), wxT(""), 12);
}
S.EndMultiColumn();
@ -349,13 +349,13 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S)
.Name(XO("From rpm"))
.MinSize( { 100, -1 } )
/* i18n-hint: changing a quantity "from" one value "to" another */
.AddChoice(XO("from"), kVinylStrings);
.AddChoice(XO("&from"), kVinylStrings);
mpChoice_ToVinyl = S.Id(ID_ToVinyl)
/* i18n-hint: changing a quantity "from" one value "to" another */
.Name(XO("To rpm"))
.MinSize( { 100, -1 } )
.AddChoice(XO("to"), kVinylStrings);
.AddChoice(XO("&to"), kVinylStrings);
}
S.EndMultiColumn();
@ -364,7 +364,7 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S)
{
S.StartMultiColumn(2, wxALIGN_LEFT);
{
S.AddPrompt(XO("Current Length:"));
S.AddPrompt(XO("C&urrent Length:"));
mpFromLengthCtrl = safenew
NumericTextCtrl(S.GetParent(), wxID_ANY,
@ -382,7 +382,7 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S)
.Position(wxALIGN_LEFT)
.AddWindow(mpFromLengthCtrl);
S.AddPrompt(XO("New Length:"));
S.AddPrompt(XO("&New Length:"));
mpToLengthCtrl = safenew
NumericTextCtrl(S.GetParent(), ID_ToLength,

View File

@ -244,7 +244,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
3, &m_PercentChange, NumValidatorStyle::THREE_TRAILING_ZEROES,
MIN_Percentage, MAX_Percentage
)
.AddTextBox(XO("Percent Change:"), wxT(""), 12);
.AddTextBox(XO("Percent C&hange:"), wxT(""), 12);
}
S.EndMultiColumn();
@ -270,7 +270,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::THREE_TRAILING_ZEROES
| NumValidatorStyle::ZERO_AS_BLANK)
/* i18n-hint: changing a quantity "from" one value "to" another */
.AddTextBox(XO("from"), wxT(""), 12);
.AddTextBox(XO("&from"), wxT(""), 12);
m_pTextCtrl_ToBPM = S.Id(ID_ToBPM)
/* i18n-hint: changing a quantity "from" one value "to" another */
@ -280,7 +280,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::THREE_TRAILING_ZEROES
| NumValidatorStyle::ZERO_AS_BLANK)
/* i18n-hint: changing a quantity "from" one value "to" another */
.AddTextBox(XO("to"), wxT(""), 12);
.AddTextBox(XO("&to"), wxT(""), 12);
}
S.EndHorizontalLay();
}
@ -309,7 +309,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
(m_FromLength * 100.0) / (100.0 + MIN_Percentage) )
)
/* i18n-hint: changing a quantity "from" one value "to" another */
.AddTextBox(XO("to"), wxT(""), 12);
.AddTextBox(XO("t&o"), wxT(""), 12);
}
S.EndHorizontalLay();
}
@ -319,7 +319,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
S.StartMultiColumn(2);
{
mUseSBSMSCheckBox = S.Validator<wxGenericValidator>(&mUseSBSMS)
.AddCheckBox(XO("Use high quality stretching (slow)"),
.AddCheckBox(XO("&Use high quality stretching (slow)"),
mUseSBSMS);
}
S.EndMultiColumn();

View File

@ -349,7 +349,7 @@ void EffectClickRemoval::PopulateOrExchange(ShuttleGui & S)
&mThresholdLevel, NumValidatorStyle::DEFAULT,
MIN_Threshold, MAX_Threshold
)
.AddTextBox(XO("Threshold (lower is more sensitive):"),
.AddTextBox(XO("&Threshold (lower is more sensitive):"),
wxT(""),
10);
@ -364,7 +364,7 @@ void EffectClickRemoval::PopulateOrExchange(ShuttleGui & S)
mWidthT = S.Id(ID_Width)
.Validator<IntegerValidator<int>>(
&mClickWidth, NumValidatorStyle::DEFAULT, MIN_Width, MAX_Width)
.AddTextBox(XO("Max Spike Width (higher is more sensitive):"),
.AddTextBox(XO("Max &Spike Width (higher is more sensitive):"),
wxT(""),
10);

View File

@ -266,7 +266,7 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
S.StartMultiColumn(3, wxEXPAND);
{
S.SetStretchyCol(1);
mThresholdLabel = S.AddVariableText(XO("Threshold:"), true,
mThresholdLabel = S.AddVariableText(XO("&Threshold:"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
mThresholdSlider = S.Id(ID_Threshold)
.Name(XO("Threshold"))
@ -278,7 +278,7 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
mThresholdText = S.AddVariableText(ThresholdFormat(999), true,
wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
mNoiseFloorLabel = S.AddVariableText(XO("Noise Floor:"), true,
mNoiseFloorLabel = S.AddVariableText(XO("&Noise Floor:"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
mNoiseFloorSlider = S.Id(ID_NoiseFloor)
.Name(XO("Noise Floor"))
@ -290,7 +290,7 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
mNoiseFloorText = S.AddVariableText(ThresholdFormat(999),
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
mRatioLabel = S.AddVariableText(XO("Ratio:"), true,
mRatioLabel = S.AddVariableText(XO("&Ratio:"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
mRatioSlider = S.Id(ID_Ratio)
.Name(XO("Ratio"))
@ -306,7 +306,7 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
/* i18n-hint: Particularly in percussion, sounds can be regarded as having
* an 'attack' phase where the sound builds up and a 'decay' where the
* sound dies away. So this means 'onset duration'. */
mAttackLabel = S.AddVariableText(XO("Attack Time:"), true,
mAttackLabel = S.AddVariableText(XO("&Attack Time:"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
mAttackSlider = S.Id(ID_Attack)
.Name(XO("Attack Time"))
@ -319,7 +319,7 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
AttackTimeFormat(9.99),
true, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
mDecayLabel = S.AddVariableText(XO("Release Time:"), true,
mDecayLabel = S.AddVariableText(XO("R&elease Time:"), true,
wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
mDecaySlider = S.Id(ID_Decay)
.Name(XO("Release Time"))
@ -340,9 +340,9 @@ void EffectCompressor::PopulateOrExchange(ShuttleGui & S)
S.StartHorizontalLay(wxCENTER, false);
{
/* i18n-hint: Make-up, i.e. correct for any reduction, rather than fabricate it.*/
mGainCheckBox = S.AddCheckBox(XO("Make-up gain for 0 dB after compressing"),
mGainCheckBox = S.AddCheckBox(XO("Ma&ke-up gain for 0 dB after compressing"),
DEF_Normalize);
mPeakCheckBox = S.AddCheckBox(XO("Compress based on Peaks"),
mPeakCheckBox = S.AddCheckBox(XO("C&ompress based on Peaks"),
DEF_UsePeak);
}
S.EndHorizontalLay();

View File

@ -177,12 +177,12 @@ void EffectEcho::PopulateOrExchange(ShuttleGui & S)
3, &delay, NumValidatorStyle::NO_TRAILING_ZEROES,
MIN_Delay, MAX_Delay
)
.AddTextBox(XO("Delay time (seconds):"), wxT(""), 10);
.AddTextBox(XO("&Delay time (seconds):"), wxT(""), 10);
S.Validator<FloatingPointValidator<double>>(
3, &decay, NumValidatorStyle::NO_TRAILING_ZEROES,
MIN_Decay, MAX_Decay)
.AddTextBox(XO("Decay factor:"), wxT(""), 10);
.AddTextBox(XO("D&ecay factor:"), wxT(""), 10);
}
S.EndMultiColumn();
}

View File

@ -297,7 +297,7 @@ void EffectLoudness::PopulateOrExchange(ShuttleGui & S)
{
S.StartHorizontalLay(wxALIGN_LEFT, false);
{
S.AddVariableText(XO("Normalize"), false,
S.AddVariableText(XO("&Normalize"), false,
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
S
@ -306,7 +306,7 @@ void EffectLoudness::PopulateOrExchange(ShuttleGui & S)
Msgids(kNormalizeTargetStrings, nAlgos),
mNormalizeTo
);
S.AddVariableText(XO("to"), false,
S.AddVariableText(XO("t&o"), false,
wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT);
mLevelTextCtrl = S
@ -328,12 +328,12 @@ void EffectLoudness::PopulateOrExchange(ShuttleGui & S)
mStereoIndCheckBox = S
.Validator<wxGenericValidator>( &mStereoInd )
.AddCheckBox(XO("Normalize stereo channels independently"),
.AddCheckBox(XO("Normalize &stereo channels independently"),
mStereoInd );
mDualMonoCheckBox = S
.Validator<wxGenericValidator>( &mDualMono )
.AddCheckBox(XO("Treat mono as dual-mono (recommended)"),
.AddCheckBox(XO("&Treat mono as dual-mono (recommended)"),
mDualMono );
}
S.EndVerticalLay();

View File

@ -298,7 +298,7 @@ void EffectNormalize::PopulateOrExchange(ShuttleGui & S)
S.StartVerticalLay(false);
{
mDCCheckBox = S.Validator<wxGenericValidator>(&mDC)
.AddCheckBox(XO("Remove DC offset (center on 0.0 vertically)"),
.AddCheckBox(XO("&Remove DC offset (center on 0.0 vertically)"),
mDC);
S.StartHorizontalLay(wxALIGN_LEFT, false);
@ -306,7 +306,7 @@ void EffectNormalize::PopulateOrExchange(ShuttleGui & S)
mGainCheckBox = S
.MinSize()
.Validator<wxGenericValidator>(&mGain)
.AddCheckBox(XO("Normalize peak amplitude to "),
.AddCheckBox(XO("&Normalize peak amplitude to "),
mGain);
mLevelTextCtrl = S
@ -328,7 +328,7 @@ void EffectNormalize::PopulateOrExchange(ShuttleGui & S)
mStereoIndCheckBox = S
.Validator<wxGenericValidator>(&mStereoInd)
.AddCheckBox(XO("Normalize stereo channels independently"),
.AddCheckBox(XO("N&ormalize stereo channels independently"),
mStereoInd);
}
S.EndVerticalLay();

View File

@ -206,11 +206,11 @@ void EffectPaulstretch::PopulateOrExchange(ShuttleGui & S)
* the effect to a 1-second sample, with the default Stretch Factor of 10.0
* will give an (approximately) 10 second sound
*/
.AddTextBox(XO("Stretch Factor:"), wxT(""), 10);
.AddTextBox(XO("&Stretch Factor:"), wxT(""), 10);
S.Validator<FloatingPointValidator<float>>(
3, &mTime_resolution, NumValidatorStyle::ONE_TRAILING_ZERO, MIN_Time)
.AddTextBox(XO("Time Resolution (seconds):"), wxT(""), 10);
.AddTextBox(XO("&Time Resolution (seconds):"), wxT(""), 10);
}
S.EndMultiColumn();
};

View File

@ -183,7 +183,7 @@ void EffectRepeat::PopulateOrExchange(ShuttleGui & S)
&repeatCount, NumValidatorStyle::DEFAULT,
MIN_Count, 2147483647 / mProjectRate
)
.AddTextBox(XO("Number of repeats to add:"), wxT(""), 12);
.AddTextBox(XO("&Number of repeats to add:"), wxT(""), 12);
}
S.EndHorizontalLay();

View File

@ -265,7 +265,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::NO_TRAILING_ZEROES,
MIN_HalfStepsStart, MAX_HalfStepsStart
)
.AddTextBox(XO("(semitones) [-12 to 12]:"), wxT(""), 12);
.AddTextBox(XO("(&semitones) [-12 to 12]:"), wxT(""), 12);
m_pTextCtrl_PitchPercentChangeStart = S.Id(ID_PitchPercentChangeStart)
@ -291,7 +291,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::NO_TRAILING_ZEROES,
MIN_HalfStepsEnd, MAX_HalfStepsEnd
)
.AddTextBox(XO("(semitones) [-12 to 12]:"), wxT(""), 12);
.AddTextBox(XO("(s&emitones) [-12 to 12]:"), wxT(""), 12);
m_pTextCtrl_PitchPercentChangeEnd = S.Id(ID_PitchPercentChangeEnd)
.Validator<FloatingPointValidator<double>>(

View File

@ -768,7 +768,7 @@ void EffectTruncSilence::PopulateOrExchange(ShuttleGui & S)
MIN_Threshold, MAX_Threshold
)
.NameSuffix(XO("db"))
.AddTextBox(XO("Threshold:"), wxT(""), 0);
.AddTextBox(XO("&Threshold:"), wxT(""), 0);
S.AddUnits(XO("dB"));
// Ignored silence
@ -777,7 +777,7 @@ void EffectTruncSilence::PopulateOrExchange(ShuttleGui & S)
NumValidatorStyle::NO_TRAILING_ZEROES,
MIN_Minimum, MAX_Minimum)
.NameSuffix(XO("seconds"))
.AddTextBox(XO("Duration:"), wxT(""), 12);
.AddTextBox(XO("&Duration:"), wxT(""), 12);
S.AddUnits(XO("seconds"));
}
S.EndMultiColumn();
@ -806,7 +806,7 @@ void EffectTruncSilence::PopulateOrExchange(ShuttleGui & S)
MIN_Truncate, MAX_Truncate
)
.NameSuffix(XO("seconds"))
.AddTextBox(XO("Truncate to:"), wxT(""), 12);
.AddTextBox(XO("Tr&uncate to:"), wxT(""), 12);
S.AddUnits(XO("seconds"));
mSilenceCompressPercentT = S.Validator<FloatingPointValidator<double>>(
@ -815,14 +815,14 @@ void EffectTruncSilence::PopulateOrExchange(ShuttleGui & S)
MIN_Compress, MAX_Compress
)
.NameSuffix(XO("%"))
.AddTextBox(XO("Compress to:"), wxT(""), 12);
.AddTextBox(XO("C&ompress to:"), wxT(""), 12);
S.AddUnits(XO("%"));
}
S.EndMultiColumn();
S.StartMultiColumn(2, wxALIGN_CENTER_HORIZONTAL);
{
mIndependent = S.AddCheckBox(XO("Truncate tracks independently"),
mIndependent = S.AddCheckBox(XO("Trunc&ate tracks independently"),
mbIndependent);
}
S.EndMultiColumn();