1 class ImageSlider
: public Slider
5 // Curently only supports vertical sliders
6 ImageSlider(Image image
, const int length
)
7 : Slider("Bitmap Slider"),
10 this->length
= length
;
12 setTextBoxStyle(NoTextBox
, 0, 0, 0);
13 setSliderStyle(LinearVertical
);
15 frameHeight
= imageKnob
.getHeight();
16 frameWidth
= imageKnob
.getWidth();
18 setRange(0.0f
, 1.0f
, 0.001f
);
20 customValueText
= false;
23 this->setSliderSnapsToMousePosition(false);
26 void paint(Graphics
& g
)
28 double value
= (getValue() - getMinimum()) / (getMaximum() - getMinimum());
29 g
.drawImage(imageKnob
, 0, (1.0f
- value
) * length
, frameWidth
, frameHeight
,
30 0, 0, frameWidth
, frameHeight
);
32 g
.setColour(Colour((const juce::uint8
)10, (const juce::uint8
)10, (const juce::uint8
)10));
33 g
.fillRoundedRectangle(8, length
+ frameHeight
- 14, getWidth() - 16, valueTextHeight
+ 4, 6.0f
);
35 g
.setColour(Colour((const juce::uint8
)200, (const juce::uint8
)200, (const juce::uint8
)200));
37 g
.setFont(12.0f
, Font::plain
);
40 valueText
= juce::String(getValue(), 2); // << T("dB");
41 g
.drawText(valueText
, 0, length
+ frameHeight
- 14 + 2, getWidth(), valueTextHeight
, juce::Justification::centred
, false);
45 g
.drawText(valueText
, 0, length
+ frameHeight
- 14 + 2, getWidth(), valueTextHeight
, juce::Justification::centred
, false);
49 void setTextValue(juce::String valueText
)
51 this->valueText
= valueText
;
52 customValueText
= true;
58 int frameWidth
, frameHeight
;
60 juce::String valueText
;