Skip to content

Commit b2b13a7

Browse files
committed
Cleanup
1 parent 0cef823 commit b2b13a7

File tree

9 files changed

+283
-301
lines changed

9 files changed

+283
-301
lines changed

app/nodegraph.cpp

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/nodes/node_oscillator.cpp

Lines changed: 21 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8957
struct 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);

compile_commands.json

Lines changed: 193 additions & 193 deletions
Large diffs are not rendered by default.

include/nodegraph/widgets/widget.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ enum
4242
{
4343
None,
4444
ShowText,
45-
NoQuantization
45+
NoQuantization,
46+
Default = ShowText
4647
};
4748
};
4849

include/nodegraph/widgets/widget_slider.h

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,19 @@ struct ISliderCB
2929
virtual void UpdateSlider(Slider* pSlider, SliderOp op, SliderValue& val) = 0;
3030
};
3131

32+
struct DefaultSliderCB : public ISliderCB
33+
{
34+
SliderValue myVal;
35+
DefaultSliderCB();
36+
DefaultSliderCB(const SliderValue& value);
37+
virtual void UpdateSlider(Slider* pSlider, SliderOp op, SliderValue& val) override;
38+
};
39+
3240
class Slider : public Widget
3341
{
3442
public:
35-
Slider(const std::string& label, ISliderCB* pCB = nullptr);
43+
Slider(const std::string& label, const SliderValue& value);
44+
Slider(const std::string& label, std::shared_ptr<ISliderCB> pCB = nullptr);
3645
virtual void Draw(Canvas& canvas) override;
3746
virtual Widget* MouseDown(CanvasInputState& input) override;
3847
virtual void MouseUp(CanvasInputState& input) override;
@@ -46,11 +55,7 @@ class Slider : public Widget
4655
virtual const NRectf& GetSliderRangeArea() const;
4756

4857
protected:
49-
void UpdateSlider(Slider* pSlider, SliderOp op, SliderValue& val);
50-
51-
protected:
52-
ISliderCB* m_pCB = nullptr;
53-
SliderValue m_value;
58+
std::shared_ptr<ISliderCB> m_pCB;
5459
NRectf m_sliderRangeArea;
5560
};
5661

include/nodegraph/widgets/widget_waveslider.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ class WaveSlider : public Slider
1414
Saw
1515
};
1616

17-
WaveSlider(const std::string& label, ISliderCB* pCB = nullptr);
17+
WaveSlider(const std::string& label, std::shared_ptr<ISliderCB> pCB = nullptr);
18+
WaveSlider(const std::string& label, const SliderValue& value);
1819
virtual void PostDraw(Canvas& canvas, const NRectf& rc);
1920
virtual void DrawGeneratedWave(Canvas& canvas, const NRectf& rc);
2021
};

