FahlGrahn Audio v1.0.0
Loading...
Searching...
No Matches
FontWebLookAndFeel.h
1#pragma once
2
3#include <Fonts.h>
4#include <JuceHeader.h>
5
6class FontWebLookAndFeel : public juce::LookAndFeel_V4
7{
8 public:
10 : fontWeb(juce::FontOptions(juce::Typeface::createSystemTypefaceFor(CustomFont::forkawesomewebfont_ttf,
11 CustomFont::forkawesomewebfont_ttfSize)))
12 {
13 }
14
15 juce::Font &getFont()
16 {
17 return fontWeb;
18 }
19
20 void drawButtonText(juce::Graphics &g, juce::TextButton &button, bool /*isMouseOverButton*/,
21 bool /*isButtonDown*/) override
22 {
23 auto font = fontWeb;
24 g.setFont(font.withHeight(static_cast<float>(button.getHeight() * 0.6)));
25
26 juce::Colour textColour;
27 if (button.getClickingTogglesState() && button.getToggleState())
28 textColour = button.findColour(juce::TextButton::textColourOnId);
29 else
30 textColour = button.findColour(juce::TextButton::textColourOffId);
31
32 g.setColour(textColour);
33
34 // juce::Colour backgroundColor;
35 // if (button.getClickingTogglesState() && button.getToggleState())
36 // backgroundColor = button.findColour(juce::TextButton::buttonOnColourId);
37 // else
38 // backgroundColor = button.findColour(juce::TextButton::buttonColourId);
39
40 button.setColour(juce::TextButton::ColourIds::buttonColourId, juce::Colours::black);
41
42 g.drawText(button.getButtonText(), button.getLocalBounds(), juce::Justification::centred, true);
43 }
44
45 void drawButtonBackground(juce::Graphics &g, juce::Button &button, const juce::Colour &backgroundColour,
46 bool isMouseOverButton, bool isButtonDown) override
47 {
48 auto bounds = button.getLocalBounds().toFloat();
49 std::ignore = isMouseOverButton;
50 // Set custom colors or remove highlight effect
51 juce::Colour fillColour = juce::Colours::transparentBlack;
52 std::ignore = backgroundColour;
53 std::ignore = isButtonDown;
54 // if (isButtonDown)
55 // fillColour = backgroundColour; // Keep original background color (no highlight)
56 // else if (isMouseOverButton)
57 // fillColour = backgroundColour.brighter(); // Optional: a subtle hover effect
58
59 g.setColour(fillColour);
60 g.fillRect(bounds);
61
62 // Optional: Draw border
63 // g.setColour(button.findColour(juce::ComboBox::outlineColourId));
64 // g.drawRect(bounds, 1.0f);
65 }
66
67 private:
68 juce::Font fontWeb;
69};
Definition FontWebLookAndFeel.h:7