27#include "../JuceLibraryCode/JuceHeader.h"
65 const juce::Slider::SliderStyle style,
66 juce::Slider& slider)
override;
75 juce::TextButton& textButton,
87 juce::ComboBox& box)
override;
97 const juce::Slider::SliderStyle style,
98 juce::Slider& slider)
override;
108 const juce::Slider::SliderStyle ,
109 juce::Slider& slider)
override;
112 const juce::String& text,
114 int height)
override;
117 setColour(juce::ComboBox::arrowColourId, newColour);
118 setColour(juce::GroupComponent::textColourId, newColour);
119 setColour(juce::Slider::rotarySliderFillColourId, newColour);
120 setColour(juce::Slider::thumbColourId, newColour);
121 setColour(juce::Slider::trackColourId, newColour);
122 setColour(juce::TextButton::buttonOnColourId, newColour);
123 setColour(juce::TextButton::textColourOnId, newColour);
129 setColour(juce::PopupMenu::backgroundColourId, newColour);
130 setColour(juce::Slider::backgroundColourId, newColour);
131 setColour(juce::Slider::rotarySliderOutlineColourId, newColour);
132 setColour(juce::TextButton::buttonColourId, newColour);
133 setColour(juce::TextButton::textColourOffId, newColour);
139 setColour(juce::PopupMenu::highlightedBackgroundColourId, newColour);
160 const juce::Slider::SliderStyle style,
161 juce::Slider& slider) {
163 const float sliderRadius =
static_cast<float>(getSliderThumbRadius(slider) - 2);
167 if (slider.isEnabled()) {
168 ring = &highlightColour;
173 if (style == juce::Slider::LinearHorizontal || style == juce::Slider::LinearVertical)
177 if (style == juce::Slider::LinearVertical)
179 kx = x + width * 0.5f;
185 ky = y + height * 0.5f;
189 p.addEllipse(kx - sliderRadius, ky - sliderRadius, sliderRadius * 2, sliderRadius * 2);
195 g.strokePath(p, juce::PathStrokeType(2.0f));
201 juce::Button& button,
202 const juce::Colour& ,
205 const int width {button.getWidth()};
206 const int height {button.getHeight()};
208 const float indent {2.0f};
209 const int cornerSize {juce::jmin(juce::roundToInt(width * 0.4f),
210 juce::roundToInt(height * 0.4f))};
213 juce::PathStrokeType pStroke(1);
214 juce::Colour* bc {
nullptr};
219 if (button.isEnabled()) {
220 if (button.getToggleState()) {
229 p.addRoundedRectangle(indent, indent, width - 2 * indent, height - 2 * indent,
static_cast<float>(cornerSize));
233 g.strokePath(p, pStroke);
237 juce::TextButton& textButton,
241 juce::Colour* textColour {
nullptr};
243 if (textButton.isEnabled()) {
244 if (textButton.getToggleState() || textButton.getWidth() < 24) {
253 g.setColour(*textColour);
257 if (textButton.getWidth() > 24) {
261 g.drawFittedText(textButton.getButtonText(), margin, 0, textButton.getWidth() - 2 * margin, textButton.getHeight(), juce::Justification::centred, 0);
272 juce::ComboBox& box) {
276 g.fillRect(buttonX, buttonY, buttonW, buttonH);
278 const float arrowX {0.2f};
279 const float arrowH {0.3f};
281 if (box.isEnabled()) {
283 p.addTriangle(buttonX + buttonW * 0.5f, buttonY + buttonH * (0.45f - arrowH),
284 buttonX + buttonW * (1.0f - arrowX), buttonY + buttonH * 0.45f,
285 buttonX + buttonW * arrowX, buttonY + buttonH * 0.45f);
287 p.addTriangle(buttonX + buttonW * 0.5f, buttonY + buttonH * (0.55f + arrowH),
288 buttonX + buttonW * (1.0f - arrowX), buttonY + buttonH * 0.55f,
289 buttonX + buttonW * arrowX, buttonY + buttonH * 0.55f);
305 const juce::Slider::SliderStyle style,
306 juce::Slider& slider) {
320 const juce::Slider::SliderStyle ,
321 juce::Slider& slider) {
324 if (slider.isHorizontal()) {
325 g.fillRect(x, y + height / 2, width, 2);
330 const juce::String& text,
334 g.fillRect(0, 0, width, height);
337 g.drawFittedText(text, 0, 0, width, height, juce::Justification::centred, 3);
virtual void drawButtonText(juce::Graphics &g, juce::TextButton &textButton, bool, bool) override
virtual void drawLinearSlider(juce::Graphics &g, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const juce::Slider::SliderStyle style, juce::Slider &slider) override
virtual void setDarkColour(juce::Colour newColour)
CoreLookAndFeel operator=(CoreLookAndFeel &)=delete
virtual void drawButtonBackground(juce::Graphics &g, juce::Button &button, const juce::Colour &, bool, bool) override
virtual void setLightColour(juce::Colour newColour)
virtual void setHighlightColour(juce::Colour newColour)
juce::Colour highlightColour
CoreLookAndFeel(CoreLookAndFeel &)=delete
virtual void drawComboBox(juce::Graphics &g, int, int, const bool, int buttonX, int buttonY, int buttonW, int buttonH, juce::ComboBox &box) override
virtual void drawTooltip(juce::Graphics &g, const juce::String &text, int width, int height) override
virtual void drawLinearSliderBackground(juce::Graphics &g, int x, int y, int width, int height, float, float, float, const juce::Slider::SliderStyle, juce::Slider &slider) override
virtual ~CoreLookAndFeel()=default
virtual void drawLinearSliderThumb(juce::Graphics &g, int x, int y, int width, int height, float sliderPos, float, float, const juce::Slider::SliderStyle style, juce::Slider &slider) override