settings.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ c_nodeTitleCenterColor = [ 0.8196078538894653, 0.13725490868091583, 0.1372549086
1818
c_nodeTitleShadowColor = [ 0.19596540927886963, 0.19596540927886963, 0.19596540927886963, 1.0 ]
1919
c_sliderBorderColor = [ 0.29971182346343994, 0.29971182346343994, 0.29971182346343994, 1.0 ]
2020
c_sliderCenterColor = [ 0.10662823915481567, 0.0845036432147026, 0.0845036432147026, 1.0 ]
21-
c_sliderShadowColor = [ 0.0, 0.0, 0.0, 1.0 ]
21+
c_sliderShadowColor = [ 0.33717578649520874, 0.3264872133731842, 0.3264872133731842, 1.0 ]
2222
c_sliderThumbColor = [ 0.8443803787231445, 0.2920047342777252, 0.2920047342777252, 1.0 ]
23-
c_sliderThumbShadowColor = [ 0.0, 0.0, 0.0, 1.0 ]
23+
c_sliderThumbShadowColor = [ 0.5446685552597046, 0.4096786677837372, 0.4096786677837372, 1.0 ]
2424
c_sliderTipBorderColor = [ 0.7665705680847168, 0.7665705680847168, 0.7665705680847168, 1.0 ]
2525
c_sliderTipCenterColor = [ 0.23054754734039307, 0.23054754734039307, 0.23054754734039307, 1.0 ]
2626
c_sliderTipFontColor = [ 0.6791103482246399, 0.7655288577079773, 0.8386167287826538, 1.0 ]
@@ -45,10 +45,10 @@ s_nodeTitleSize = 26.0
4545
s_sliderBorderRadius = 4.0
4646
s_sliderBorderSize = 0.0
4747
s_sliderFontPad = 4.0
48-
s_sliderShadowSize = 3.0
48+
s_sliderShadowSize = 0.0
4949
s_sliderThumbPad = 2.0
5050
s_sliderThumbRadius = 4.0
51-
s_sliderThumbShadowSize = 1.0
51+
s_sliderThumbShadowSize = 0.0
5252
s_sliderTipBorderRadius = 5.0
5353
s_sliderTipBorderSize = 0.0
5454
s_sliderTipFontPad = 7.0

src/widgets/widget_slider.cpp

Lines changed: 42 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,45 @@
1010

1111
namespace NodeGraph {
1212

13-
Slider::Slider(const std::string& label, ISliderCB* pCB)
13+
DefaultSliderCB::DefaultSliderCB()
14+
{
15+
myVal.type = SliderType::Mark;
16+
myVal.step = 0.2f;
17+
}
18+
19+
DefaultSliderCB::DefaultSliderCB(const SliderValue& value)
20+
: myVal(value)
21+
{
22+
}
23+
24+
void DefaultSliderCB::UpdateSlider(Slider* pSlider, SliderOp op, SliderValue& val)
25+
{
26+
if (op == SliderOp::Get)
27+
{
28+
myVal.name = pSlider->GetLabel();
29+
myVal.valueText = fmt::format("{:1.2f}", myVal.value);
30+
val = myVal;
31+
}
32+
else
33+
{
34+
myVal = val;
35+
}
36+
}
37+
38+
Slider::Slider(const std::string& label, const SliderValue& value)
39+
: Slider(label, std::make_shared<DefaultSliderCB>(value))
40+
{
41+
42+
}
43+
44+
Slider::Slider(const std::string& label, std::shared_ptr<ISliderCB> pCB)
1445
: Widget(label)
1546
, m_pCB(pCB)
1647
{
17-
m_value.name = label;
18-
m_value.step = 0.01f;
48+
if (!m_pCB)
49+
{
50+
m_pCB = std::make_shared<DefaultSliderCB>();
51+
}
1952
}
2053

2154
float Slider::ThumbWorldSize(Canvas& canvas, float width) const
@@ -50,7 +83,7 @@ void Slider::Draw(Canvas& canvas)
5083
settings.GetVec4f(theme, c_sliderBorderColor),
5184
settings.GetVec4f(theme, c_sliderCenterColor));
5285

53-
//canvas.FillRect(rc, glm::vec4(1.0f, 0.0f, 0.0f, 1.0f));
86+
// canvas.FillRect(rc, glm::vec4(1.0f, 0.0f, 0.0f, 1.0f));
5487

5588
auto thumbPad = settings.GetFloat(theme, s_sliderThumbPad);
5689
auto fontSize = rc.Height() - settings.GetFloat(theme, s_sliderFontPad) * 2.0f - thumbPad * 2.0f;
@@ -60,14 +93,7 @@ void Slider::Draw(Canvas& canvas)
6093
titlePanelRect.Adjust(thumbPad, thumbPad, -thumbPad, -thumbPad);
6194

6295
SliderValue val;
63-
if (m_pCB)
64-
{
65-
m_pCB->UpdateSlider(this, SliderOp::Get, val);
66-
}
67-
else
68-
{
69-
UpdateSlider(this, SliderOp::Get, val);
70-
}
96+
m_pCB->UpdateSlider(this, SliderOp::Get, val);
7197

7298
ClampNormalized(val);
7399

@@ -114,11 +140,8 @@ void Slider::Draw(Canvas& canvas)
114140

115141
void Slider::ClampNormalized(SliderValue& value)
116142
{
117-
value.value = std::max(0.0f, value.value);
118-
value.value = std::min(1.0f, value.value);
119-
120-
value.step = std::max(0.001f, value.step);
121-
value.step = std::min(1.0f, value.step);
143+
value.value = std::clamp(value.value, 0.0f, 1.0f);
144+
value.step = std::clamp(value.step, 0.001f, 1.0f);
122145
}
123146

124147
Widget* Slider::MouseDown(CanvasInputState& input)
@@ -138,14 +161,7 @@ void Slider::MouseUp(CanvasInputState& input)
138161
void Slider::Update(CanvasInputState& input)
139162
{
140163
SliderValue val;
141-
if (m_pCB)
142-
{
143-
m_pCB->UpdateSlider(this, SliderOp::Get, val);
144-
}
145-
else
146-
{
147-
UpdateSlider(this, SliderOp::Get, val);
148-
}
164+
m_pCB->UpdateSlider(this, SliderOp::Get, val);
149165

150166
ClampNormalized(val);
151167

@@ -163,14 +179,7 @@ void Slider::Update(CanvasInputState& input)
163179

164180
ClampNormalized(val);
165181

166-
if (m_pCB)
167-
{
168-
m_pCB->UpdateSlider(this, SliderOp::Set, val);
169-
}
170-
else
171-
{
172-
UpdateSlider(this, SliderOp::Set, val);
173-
}
182+
m_pCB->UpdateSlider(this, SliderOp::Set, val);
174183
}
175184

176185
bool Slider::MouseMove(CanvasInputState& input)
@@ -184,19 +193,6 @@ bool Slider::MouseMove(CanvasInputState& input)
184193
return false;
185194
}
186195

