Use an enum class for numeric validator styles
This commit is contained in:
parent
cad632b9b0
commit
6e7d7447c1
|
@ -217,7 +217,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
|
|||
// Amplitude
|
||||
S.StartMultiColumn(2, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldAmp(precission, &mAmp, NUM_VAL_ONE_TRAILING_ZERO);
|
||||
FloatingPointValidator<double> vldAmp(precission, &mAmp, NumValidatorStyle::ONE_TRAILING_ZERO);
|
||||
vldAmp.SetRange(MIN_Amp, MAX_Amp);
|
||||
mAmpT = S.Id(ID_Amp).AddTextBox(_("Amplification (dB):"), wxT(""), 12);
|
||||
mAmpT->SetValidator(vldAmp);
|
||||
|
@ -237,7 +237,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(2, wxCENTER);
|
||||
{
|
||||
// One extra decimal place so that rounding is visible to user (see: bug 958)
|
||||
FloatingPointValidator<double> vldNewPeak(precission + 1, &mNewPeak, NUM_VAL_ONE_TRAILING_ZERO);
|
||||
FloatingPointValidator<double> vldNewPeak(precission + 1, &mNewPeak, NumValidatorStyle::ONE_TRAILING_ZERO);
|
||||
double minAmp = MIN_Amp + LINEAR_TO_DB(mPeak);
|
||||
double maxAmp = MAX_Amp + LINEAR_TO_DB(mPeak);
|
||||
|
||||
|
|
|
@ -435,37 +435,37 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartMultiColumn(6, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldDuckAmountDb(1, &mDuckAmountDb, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldDuckAmountDb(1, &mDuckAmountDb, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldDuckAmountDb.SetRange(MIN_DuckAmountDb, MAX_DuckAmountDb);
|
||||
mDuckAmountDbBox = S.AddTextBox(_("Duck amount:"), wxT(""), 10);
|
||||
mDuckAmountDbBox->SetValidator(vldDuckAmountDb);
|
||||
S.AddUnits(_("dB"));
|
||||
|
||||
FloatingPointValidator<double> vldMaximumPause(2, &mMaximumPause, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldMaximumPause(2, &mMaximumPause, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldMaximumPause.SetRange(MIN_MaximumPause, MAX_MaximumPause);
|
||||
mMaximumPauseBox = S.AddTextBox(_("Maximum pause:"), wxT(""), 10);
|
||||
mMaximumPauseBox->SetValidator(vldMaximumPause);
|
||||
S.AddUnits(_("seconds"));
|
||||
|
||||
FloatingPointValidator<double> vldOuterFadeDownLen(2, &mOuterFadeDownLen, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldOuterFadeDownLen(2, &mOuterFadeDownLen, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldOuterFadeDownLen.SetRange(MIN_OuterFadeDownLen, MAX_OuterFadeDownLen);
|
||||
mOuterFadeDownLenBox = S.AddTextBox(_("Outer fade down length:"), wxT(""), 10);
|
||||
mOuterFadeDownLenBox->SetValidator(vldOuterFadeDownLen);
|
||||
S.AddUnits(_("seconds"));
|
||||
|
||||
FloatingPointValidator<double> vldOuterFadeUpLen(2, &mOuterFadeUpLen, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldOuterFadeUpLen(2, &mOuterFadeUpLen, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldOuterFadeUpLen.SetRange(MIN_OuterFadeUpLen, MAX_OuterFadeUpLen);
|
||||
mOuterFadeUpLenBox = S.AddTextBox(_("Outer fade up length:"), wxT(""), 10);
|
||||
mOuterFadeUpLenBox->SetValidator(vldOuterFadeUpLen);
|
||||
S.AddUnits(_("seconds"));
|
||||
|
||||
FloatingPointValidator<double> vldInnerFadeDownLen(2, &mInnerFadeDownLen, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldInnerFadeDownLen(2, &mInnerFadeDownLen, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldInnerFadeDownLen.SetRange(MIN_InnerFadeDownLen, MAX_InnerFadeDownLen);
|
||||
mInnerFadeDownLenBox = S.AddTextBox(_("Inner fade down length:"), wxT(""), 10);
|
||||
mInnerFadeDownLenBox->SetValidator(vldInnerFadeDownLen);
|
||||
S.AddUnits(_("seconds"));
|
||||
|
||||
FloatingPointValidator<double> vldInnerFadeUpLen(2, &mInnerFadeUpLen, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldInnerFadeUpLen(2, &mInnerFadeUpLen, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldInnerFadeUpLen.SetRange(MIN_InnerFadeUpLen, MAX_InnerFadeUpLen);
|
||||
mInnerFadeUpLenBox = S.AddTextBox(_("Inner fade up length:"), wxT(""), 10);
|
||||
mInnerFadeUpLenBox->SetValidator(vldInnerFadeUpLen);
|
||||
|
@ -475,7 +475,7 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartMultiColumn(3, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldThresholdDb(2, &mThresholdDb, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldThresholdDb(2, &mThresholdDb, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldThresholdDb.SetRange(MIN_ThresholdDb, MAX_ThresholdDb);
|
||||
mThresholdDbBox = S.AddTextBox(_("Threshold:"), wxT(""), 10);
|
||||
mThresholdDbBox->SetValidator(vldThresholdDb);
|
||||
|
|
|
@ -268,7 +268,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartHorizontalLay(wxALIGN_CENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldSemitones(2, &m_dSemitonesChange, NUM_VAL_TWO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldSemitones(2, &m_dSemitonesChange, NumValidatorStyle::TWO_TRAILING_ZEROES);
|
||||
m_pTextCtrl_SemitonesChange =
|
||||
S.Id(ID_SemitonesChange).AddTextBox(_("Semitones (half-steps):"), wxT(""), 12);
|
||||
m_pTextCtrl_SemitonesChange->SetName(_("Semitones (half-steps)"));
|
||||
|
@ -282,13 +282,13 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartMultiColumn(5, wxALIGN_CENTER); // 5, because AddTextBox adds a wxStaticText and a wxTextCtrl.
|
||||
{
|
||||
FloatingPointValidator<double> vldFromFrequency(3, &m_FromFrequency, NUM_VAL_THREE_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldFromFrequency(3, &m_FromFrequency, NumValidatorStyle::THREE_TRAILING_ZEROES);
|
||||
vldFromFrequency.SetMin(0.0);
|
||||
m_pTextCtrl_FromFrequency = S.Id(ID_FromFrequency).AddTextBox(_("from"), wxT(""), 12);
|
||||
m_pTextCtrl_FromFrequency->SetName(_("from (Hz)"));
|
||||
m_pTextCtrl_FromFrequency->SetValidator(vldFromFrequency);
|
||||
|
||||
FloatingPointValidator<double> vldToFrequency(3, &m_ToFrequency, NUM_VAL_THREE_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldToFrequency(3, &m_ToFrequency, NumValidatorStyle::THREE_TRAILING_ZEROES);
|
||||
vldToFrequency.SetMin(0.0);
|
||||
m_pTextCtrl_ToFrequency = S.Id(ID_ToFrequency).AddTextBox(_("to"), wxT(""), 12);
|
||||
m_pTextCtrl_ToFrequency->SetName(_("to (Hz)"));
|
||||
|
@ -300,7 +300,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartHorizontalLay(wxALIGN_CENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldPercentage(3, &m_dPercentChange, NUM_VAL_THREE_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldPercentage(3, &m_dPercentChange, NumValidatorStyle::THREE_TRAILING_ZEROES);
|
||||
vldPercentage.SetRange(MIN_Percentage, MAX_Percentage);
|
||||
m_pTextCtrl_PercentChange = S.Id(ID_PercentChange).AddTextBox(_("Percent Change:"), wxT(""), 12);
|
||||
m_pTextCtrl_PercentChange->SetValidator(vldPercentage);
|
||||
|
|
|
@ -304,13 +304,13 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S)
|
|||
// Speed multiplier and percent change controls.
|
||||
S.StartMultiColumn(4, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldMultiplier(3, &mMultiplier, NUM_VAL_THREE_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldMultiplier(3, &mMultiplier, NumValidatorStyle::THREE_TRAILING_ZEROES);
|
||||
vldMultiplier.SetRange(MIN_Percentage / 100.0, ((MAX_Percentage / 100.0) + 1));
|
||||
mpTextCtrl_Multiplier =
|
||||
S.Id(ID_Multiplier).AddTextBox(_("Speed Multiplier:"), wxT(""), 12);
|
||||
mpTextCtrl_Multiplier->SetValidator(vldMultiplier);
|
||||
|
||||
FloatingPointValidator<double> vldPercentage(3, &m_PercentChange, NUM_VAL_THREE_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldPercentage(3, &m_PercentChange, NumValidatorStyle::THREE_TRAILING_ZEROES);
|
||||
vldPercentage.SetRange(MIN_Percentage, MAX_Percentage);
|
||||
mpTextCtrl_PercentChange =
|
||||
S.Id(ID_PercentChange).AddTextBox(_("Percent Change:"), wxT(""), 12);
|
||||
|
|
|
@ -209,7 +209,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
|
|||
//
|
||||
S.StartMultiColumn(2, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldPercentage(3, &m_PercentChange, NUM_VAL_THREE_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldPercentage(3, &m_PercentChange, NumValidatorStyle::THREE_TRAILING_ZEROES);
|
||||
vldPercentage.SetRange(MIN_Percentage, MAX_Percentage);
|
||||
m_pTextCtrl_PercentChange = S.Id(ID_PercentChange)
|
||||
.AddTextBox(_("Percent Change:"), wxT(""), 12);
|
||||
|
@ -231,13 +231,13 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartHorizontalLay(wxALIGN_CENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldFromBPM(3, &m_FromBPM, NUM_VAL_THREE_TRAILING_ZEROES | NUM_VAL_ZERO_AS_BLANK);
|
||||
FloatingPointValidator<double> vldFromBPM(3, &m_FromBPM, NumValidatorStyle::THREE_TRAILING_ZEROES | NumValidatorStyle::ZERO_AS_BLANK);
|
||||
m_pTextCtrl_FromBPM = S.Id(ID_FromBPM)
|
||||
.AddTextBox(_("from"), wxT(""), 12);
|
||||
m_pTextCtrl_FromBPM->SetName(_("Beats per minute, from"));
|
||||
m_pTextCtrl_FromBPM->SetValidator(vldFromBPM);
|
||||
|
||||
FloatingPointValidator<double> vldToBPM(3, &m_ToBPM, NUM_VAL_THREE_TRAILING_ZEROES | NUM_VAL_ZERO_AS_BLANK);
|
||||
FloatingPointValidator<double> vldToBPM(3, &m_ToBPM, NumValidatorStyle::THREE_TRAILING_ZEROES | NumValidatorStyle::ZERO_AS_BLANK);
|
||||
m_pTextCtrl_ToBPM = S.Id(ID_ToBPM)
|
||||
.AddTextBox(_("to"), wxT(""), 12);
|
||||
m_pTextCtrl_ToBPM->SetName(_("Beats per minute, to"));
|
||||
|
@ -253,13 +253,13 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartHorizontalLay(wxALIGN_CENTER);
|
||||
{
|
||||
int precission = 2;
|
||||
FloatingPointValidator<double> vldFromLength(precission, &m_FromLength, NUM_VAL_TWO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldFromLength(precission, &m_FromLength, NumValidatorStyle::TWO_TRAILING_ZEROES);
|
||||
m_pTextCtrl_FromLength = S.Id(ID_FromLength)
|
||||
.AddTextBox(_("from"), wxT(""), 12);
|
||||
m_pTextCtrl_FromLength->SetValidator(vldFromLength);
|
||||
m_pTextCtrl_FromLength->Enable(false); // Disable because the value comes from the user selection.
|
||||
|
||||
FloatingPointValidator<double> vldToLength(2, &m_ToLength, NUM_VAL_TWO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldToLength(2, &m_ToLength, NumValidatorStyle::TWO_TRAILING_ZEROES);
|
||||
|
||||
// min and max need same precision as what we're validating (bug 963)
|
||||
double minLength = (m_FromLength * 100.0) / (100.0 + MAX_Percentage);
|
||||
|
|
|
@ -320,7 +320,7 @@ void EffectDtmf::PopulateOrExchange(ShuttleGui & S)
|
|||
mDtmfSequenceT = S.Id(ID_Sequence).AddTextBox(_("DTMF sequence:"), wxT(""), 10);
|
||||
mDtmfSequenceT->SetValidator(vldDtmf);
|
||||
|
||||
FloatingPointValidator<double> vldAmp(3, &dtmfAmplitude, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldAmp(3, &dtmfAmplitude, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldAmp.SetRange(MIN_Amplitude, MAX_Amplitude);
|
||||
S.Id(ID_Amplitude).AddTextBox(_("Amplitude (0-1):"), wxT(""), 10)->SetValidator(vldAmp);
|
||||
|
||||
|
|
|
@ -160,11 +160,11 @@ void EffectEcho::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartMultiColumn(2, wxALIGN_CENTER);
|
||||
{
|
||||
FloatingPointValidator<double> vldDelay(3, &delay, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldDelay(3, &delay, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldDelay.SetRange(MIN_Delay, MAX_Delay);
|
||||
S.AddTextBox(_("Delay time (seconds):"), wxT(""), 10)->SetValidator(vldDelay);
|
||||
|
||||
FloatingPointValidator<double> vldDecay(3, &decay, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldDecay(3, &decay, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldDecay.SetRange(MIN_Decay, MAX_Decay);
|
||||
S.AddTextBox(_("Decay factor:"), wxT(""), 10)->SetValidator(vldDecay);
|
||||
}
|
||||
|
|
|
@ -225,7 +225,7 @@ void EffectNoise::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.AddChoice(_("Noise type:"), wxT(""), &typeChoices)->SetValidator(wxGenericValidator(&mType));
|
||||
|
||||
FloatingPointValidator<double> vldAmp(6, &mAmp, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldAmp(6, &mAmp, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldAmp.SetRange(MIN_Amp, MAX_Amp);
|
||||
S.AddTextBox(_("Amplitude (0-1):"), wxT(""), 12)->SetValidator(vldAmp);
|
||||
|
||||
|
|
|
@ -292,7 +292,7 @@ void EffectNormalize::PopulateOrExchange(ShuttleGui & S)
|
|||
mGain ? wxT("true") : wxT("false"));
|
||||
mGainCheckBox->SetValidator(wxGenericValidator(&mGain));
|
||||
|
||||
FloatingPointValidator<double> vldLevel(2, &mLevel, NUM_VAL_ONE_TRAILING_ZERO);
|
||||
FloatingPointValidator<double> vldLevel(2, &mLevel, NumValidatorStyle::ONE_TRAILING_ZERO);
|
||||
vldLevel.SetRange(MIN_Level, MAX_Level);
|
||||
mLevelTextCtrl = S.AddTextBox( {}, wxT(""), 10);
|
||||
mLevelTextCtrl->SetName(_("Maximum amplitude dB"));
|
||||
|
|
|
@ -198,7 +198,7 @@ void EffectPaulstretch::PopulateOrExchange(ShuttleGui & S)
|
|||
*/
|
||||
S.AddTextBox(_("Stretch Factor:"), wxT(""), 10)->SetValidator(vldAmount);
|
||||
|
||||
FloatingPointValidator<float> vldTime(3, &mTime_resolution, NUM_VAL_ONE_TRAILING_ZERO);
|
||||
FloatingPointValidator<float> vldTime(3, &mTime_resolution, NumValidatorStyle::ONE_TRAILING_ZERO);
|
||||
vldTime.SetMin(MIN_Time);
|
||||
S.AddTextBox(_("Time Resolution (seconds):"), wxT(""), 10)->SetValidator(vldTime);
|
||||
}
|
||||
|
|
|
@ -268,7 +268,7 @@ void EffectPhaser::PopulateOrExchange(ShuttleGui & S)
|
|||
mDryWetS->SetName(_("Dry Wet"));
|
||||
mDryWetS->SetMinSize(wxSize(100, -1));
|
||||
|
||||
FloatingPointValidator<double> vldFreq(5, &mFreq, NUM_VAL_ONE_TRAILING_ZERO);
|
||||
FloatingPointValidator<double> vldFreq(5, &mFreq, NumValidatorStyle::ONE_TRAILING_ZERO);
|
||||
vldFreq.SetRange(MIN_Freq, MAX_Freq);
|
||||
mFreqT = S.Id(ID_Freq).AddTextBox(_("LFO Freq&uency (Hz):"), wxT(""), 15);
|
||||
mFreqT->SetValidator(vldFreq);
|
||||
|
|
|
@ -202,7 +202,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(1, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double>
|
||||
vldRatePercentChangeStart(3, &m_RatePercentChangeStart, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
vldRatePercentChangeStart(3, &m_RatePercentChangeStart, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldRatePercentChangeStart.SetRange(MIN_RatePercentStart, MAX_RatePercentStart);
|
||||
|
||||
m_pTextCtrl_RatePercentChangeStart = S.Id(ID_RatePercentChangeStart)
|
||||
|
@ -225,7 +225,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(1, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double>
|
||||
vldRatePercentChangeEnd(3, &m_RatePercentChangeEnd, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
vldRatePercentChangeEnd(3, &m_RatePercentChangeEnd, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldRatePercentChangeEnd.SetRange(MIN_RatePercentEnd, MAX_RatePercentEnd);
|
||||
|
||||
m_pTextCtrl_RatePercentChangeEnd = S.Id(ID_RatePercentChangeEnd)
|
||||
|
@ -249,7 +249,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(2, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double>
|
||||
vldPitchHalfStepsStart(3, &m_PitchHalfStepsStart, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
vldPitchHalfStepsStart(3, &m_PitchHalfStepsStart, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldPitchHalfStepsStart.SetRange(MIN_HalfStepsStart, MAX_HalfStepsStart);
|
||||
|
||||
m_pTextCtrl_PitchHalfStepsStart = S.Id(ID_PitchHalfStepsStart)
|
||||
|
@ -257,7 +257,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
|
|||
m_pTextCtrl_PitchHalfStepsStart->SetValidator(vldPitchHalfStepsStart);
|
||||
|
||||
FloatingPointValidator<double>
|
||||
vldPitchPercentChangeStart(3, &m_PitchPercentChangeStart, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
vldPitchPercentChangeStart(3, &m_PitchPercentChangeStart, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldPitchPercentChangeStart.SetRange(MIN_PitchPercentStart, MAX_PitchPercentStart);
|
||||
|
||||
m_pTextCtrl_PitchPercentChangeStart = S.Id(ID_PitchPercentChangeStart)
|
||||
|
@ -274,7 +274,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
|
|||
S.StartMultiColumn(2, wxCENTER);
|
||||
{
|
||||
FloatingPointValidator<double>
|
||||
vldPitchHalfStepsEnd(3, &m_PitchHalfStepsEnd, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
vldPitchHalfStepsEnd(3, &m_PitchHalfStepsEnd, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldPitchHalfStepsEnd.SetRange(MIN_HalfStepsEnd, MAX_HalfStepsEnd);
|
||||
|
||||
m_pTextCtrl_PitchHalfStepsEnd = S.Id(ID_PitchHalfStepsEnd)
|
||||
|
@ -282,7 +282,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S)
|
|||
m_pTextCtrl_PitchHalfStepsEnd->SetValidator(vldPitchHalfStepsEnd);
|
||||
|
||||
FloatingPointValidator<double>
|
||||
vldPitchPercentChangeEnd(3, &m_PitchPercentChangeEnd, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
vldPitchPercentChangeEnd(3, &m_PitchPercentChangeEnd, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldPitchPercentChangeEnd.SetRange(MIN_PitchPercentStart, MAX_PitchPercentStart);
|
||||
|
||||
m_pTextCtrl_PitchPercentChangeEnd = S.Id(ID_PitchPercentChangeEnd)
|
||||
|
|
|
@ -343,7 +343,7 @@ void EffectToneGen::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartHorizontalLay(wxLEFT, 50);
|
||||
{
|
||||
FloatingPointValidator<double> vldStartFreq(6, &mFrequency[0], NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldStartFreq(6, &mFrequency[0], NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldStartFreq.SetRange(MIN_StartFreq, GetActiveProject()->GetRate() / 2.0);
|
||||
t = S.AddTextBox( {}, wxT(""), 12);
|
||||
t->SetName(_("Frequency Hertz Start"));
|
||||
|
@ -353,7 +353,7 @@ void EffectToneGen::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartHorizontalLay(wxLEFT, 50);
|
||||
{
|
||||
FloatingPointValidator<double> vldEndFreq(6, &mFrequency[1], NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldEndFreq(6, &mFrequency[1], NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldEndFreq.SetRange(MIN_EndFreq, GetActiveProject()->GetRate() / 2.0);
|
||||
t = S.AddTextBox( {}, wxT(""), 12);
|
||||
t->SetName(_("Frequency Hertz End"));
|
||||
|
@ -368,7 +368,7 @@ void EffectToneGen::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.StartHorizontalLay(wxLEFT, 50);
|
||||
{
|
||||
FloatingPointValidator<double> vldStartAmp(6, &mAmplitude[0], NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldStartAmp(6, &mAmplitude[0], NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldStartAmp.SetRange(MIN_StartAmp, MAX_StartAmp);
|
||||
t = S.AddTextBox( {}, wxT(""), 12);
|
||||
t->SetName(_("Amplitude Start"));
|
||||
|
@ -378,7 +378,7 @@ void EffectToneGen::PopulateOrExchange(ShuttleGui & S)
|
|||
|
||||
S.StartHorizontalLay(wxLEFT, 50);
|
||||
{
|
||||
FloatingPointValidator<double> vldEndAmp(6, &mAmplitude[1], NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldEndAmp(6, &mAmplitude[1], NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldEndAmp.SetRange(MIN_EndAmp, MAX_EndAmp);
|
||||
t = S.AddTextBox( {}, wxT(""), 12);
|
||||
t->SetName(_("Amplitude End"));
|
||||
|
@ -393,12 +393,12 @@ void EffectToneGen::PopulateOrExchange(ShuttleGui & S)
|
|||
}
|
||||
else
|
||||
{
|
||||
FloatingPointValidator<double> vldFrequency(6, &mFrequency[0], NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldFrequency(6, &mFrequency[0], NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldFrequency.SetRange(MIN_Frequency, GetActiveProject()->GetRate() / 2.0);
|
||||
t = S.AddTextBox(_("Frequency (Hz):"), wxT(""), 12);
|
||||
t->SetValidator(vldFrequency);
|
||||
|
||||
FloatingPointValidator<double> vldAmplitude(6, &mAmplitude[0], NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldAmplitude(6, &mAmplitude[0], NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldAmplitude.SetRange(MIN_Amplitude, MAX_Amplitude);
|
||||
t = S.AddTextBox(_("Amplitude (0-1):"), wxT(""), 12);
|
||||
t->SetValidator(vldAmplitude);
|
||||
|
|
|
@ -720,7 +720,7 @@ void EffectTruncSilence::PopulateOrExchange(ShuttleGui & S)
|
|||
S.AddSpace(0); // 'choices' already includes units.
|
||||
|
||||
// Ignored silence
|
||||
FloatingPointValidator<double> vldDur(3, &mInitialAllowedSilence, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldDur(3, &mInitialAllowedSilence, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldDur.SetRange(MIN_Minimum, MAX_Minimum);
|
||||
mInitialAllowedSilenceT = S.AddTextBox(_("Duration:"), wxT(""), 12);
|
||||
mInitialAllowedSilenceT->SetValidator(vldDur);
|
||||
|
@ -744,13 +744,13 @@ void EffectTruncSilence::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
// Truncation / Compression factor
|
||||
|
||||
FloatingPointValidator<double> vldTrunc(3, &mTruncLongestAllowedSilence, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldTrunc(3, &mTruncLongestAllowedSilence, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldTrunc.SetRange(MIN_Truncate, MAX_Truncate);
|
||||
mTruncLongestAllowedSilenceT = S.AddTextBox(_("Truncate to:"), wxT(""), 12);
|
||||
mTruncLongestAllowedSilenceT->SetValidator(vldTrunc);
|
||||
S.AddUnits(_("seconds"));
|
||||
|
||||
FloatingPointValidator<double> vldComp(3, &mSilenceCompressPercent, NUM_VAL_NO_TRAILING_ZEROES);
|
||||
FloatingPointValidator<double> vldComp(3, &mSilenceCompressPercent, NumValidatorStyle::NO_TRAILING_ZEROES);
|
||||
vldComp.SetRange(MIN_Compress, MAX_Compress);
|
||||
mSilenceCompressPercentT = S.AddTextBox(_("Compress to:"), wxT(""), 12);
|
||||
mSilenceCompressPercentT->SetValidator(vldComp);
|
||||
|
|
|
@ -231,7 +231,7 @@ void EffectWahwah::PopulateOrExchange(ShuttleGui & S)
|
|||
{
|
||||
S.SetStretchyCol(2);
|
||||
|
||||
FloatingPointValidator<double> vldfreq(5, &mFreq, NUM_VAL_ONE_TRAILING_ZERO);
|
||||
FloatingPointValidator<double> vldfreq(5, &mFreq, NumValidatorStyle::ONE_TRAILING_ZERO);
|
||||
vldfreq.SetRange(MIN_Freq, MAX_Freq);
|
||||
mFreqT = S.Id(ID_Freq).AddTextBox(_("LFO Freq&uency (Hz):"), wxT(""), 12);
|
||||
mFreqT->SetValidator(vldfreq);
|
||||
|
|
|
@ -1364,15 +1364,15 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
|
|||
// Set number of decimal places
|
||||
if (upper - lower < 10.0)
|
||||
{
|
||||
vld.SetStyle(NUM_VAL_THREE_TRAILING_ZEROES);
|
||||
vld.SetStyle(NumValidatorStyle::THREE_TRAILING_ZEROES);
|
||||
}
|
||||
else if (upper - lower < 100.0)
|
||||
{
|
||||
vld.SetStyle(NUM_VAL_TWO_TRAILING_ZEROES);
|
||||
vld.SetStyle(NumValidatorStyle::TWO_TRAILING_ZEROES);
|
||||
}
|
||||
else
|
||||
{
|
||||
vld.SetStyle(NUM_VAL_ONE_TRAILING_ZERO);
|
||||
vld.SetStyle(NumValidatorStyle::ONE_TRAILING_ZERO);
|
||||
}
|
||||
|
||||
mFields[p]->SetValidator(vld);
|
||||
|
|
|
@ -1694,9 +1694,9 @@ bool LV2Effect::BuildPlain()
|
|||
|
||||
// Set number of decimal places
|
||||
float range = ctrl.mHi - ctrl.mLo;
|
||||
int style = range < 10 ? NUM_VAL_THREE_TRAILING_ZEROES :
|
||||
range < 100 ? NUM_VAL_TWO_TRAILING_ZEROES :
|
||||
NUM_VAL_ONE_TRAILING_ZERO;
|
||||
auto style = range < 10 ? NumValidatorStyle::THREE_TRAILING_ZEROES :
|
||||
range < 100 ? NumValidatorStyle::TWO_TRAILING_ZEROES :
|
||||
NumValidatorStyle::ONE_TRAILING_ZERO;
|
||||
vld.SetStyle(style);
|
||||
|
||||
mFields[p]->SetValidator(vld);
|
||||
|
|
|
@ -2241,9 +2241,9 @@ void NyquistEffect::BuildEffectWindow(ShuttleGui & S)
|
|||
vld.SetRange(ctrl.low, ctrl.high);
|
||||
|
||||
// Set number of decimal places
|
||||
int style = range < 10 ? NUM_VAL_THREE_TRAILING_ZEROES :
|
||||
range < 100 ? NUM_VAL_TWO_TRAILING_ZEROES :
|
||||
NUM_VAL_ONE_TRAILING_ZERO;
|
||||
auto style = range < 10 ? NumValidatorStyle::THREE_TRAILING_ZEROES :
|
||||
range < 100 ? NumValidatorStyle::TWO_TRAILING_ZEROES :
|
||||
NumValidatorStyle::ONE_TRAILING_ZERO;
|
||||
vld.SetStyle(style);
|
||||
|
||||
item->SetValidator(vld);
|
||||
|
|
|
@ -671,9 +671,9 @@ void VampEffect::PopulateOrExchange(ShuttleGui & S)
|
|||
vld.SetRange(mParameters[p].minValue, mParameters[p].maxValue);
|
||||
|
||||
float range = mParameters[p].maxValue - mParameters[p].minValue;
|
||||
int style = range < 10 ? NUM_VAL_THREE_TRAILING_ZEROES :
|
||||
range < 100 ? NUM_VAL_TWO_TRAILING_ZEROES :
|
||||
NUM_VAL_ONE_TRAILING_ZERO;
|
||||
auto style = range < 10 ? NumValidatorStyle::THREE_TRAILING_ZEROES :
|
||||
range < 100 ? NumValidatorStyle::TWO_TRAILING_ZEROES :
|
||||
NumValidatorStyle::ONE_TRAILING_ZERO;
|
||||
vld.SetStyle(style);
|
||||
|
||||
S.Id(ID_Texts + p);
|
||||
|
|
|
@ -55,15 +55,15 @@ END_EVENT_TABLE()
|
|||
int NumValidatorBase::GetFormatFlags() const
|
||||
{
|
||||
int flags = NumberFormatter::Style_None;
|
||||
if ( m_style & NUM_VAL_THOUSANDS_SEPARATOR )
|
||||
if ( m_style & NumValidatorStyle::THOUSANDS_SEPARATOR )
|
||||
flags |= NumberFormatter::Style_WithThousandsSep;
|
||||
if ( m_style & NUM_VAL_NO_TRAILING_ZEROES )
|
||||
if ( m_style & NumValidatorStyle::NO_TRAILING_ZEROES )
|
||||
flags |= NumberFormatter::Style_NoTrailingZeroes;
|
||||
if ( m_style & NUM_VAL_ONE_TRAILING_ZERO )
|
||||
if ( m_style & NumValidatorStyle::ONE_TRAILING_ZERO )
|
||||
flags |= NumberFormatter::Style_OneTrailingZero;
|
||||
if ( m_style & NUM_VAL_TWO_TRAILING_ZEROES )
|
||||
if ( m_style & NumValidatorStyle::TWO_TRAILING_ZEROES )
|
||||
flags |= NumberFormatter::Style_TwoTrailingZeroes;
|
||||
if ( m_style & NUM_VAL_THREE_TRAILING_ZEROES )
|
||||
if ( m_style & NumValidatorStyle::THREE_TRAILING_ZEROES )
|
||||
flags |= NumberFormatter::Style_ThreeTrailingZeroes;
|
||||
|
||||
return flags;
|
||||
|
@ -353,7 +353,7 @@ bool IntegerValidatorBase::DoValidateNumber(wxString * errMsg) const
|
|||
if ( s.empty() )
|
||||
{
|
||||
// Is blank, but allowed. Stop here
|
||||
if ( HasFlag(NUM_VAL_ZERO_AS_BLANK) )
|
||||
if ( HasFlag(NumValidatorStyle::ZERO_AS_BLANK) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -478,7 +478,7 @@ bool FloatingPointValidatorBase::DoValidateNumber(wxString * errMsg) const
|
|||
|
||||
if ( s.empty() )
|
||||
{
|
||||
if ( HasFlag(NUM_VAL_ZERO_AS_BLANK) )
|
||||
if ( HasFlag(NumValidatorStyle::ZERO_AS_BLANK) )
|
||||
return true; //Is blank, but allowed. Stop here
|
||||
else
|
||||
{
|
||||
|
|
|
@ -24,17 +24,23 @@
|
|||
#define wxTextEntry wxTextCtrl
|
||||
|
||||
// Bit masks used for numeric validator styles.
|
||||
enum NumValidatorStyle
|
||||
enum class NumValidatorStyle : int
|
||||
{
|
||||
NUM_VAL_DEFAULT = 0x0,
|
||||
NUM_VAL_THOUSANDS_SEPARATOR = 0x1,
|
||||
NUM_VAL_ZERO_AS_BLANK = 0x2,
|
||||
NUM_VAL_NO_TRAILING_ZEROES = 0x4,
|
||||
NUM_VAL_ONE_TRAILING_ZERO = 0x8,
|
||||
NUM_VAL_TWO_TRAILING_ZEROES = 0x10,
|
||||
NUM_VAL_THREE_TRAILING_ZEROES = 0x20
|
||||
DEFAULT = 0x0,
|
||||
THOUSANDS_SEPARATOR = 0x1,
|
||||
ZERO_AS_BLANK = 0x2,
|
||||
NO_TRAILING_ZEROES = 0x4,
|
||||
ONE_TRAILING_ZERO = 0x8,
|
||||
TWO_TRAILING_ZEROES = 0x10,
|
||||
THREE_TRAILING_ZEROES = 0x20
|
||||
};
|
||||
|
||||
inline NumValidatorStyle operator | (NumValidatorStyle x, NumValidatorStyle y)
|
||||
{ return NumValidatorStyle( int(x) | int(y) ); }
|
||||
|
||||
inline int operator & (NumValidatorStyle x, NumValidatorStyle y)
|
||||
{ return int(x) & int(y); }
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Base class for all numeric validators.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -43,14 +49,14 @@ class NumValidatorBase /* not final */ : public wxValidator
|
|||
{
|
||||
public:
|
||||
// Change the validator style. Usually it's specified during construction.
|
||||
void SetStyle(int style) { m_style = style; }
|
||||
void SetStyle(NumValidatorStyle style) { m_style = style; }
|
||||
|
||||
// Called when the value in the window must be validated.
|
||||
// This function can pop up an error message.
|
||||
bool Validate(wxWindow * parent) override;
|
||||
|
||||
protected:
|
||||
NumValidatorBase(int style)
|
||||
NumValidatorBase(NumValidatorStyle style)
|
||||
{
|
||||
m_style = style;
|
||||
m_minSet = false;
|
||||
|
@ -74,7 +80,7 @@ protected:
|
|||
// still test the return value for safety.
|
||||
wxTextEntry *GetTextEntry() const;
|
||||
|
||||
// Convert NUM_VAL_THOUSANDS_SEPARATOR and NUM_VAL_NO_TRAILING_ZEROES
|
||||
// Convert NumValidatorStyle::THOUSANDS_SEPARATOR and NumValidatorStyle::NO_TRAILING_ZEROES
|
||||
// bits of our style to the corresponding NumberFormatter::Style values.
|
||||
int GetFormatFlags() const;
|
||||
|
||||
|
@ -124,7 +130,7 @@ private:
|
|||
|
||||
|
||||
// Combination of wxVAL_NUM_XXX values.
|
||||
int m_style;
|
||||
NumValidatorStyle m_style;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
|
@ -211,7 +217,7 @@ public:
|
|||
|
||||
const wxString s(control->GetValue());
|
||||
LongestValueType value;
|
||||
if ( s.empty() && BaseValidator::HasFlag(NUM_VAL_ZERO_AS_BLANK) )
|
||||
if ( s.empty() && BaseValidator::HasFlag(NumValidatorStyle::ZERO_AS_BLANK) )
|
||||
value = 0;
|
||||
else if ( !BaseValidator::FromString(s, &value) )
|
||||
return false;
|
||||
|
@ -226,7 +232,7 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
NumValidator(ValueType *value, int style)
|
||||
NumValidator(ValueType *value, NumValidatorStyle style)
|
||||
: BaseValidator(style),
|
||||
m_value(value)
|
||||
{
|
||||
|
@ -244,11 +250,11 @@ protected:
|
|||
private:
|
||||
// Just a helper which is a common part of TransferToWindow() and
|
||||
// NormalizeString(): returns string representation of a number honouring
|
||||
// NUM_VAL_ZERO_AS_BLANK flag.
|
||||
// NumValidatorStyle::ZERO_AS_BLANK flag.
|
||||
wxString NormalizeValue(LongestValueType value) const
|
||||
{
|
||||
wxString s;
|
||||
if ( value != 0 || !BaseValidator::HasFlag(NUM_VAL_ZERO_AS_BLANK) )
|
||||
if ( value != 0 || !BaseValidator::HasFlag(NumValidatorStyle::ZERO_AS_BLANK) )
|
||||
s = this->ToString(value);
|
||||
|
||||
return s;
|
||||
|
@ -282,16 +288,16 @@ protected:
|
|||
typedef long LongestValueType;
|
||||
#endif
|
||||
|
||||
IntegerValidatorBase(int style)
|
||||
IntegerValidatorBase(NumValidatorStyle style)
|
||||
: NumValidatorBase(style)
|
||||
{
|
||||
wxASSERT_MSG( !(style & NUM_VAL_NO_TRAILING_ZEROES),
|
||||
wxASSERT_MSG( !(style & NumValidatorStyle::NO_TRAILING_ZEROES),
|
||||
wxT("This style doesn't make sense for integers.") );
|
||||
wxASSERT_MSG( !(style & NUM_VAL_ONE_TRAILING_ZERO),
|
||||
wxASSERT_MSG( !(style & NumValidatorStyle::ONE_TRAILING_ZERO),
|
||||
wxT("This style doesn't make sense for integers.") );
|
||||
wxASSERT_MSG( !(style & NUM_VAL_TWO_TRAILING_ZEROES),
|
||||
wxASSERT_MSG( !(style & NumValidatorStyle::TWO_TRAILING_ZEROES),
|
||||
wxT("This style doesn't make sense for integers.") );
|
||||
wxASSERT_MSG( !(style & NUM_VAL_THREE_TRAILING_ZEROES),
|
||||
wxASSERT_MSG( !(style & NumValidatorStyle::THREE_TRAILING_ZEROES),
|
||||
wxT("This style doesn't make sense for integers.") );
|
||||
}
|
||||
|
||||
|
@ -344,10 +350,10 @@ public:
|
|||
// minimal value for the unsigned types.
|
||||
IntegerValidator(
|
||||
ValueType *value = NULL,
|
||||
int style = NUM_VAL_DEFAULT,
|
||||
NumValidatorStyle style = NumValidatorStyle::DEFAULT,
|
||||
ValueType min = std::numeric_limits<ValueType>::min(),
|
||||
ValueType max = std::numeric_limits<ValueType>::max())
|
||||
: Base(value, style)
|
||||
: Base(value, style)
|
||||
{
|
||||
this->SetRange(min, max);
|
||||
}
|
||||
|
@ -363,7 +369,7 @@ private:
|
|||
// explicitly specifying the type as it deduces it from its parameter.
|
||||
template <typename T>
|
||||
inline IntegerValidator<T>
|
||||
MakeIntegerValidator(T *value, int style = NUM_VAL_DEFAULT)
|
||||
MakeIntegerValidator(T *value, NumValidatorStyle style = NumValidatorStyle::DEFAULT)
|
||||
{
|
||||
return IntegerValidator<T>(value, style);
|
||||
}
|
||||
|
@ -388,7 +394,7 @@ protected:
|
|||
// float).
|
||||
typedef double LongestValueType;
|
||||
|
||||
FloatingPointValidatorBase(int style)
|
||||
FloatingPointValidatorBase(NumValidatorStyle style)
|
||||
: NumValidatorBase(style)
|
||||
{
|
||||
}
|
||||
|
@ -443,7 +449,7 @@ public:
|
|||
|
||||
// Ctor using implicit (maximal) precision for this type.
|
||||
FloatingPointValidator(ValueType *value = NULL,
|
||||
int style = NUM_VAL_DEFAULT)
|
||||
NumValidatorStyle style = NumValidatorStyle::DEFAULT)
|
||||
: Base(value, style)
|
||||
{
|
||||
DoSetMinMax();
|
||||
|
@ -454,7 +460,7 @@ public:
|
|||
// Ctor specifying an explicit precision.
|
||||
FloatingPointValidator(int precision,
|
||||
ValueType *value = NULL,
|
||||
int style = NUM_VAL_DEFAULT,
|
||||
NumValidatorStyle style = NumValidatorStyle::DEFAULT,
|
||||
ValueType min = -std::numeric_limits<ValueType>::max(),
|
||||
ValueType max = std::numeric_limits<ValueType>::max())
|
||||
: Base(value, style)
|
||||
|
@ -488,14 +494,14 @@ private:
|
|||
// do need two different functions.
|
||||
template <typename T>
|
||||
inline FloatingPointValidator<T>
|
||||
MakeFloatingPointValidator(T *value, int style = NUM_VAL_DEFAULT)
|
||||
MakeFloatingPointValidator(T *value, NumValidatorStyle style = NumValidatorStyle::DEFAULT)
|
||||
{
|
||||
return FloatingPointValidator<T>(value, style);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline FloatingPointValidator<T>
|
||||
MakeFloatingPointValidator(int precision, T *value, int style = NUM_VAL_DEFAULT)
|
||||
MakeFloatingPointValidator(int precision, T *value, NumValidatorStyle style = NumValidatorStyle::DEFAULT)
|
||||
{
|
||||
return FloatingPointValidator<T>(precision, value, style);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue