@@ -52,38 +52,6 @@ struct SetterWave : public ISliderCB
5252 }
5353};
5454
55- SetterWave swave;
56-
57- struct Setter : public ISliderCB
58- {
59- SliderValue myVal;
60- std::string m_units;
61- Setter (std::string units)
62- : m_units(units)
63- {
64- }
65-
66- virtual void UpdateSlider (Slider* pSlider, SliderOp op, SliderValue& val)
67- {
68- myVal.type = SliderType::Mark;
69- myVal.step = 0 .2f ;
70- if (op == SliderOp::Get)
71- {
72- myVal.name = pSlider->GetLabel ();
73- myVal.valueText = fmt::format (" {:1.2f}" , myVal.value );
74- myVal.units = m_units;
75- val = myVal;
76- }
77- else
78- {
79- myVal = val;
80- }
81- }
82- };
83-
84- Setter s1 = Setter(" dB" );
85- Setter s2 = Setter(" Hz" );
86-
8755} // Namespace
8856
8957struct AudioSettings
@@ -108,16 +76,21 @@ void Oscillator::BuildNode(Canvas& canvas)
10876 auto spRootLayout = std::make_shared<Layout>(LayoutType::Vertical);
10977 m_spNode->SetLayout (spRootLayout);
11078
111- auto spWaveSlider = std::make_shared<WaveSlider>(" Wave" , &swave);
112- spWaveSlider->SetRect (NRectf (0 .0f , 0 .0f , 190 .0f , 50 .0f ));
79+ SliderValue sliderVal;
80+ sliderVal.valueFlags = WidgetValueFlags::NoQuantization;
81+ sliderVal.step = 0 .333f ;
82+ sliderVal.type = SliderType::Mark;
83+
84+ auto spWaveSlider = std::make_shared<WaveSlider>(" Wave" , sliderVal);
85+ spWaveSlider->SetRect (NRectf (0 .0f , 0 .0f , 0 .0f , 50 .0f ));
11386 spWaveSlider->SetConstraints (glm::uvec2 (LayoutConstraint::Expanding, LayoutConstraint::Preferred));
11487
11588 spRootLayout->AddChild (spWaveSlider);
11689
11790 // Keep same height, expand the width
11891 auto spCustom = std::make_shared<Widget>(" Custom" );
11992 spCustom->SetConstraints (glm::uvec2 (LayoutConstraint::Expanding, LayoutConstraint::Preferred));
120- spCustom->SetRect (NRectf (0 .0f , 0 .0f , 100 .0f , 50 .0f ));
93+ spCustom->SetRect (NRectf (0 .0f , 0 .0f , 0 .0f , 50 .0f ));
12194 spCustom->AddPostDrawCB ([=](Canvas& canvas, const NRectf& rect) {
12295 spWaveSlider->DrawGeneratedWave (canvas, rect);
12396 });
@@ -127,20 +100,28 @@ void Oscillator::BuildNode(Canvas& canvas)
127100 auto spHorzLayout = std::make_shared<Layout>(LayoutType::Horizontal);
128101 spHorzLayout->SetContentsMargins (glm::vec4 (0 .0f ));
129102 spHorzLayout->SetConstraints (glm::uvec2 (LayoutConstraint::Expanding, LayoutConstraint::Preferred));
130- spHorzLayout->SetRect (NRectf (0 .0f , 0 .0f , 100 .0f , 50 .0f ));
103+ spHorzLayout->SetRect (NRectf (0 .0f , 0 .0f , 0 .0f , 50 .0f ));
131104 spRootLayout->AddChild (spHorzLayout);
132105
133106 auto spSocket = std::make_shared<Socket>(" Freq" , SocketType::Left);
134107 spSocket->SetRect (NRectf (0 .0f , 0 .0f , 30 .0f , 30 .0f ));
135108 spSocket->SetConstraints (glm::uvec2 (LayoutConstraint::Preferred, LayoutConstraint::Expanding));
136109 spHorzLayout->AddChild (spSocket);
137110
138- auto spSlider = std::make_shared<Slider>(" Amp" , &s1);
139- spSlider->SetRect (NRectf (0 .0f , 0 .0f , 190 .0f , 50 .0f ));
111+ sliderVal.step = 0 .2f ;
112+ sliderVal.units = " dB" ;
113+ sliderVal.valueFlags = WidgetValueFlags::Default;
114+
115+ auto spSlider = std::make_shared<Slider>(" Amp" , sliderVal);
116+ spSlider->SetRect (NRectf (0 .0f , 0 .0f , 0 .0f , 0 .0f ));
140117 spHorzLayout->AddChild (spSlider);
141118
142- spSlider = std::make_shared<Slider>(" Freq" , &s2);
143- spSlider->SetRect (NRectf (0 .0f , 0 .0f , 190 .0f , 50 .0f ));
119+ sliderVal.units = " Hz" ;
120+ sliderVal.name = " Freq" ;
121+ sliderVal.valueText = " Freq" ;
122+
123+ spSlider = std::make_shared<Slider>(" Freq" , sliderVal);
124+ spSlider->SetRect (NRectf (0 .0f , 0 .0f , 0 .0f , 0 .0f ));
144125 spHorzLayout->AddChild (spSlider);
145126
146127 spSocket = std::make_shared<Socket>(" Amp" , SocketType::Right);
0 commit comments