JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_DrawableButton.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
40class JUCE_API DrawableButton : public Button
41{
42public:
43 //==============================================================================
45 {
47 ImageRaw,
50 ImageOnButtonBackground,
54 ImageOnButtonBackgroundOriginalSize,
55 ImageStretched
56 };
57
58 //==============================================================================
68 DrawableButton (const String& buttonName,
69 ButtonStyle buttonStyle);
70
72 ~DrawableButton() override;
73
74 //==============================================================================
103 void setImages (const Drawable* normalImage,
104 const Drawable* overImage = nullptr,
105 const Drawable* downImage = nullptr,
106 const Drawable* disabledImage = nullptr,
107 const Drawable* normalImageOn = nullptr,
108 const Drawable* overImageOn = nullptr,
109 const Drawable* downImageOn = nullptr,
110 const Drawable* disabledImageOn = nullptr);
111
112
113 //==============================================================================
117 void setButtonStyle (ButtonStyle newStyle);
118
120 ButtonStyle getStyle() const noexcept { return style; }
121
122 //==============================================================================
126 void setEdgeIndent (int numPixelsIndent);
127
129 int getEdgeIndent() const noexcept { return edgeIndent; }
130
131 //==============================================================================
133 Drawable* getCurrentImage() const noexcept;
134
136 Drawable* getNormalImage() const noexcept;
138 Drawable* getOverImage() const noexcept;
140 Drawable* getDownImage() const noexcept;
141
143 virtual Rectangle<float> getImageBounds() const;
144
145 //==============================================================================
157 {
158 textColourId = 0x1004010,
159 textColourOnId = 0x1004013,
161 backgroundColourId = 0x1004011,
165 backgroundOnColourId = 0x1004012,
169 };
170
171 //==============================================================================
173 void paintButton (Graphics&, bool, bool) override;
175 void buttonStateChanged() override;
177 void resized() override;
179 void enablementChanged() override;
181 void colourChanged() override;
182
183private:
184 //==============================================================================
185 bool shouldDrawButtonBackground() const { return style == ImageOnButtonBackground || style == ImageOnButtonBackgroundOriginalSize; }
186
187 //==============================================================================
188 ButtonStyle style;
189 std::unique_ptr<Drawable> normalImage, overImage, downImage, disabledImage,
190 normalImageOn, overImageOn, downImageOn, disabledImageOn;
191 Drawable* currentImage = nullptr;
192 int edgeIndent = 3;
193
195};
196
197} // namespace juce
A base class for buttons.
Definition juce_Button.h:43
A button that displays a Drawable.
@ ImageFitted
The button will just display the images, but will resize and centre them to fit inside it.
@ ImageAboveTextLabel
Draws the button as a text label across the bottom with the image resized and scaled to fit above it.
ButtonStyle getStyle() const noexcept
Returns the current style.
ColourIds
A set of colour IDs to use to change the colour of various aspects of the link.
int getEdgeIndent() const noexcept
Returns the current edge indent size.
The base class for objects which can draw themselves, e.g.
A graphics context, used for drawing a component or image.
Manages a rectangle and allows geometric operations to be performed on it.
The JUCE String class!
Definition juce_String.h:53
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.