From 6e7d7447c152f557433afdd0fd18dd9014a859ea Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Mon, 30 Oct 2017 12:18:10 -0400 Subject: [PATCH] Use an enum class for numeric validator styles --- src/effects/Amplify.cpp | 4 +- src/effects/AutoDuck.cpp | 14 +++---- src/effects/ChangePitch.cpp | 8 ++-- src/effects/ChangeSpeed.cpp | 4 +- src/effects/ChangeTempo.cpp | 10 ++--- src/effects/DtmfGen.cpp | 2 +- src/effects/Echo.cpp | 4 +- src/effects/Noise.cpp | 2 +- src/effects/Normalize.cpp | 2 +- src/effects/Paulstretch.cpp | 2 +- src/effects/Phaser.cpp | 2 +- src/effects/TimeScale.cpp | 12 +++--- src/effects/ToneGen.cpp | 12 +++--- src/effects/TruncSilence.cpp | 6 +-- src/effects/Wahwah.cpp | 2 +- src/effects/ladspa/LadspaEffect.cpp | 6 +-- src/effects/lv2/LV2Effect.cpp | 6 +-- src/effects/nyquist/Nyquist.cpp | 6 +-- src/effects/vamp/VampEffect.cpp | 6 +-- src/widgets/valnum.cpp | 14 +++---- src/widgets/valnum.h | 64 ++++++++++++++++------------- 21 files changed, 97 insertions(+), 91 deletions(-) diff --git a/src/effects/Amplify.cpp b/src/effects/Amplify.cpp index 2a6649743..7f29f41de 100644 --- a/src/effects/Amplify.cpp +++ b/src/effects/Amplify.cpp @@ -217,7 +217,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S) // Amplitude S.StartMultiColumn(2, wxCENTER); { - FloatingPointValidator vldAmp(precission, &mAmp, NUM_VAL_ONE_TRAILING_ZERO); + FloatingPointValidator 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 vldNewPeak(precission + 1, &mNewPeak, NUM_VAL_ONE_TRAILING_ZERO); + FloatingPointValidator vldNewPeak(precission + 1, &mNewPeak, NumValidatorStyle::ONE_TRAILING_ZERO); double minAmp = MIN_Amp + LINEAR_TO_DB(mPeak); double maxAmp = MAX_Amp + LINEAR_TO_DB(mPeak); diff --git a/src/effects/AutoDuck.cpp b/src/effects/AutoDuck.cpp index 026b1fd7e..6c899349d 100644 --- a/src/effects/AutoDuck.cpp +++ b/src/effects/AutoDuck.cpp @@ -435,37 +435,37 @@ void EffectAutoDuck::PopulateOrExchange(ShuttleGui & S) S.StartMultiColumn(6, wxCENTER); { - FloatingPointValidator vldDuckAmountDb(1, &mDuckAmountDb, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldMaximumPause(2, &mMaximumPause, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldOuterFadeDownLen(2, &mOuterFadeDownLen, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldOuterFadeUpLen(2, &mOuterFadeUpLen, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldInnerFadeDownLen(2, &mInnerFadeDownLen, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldInnerFadeUpLen(2, &mInnerFadeUpLen, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldThresholdDb(2, &mThresholdDb, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator vldThresholdDb(2, &mThresholdDb, NumValidatorStyle::NO_TRAILING_ZEROES); vldThresholdDb.SetRange(MIN_ThresholdDb, MAX_ThresholdDb); mThresholdDbBox = S.AddTextBox(_("Threshold:"), wxT(""), 10); mThresholdDbBox->SetValidator(vldThresholdDb); diff --git a/src/effects/ChangePitch.cpp b/src/effects/ChangePitch.cpp index f9025cb1e..3f59f90c7 100644 --- a/src/effects/ChangePitch.cpp +++ b/src/effects/ChangePitch.cpp @@ -268,7 +268,7 @@ void EffectChangePitch::PopulateOrExchange(ShuttleGui & S) S.StartHorizontalLay(wxALIGN_CENTER); { - FloatingPointValidator vldSemitones(2, &m_dSemitonesChange, NUM_VAL_TWO_TRAILING_ZEROES); + FloatingPointValidator 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 vldFromFrequency(3, &m_FromFrequency, NUM_VAL_THREE_TRAILING_ZEROES); + FloatingPointValidator 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 vldToFrequency(3, &m_ToFrequency, NUM_VAL_THREE_TRAILING_ZEROES); + FloatingPointValidator 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 vldPercentage(3, &m_dPercentChange, NUM_VAL_THREE_TRAILING_ZEROES); + FloatingPointValidator 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); diff --git a/src/effects/ChangeSpeed.cpp b/src/effects/ChangeSpeed.cpp index 45fcb948c..e529434bf 100644 --- a/src/effects/ChangeSpeed.cpp +++ b/src/effects/ChangeSpeed.cpp @@ -304,13 +304,13 @@ void EffectChangeSpeed::PopulateOrExchange(ShuttleGui & S) // Speed multiplier and percent change controls. S.StartMultiColumn(4, wxCENTER); { - FloatingPointValidator vldMultiplier(3, &mMultiplier, NUM_VAL_THREE_TRAILING_ZEROES); + FloatingPointValidator 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 vldPercentage(3, &m_PercentChange, NUM_VAL_THREE_TRAILING_ZEROES); + FloatingPointValidator 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); diff --git a/src/effects/ChangeTempo.cpp b/src/effects/ChangeTempo.cpp index dd0408727..1d74a3404 100644 --- a/src/effects/ChangeTempo.cpp +++ b/src/effects/ChangeTempo.cpp @@ -209,7 +209,7 @@ void EffectChangeTempo::PopulateOrExchange(ShuttleGui & S) // S.StartMultiColumn(2, wxCENTER); { - FloatingPointValidator vldPercentage(3, &m_PercentChange, NUM_VAL_THREE_TRAILING_ZEROES); + FloatingPointValidator 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 vldFromBPM(3, &m_FromBPM, NUM_VAL_THREE_TRAILING_ZEROES | NUM_VAL_ZERO_AS_BLANK); + FloatingPointValidator 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 vldToBPM(3, &m_ToBPM, NUM_VAL_THREE_TRAILING_ZEROES | NUM_VAL_ZERO_AS_BLANK); + FloatingPointValidator 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 vldFromLength(precission, &m_FromLength, NUM_VAL_TWO_TRAILING_ZEROES); + FloatingPointValidator 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 vldToLength(2, &m_ToLength, NUM_VAL_TWO_TRAILING_ZEROES); + FloatingPointValidator 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); diff --git a/src/effects/DtmfGen.cpp b/src/effects/DtmfGen.cpp index 86a919c65..4ccbf25ba 100644 --- a/src/effects/DtmfGen.cpp +++ b/src/effects/DtmfGen.cpp @@ -320,7 +320,7 @@ void EffectDtmf::PopulateOrExchange(ShuttleGui & S) mDtmfSequenceT = S.Id(ID_Sequence).AddTextBox(_("DTMF sequence:"), wxT(""), 10); mDtmfSequenceT->SetValidator(vldDtmf); - FloatingPointValidator vldAmp(3, &dtmfAmplitude, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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); diff --git a/src/effects/Echo.cpp b/src/effects/Echo.cpp index d61d827ff..f7610dcca 100644 --- a/src/effects/Echo.cpp +++ b/src/effects/Echo.cpp @@ -160,11 +160,11 @@ void EffectEcho::PopulateOrExchange(ShuttleGui & S) S.StartMultiColumn(2, wxALIGN_CENTER); { - FloatingPointValidator vldDelay(3, &delay, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator vldDelay(3, &delay, NumValidatorStyle::NO_TRAILING_ZEROES); vldDelay.SetRange(MIN_Delay, MAX_Delay); S.AddTextBox(_("Delay time (seconds):"), wxT(""), 10)->SetValidator(vldDelay); - FloatingPointValidator vldDecay(3, &decay, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator vldDecay(3, &decay, NumValidatorStyle::NO_TRAILING_ZEROES); vldDecay.SetRange(MIN_Decay, MAX_Decay); S.AddTextBox(_("Decay factor:"), wxT(""), 10)->SetValidator(vldDecay); } diff --git a/src/effects/Noise.cpp b/src/effects/Noise.cpp index 3e1f380de..9f77eec2f 100644 --- a/src/effects/Noise.cpp +++ b/src/effects/Noise.cpp @@ -225,7 +225,7 @@ void EffectNoise::PopulateOrExchange(ShuttleGui & S) { S.AddChoice(_("Noise type:"), wxT(""), &typeChoices)->SetValidator(wxGenericValidator(&mType)); - FloatingPointValidator vldAmp(6, &mAmp, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator vldAmp(6, &mAmp, NumValidatorStyle::NO_TRAILING_ZEROES); vldAmp.SetRange(MIN_Amp, MAX_Amp); S.AddTextBox(_("Amplitude (0-1):"), wxT(""), 12)->SetValidator(vldAmp); diff --git a/src/effects/Normalize.cpp b/src/effects/Normalize.cpp index 2ccdc2928..6edf87efb 100644 --- a/src/effects/Normalize.cpp +++ b/src/effects/Normalize.cpp @@ -292,7 +292,7 @@ void EffectNormalize::PopulateOrExchange(ShuttleGui & S) mGain ? wxT("true") : wxT("false")); mGainCheckBox->SetValidator(wxGenericValidator(&mGain)); - FloatingPointValidator vldLevel(2, &mLevel, NUM_VAL_ONE_TRAILING_ZERO); + FloatingPointValidator vldLevel(2, &mLevel, NumValidatorStyle::ONE_TRAILING_ZERO); vldLevel.SetRange(MIN_Level, MAX_Level); mLevelTextCtrl = S.AddTextBox( {}, wxT(""), 10); mLevelTextCtrl->SetName(_("Maximum amplitude dB")); diff --git a/src/effects/Paulstretch.cpp b/src/effects/Paulstretch.cpp index 13f8cf435..9d9a6de68 100644 --- a/src/effects/Paulstretch.cpp +++ b/src/effects/Paulstretch.cpp @@ -198,7 +198,7 @@ void EffectPaulstretch::PopulateOrExchange(ShuttleGui & S) */ S.AddTextBox(_("Stretch Factor:"), wxT(""), 10)->SetValidator(vldAmount); - FloatingPointValidator vldTime(3, &mTime_resolution, NUM_VAL_ONE_TRAILING_ZERO); + FloatingPointValidator vldTime(3, &mTime_resolution, NumValidatorStyle::ONE_TRAILING_ZERO); vldTime.SetMin(MIN_Time); S.AddTextBox(_("Time Resolution (seconds):"), wxT(""), 10)->SetValidator(vldTime); } diff --git a/src/effects/Phaser.cpp b/src/effects/Phaser.cpp index 7fe9e73d9..de6345c30 100644 --- a/src/effects/Phaser.cpp +++ b/src/effects/Phaser.cpp @@ -268,7 +268,7 @@ void EffectPhaser::PopulateOrExchange(ShuttleGui & S) mDryWetS->SetName(_("Dry Wet")); mDryWetS->SetMinSize(wxSize(100, -1)); - FloatingPointValidator vldFreq(5, &mFreq, NUM_VAL_ONE_TRAILING_ZERO); + FloatingPointValidator 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); diff --git a/src/effects/TimeScale.cpp b/src/effects/TimeScale.cpp index 37fb7a2c4..c98edff9f 100644 --- a/src/effects/TimeScale.cpp +++ b/src/effects/TimeScale.cpp @@ -202,7 +202,7 @@ void EffectTimeScale::PopulateOrExchange(ShuttleGui & S) S.StartMultiColumn(1, wxCENTER); { FloatingPointValidator - 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 - 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 - 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 - 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 - 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 - 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) diff --git a/src/effects/ToneGen.cpp b/src/effects/ToneGen.cpp index 3caed1796..47853d0e7 100644 --- a/src/effects/ToneGen.cpp +++ b/src/effects/ToneGen.cpp @@ -343,7 +343,7 @@ void EffectToneGen::PopulateOrExchange(ShuttleGui & S) { S.StartHorizontalLay(wxLEFT, 50); { - FloatingPointValidator vldStartFreq(6, &mFrequency[0], NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldEndFreq(6, &mFrequency[1], NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldStartAmp(6, &mAmplitude[0], NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldEndAmp(6, &mAmplitude[1], NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldFrequency(6, &mFrequency[0], NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldAmplitude(6, &mAmplitude[0], NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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); diff --git a/src/effects/TruncSilence.cpp b/src/effects/TruncSilence.cpp index 349c68e62..c4e10fea3 100644 --- a/src/effects/TruncSilence.cpp +++ b/src/effects/TruncSilence.cpp @@ -720,7 +720,7 @@ void EffectTruncSilence::PopulateOrExchange(ShuttleGui & S) S.AddSpace(0); // 'choices' already includes units. // Ignored silence - FloatingPointValidator vldDur(3, &mInitialAllowedSilence, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldTrunc(3, &mTruncLongestAllowedSilence, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator 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 vldComp(3, &mSilenceCompressPercent, NUM_VAL_NO_TRAILING_ZEROES); + FloatingPointValidator vldComp(3, &mSilenceCompressPercent, NumValidatorStyle::NO_TRAILING_ZEROES); vldComp.SetRange(MIN_Compress, MAX_Compress); mSilenceCompressPercentT = S.AddTextBox(_("Compress to:"), wxT(""), 12); mSilenceCompressPercentT->SetValidator(vldComp); diff --git a/src/effects/Wahwah.cpp b/src/effects/Wahwah.cpp index 7ac3ce344..0634b3ada 100644 --- a/src/effects/Wahwah.cpp +++ b/src/effects/Wahwah.cpp @@ -231,7 +231,7 @@ void EffectWahwah::PopulateOrExchange(ShuttleGui & S) { S.SetStretchyCol(2); - FloatingPointValidator vldfreq(5, &mFreq, NUM_VAL_ONE_TRAILING_ZERO); + FloatingPointValidator 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); diff --git a/src/effects/ladspa/LadspaEffect.cpp b/src/effects/ladspa/LadspaEffect.cpp index b1f3ae2fa..3be330bcf 100644 --- a/src/effects/ladspa/LadspaEffect.cpp +++ b/src/effects/ladspa/LadspaEffect.cpp @@ -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); diff --git a/src/effects/lv2/LV2Effect.cpp b/src/effects/lv2/LV2Effect.cpp index 7306939c3..c666984be 100644 --- a/src/effects/lv2/LV2Effect.cpp +++ b/src/effects/lv2/LV2Effect.cpp @@ -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); diff --git a/src/effects/nyquist/Nyquist.cpp b/src/effects/nyquist/Nyquist.cpp index 56898086d..cd346a9ca 100644 --- a/src/effects/nyquist/Nyquist.cpp +++ b/src/effects/nyquist/Nyquist.cpp @@ -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); diff --git a/src/effects/vamp/VampEffect.cpp b/src/effects/vamp/VampEffect.cpp index 2d02b1edf..06bc09d4c 100644 --- a/src/effects/vamp/VampEffect.cpp +++ b/src/effects/vamp/VampEffect.cpp @@ -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); diff --git a/src/widgets/valnum.cpp b/src/widgets/valnum.cpp index 0ae6e1d1e..386b149e5 100644 --- a/src/widgets/valnum.cpp +++ b/src/widgets/valnum.cpp @@ -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 { diff --git a/src/widgets/valnum.h b/src/widgets/valnum.h index c24f9bb5b..2c1bc6206 100644 --- a/src/widgets/valnum.h +++ b/src/widgets/valnum.h @@ -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::min(), ValueType max = std::numeric_limits::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 inline IntegerValidator -MakeIntegerValidator(T *value, int style = NUM_VAL_DEFAULT) +MakeIntegerValidator(T *value, NumValidatorStyle style = NumValidatorStyle::DEFAULT) { return IntegerValidator(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::max(), ValueType max = std::numeric_limits::max()) : Base(value, style) @@ -488,14 +494,14 @@ private: // do need two different functions. template inline FloatingPointValidator -MakeFloatingPointValidator(T *value, int style = NUM_VAL_DEFAULT) +MakeFloatingPointValidator(T *value, NumValidatorStyle style = NumValidatorStyle::DEFAULT) { return FloatingPointValidator(value, style); } template inline FloatingPointValidator -MakeFloatingPointValidator(int precision, T *value, int style = NUM_VAL_DEFAULT) +MakeFloatingPointValidator(int precision, T *value, NumValidatorStyle style = NumValidatorStyle::DEFAULT) { return FloatingPointValidator(precision, value, style); }