187-
void Slider::UpdateSlider(Slider* pSlider, SliderOp op, SliderValue& val)
188-
{
189-
if (op == SliderOp::Set)
190-
{
191-
m_value = val;
192-
}
193-
else
194-
{
195-
m_value.valueText = fmt::format("{:1.2f}", m_value.value);
196-
val = m_value;
197-
}
198-
}
199-
200196
const NRectf& Slider::GetSliderRangeArea() const
201197
{
202198
return m_sliderRangeArea;

src/widgets/widget_waveslider.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@
1010

1111
namespace NodeGraph {
1212

13-
WaveSlider::WaveSlider(const std::string& label, ISliderCB* pCB)
13+
WaveSlider::WaveSlider(const std::string& label, const SliderValue& value)
14+
: Slider(label, value)
15+
{
16+
17+
}
18+
19+
WaveSlider::WaveSlider(const std::string& label, std::shared_ptr<ISliderCB> pCB)
1420
: Slider(label, pCB)
1521
{
1622
}
@@ -24,14 +30,7 @@ void WaveSlider::PostDraw(Canvas& canvas, const NRectf& rc)
2430
auto types = std::vector<WaveType>{ WaveType::Triangle, WaveType::Square, WaveType::PWM, WaveType::Saw };
2531

2632
SliderValue val;
27-
if (m_pCB)
28-
{
29-
m_pCB->UpdateSlider(this, SliderOp::Get, val);
30-
}
31-
else
32-
{
33-
UpdateSlider(this, SliderOp::Get, val);
34-
}
33+
m_pCB->UpdateSlider(this, SliderOp::Get, val);
3534

3635
canvas.SetLineCap(LineCap::ROUND);
3736
for (uint32_t index = 0; index < types.size(); index++)

0 commit comments

Comments
 (0)