openshot-audio  0.1.2
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) 2015 - ROLI Ltd.
6 
7  Permission is granted to use this software under the terms of either:
8  a) the GPL v2 (or any later version)
9  b) the Affero GPL v3
10 
11  Details of these licenses can be found at: www.gnu.org/licenses
12 
13  JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
14  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15  A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 
17  ------------------------------------------------------------------------------
18 
19  To release a closed-source product which uses JUCE, commercial licenses are
20  available: visit www.juce.com for more information.
21 
22  ==============================================================================
23 */
24 
25 #ifndef JUCE_DRAWABLEBUTTON_H_INCLUDED
26 #define JUCE_DRAWABLEBUTTON_H_INCLUDED
27 
28 
29 //==============================================================================
39 {
40 public:
41  //==============================================================================
43  {
45  ImageRaw,
48  ImageOnButtonBackground,
51  ImageStretched
52  };
53 
54  //==============================================================================
64  DrawableButton (const String& buttonName,
65  ButtonStyle buttonStyle);
66 
68  ~DrawableButton();
69 
70  //==============================================================================
99  void setImages (const Drawable* normalImage,
100  const Drawable* overImage = nullptr,
101  const Drawable* downImage = nullptr,
102  const Drawable* disabledImage = nullptr,
103  const Drawable* normalImageOn = nullptr,
104  const Drawable* overImageOn = nullptr,
105  const Drawable* downImageOn = nullptr,
106  const Drawable* disabledImageOn = nullptr);
107 
108 
109  //==============================================================================
113  void setButtonStyle (ButtonStyle newStyle);
114 
116  ButtonStyle getStyle() const noexcept { return style; }
117 
118  //==============================================================================
122  void setEdgeIndent (int numPixelsIndent);
123 
124  //==============================================================================
126  Drawable* getCurrentImage() const noexcept;
127 
129  Drawable* getNormalImage() const noexcept;
131  Drawable* getOverImage() const noexcept;
133  Drawable* getDownImage() const noexcept;
134 
136  virtual Rectangle<float> getImageBounds() const;
137 
138  //==============================================================================
150  {
151  textColourId = 0x1004010,
152  textColourOnId = 0x1004013,
154  backgroundColourId = 0x1004011,
158  backgroundOnColourId = 0x1004012,
162  };
163 
164  //==============================================================================
166  void paintButton (Graphics&, bool isMouseOverButton, bool isButtonDown) override;
168  void buttonStateChanged() override;
170  void resized() override;
172  void enablementChanged() override;
174  void colourChanged() override;
175 
176 private:
177  //==============================================================================
178  ButtonStyle style;
179  ScopedPointer<Drawable> normalImage, overImage, downImage, disabledImage,
180  normalImageOn, overImageOn, downImageOn, disabledImageOn;
181  Drawable* currentImage;
182  int edgeIndent;
183 
185 };
186 
187 
188 #endif // JUCE_DRAWABLEBUTTON_H_INCLUDED
Definition: juce_DrawableButton.h:47
ButtonStyle getStyle() const noexcept
Definition: juce_DrawableButton.h:116
#define noexcept
Definition: juce_CompilerSupport.h:141
Definition: juce_Button.h:39
ButtonStyle
Definition: juce_DrawableButton.h:42
Definition: juce_DrawableButton.h:38
Definition: juce_DrawableButton.h:44
Definition: juce_String.h:43
#define JUCE_API
Definition: juce_StandardHeader.h:139
#define const
Definition: juce_Rectangle.h:36
virtual void resized()
Definition: juce_Component.cpp:2272
virtual void colourChanged()
Definition: juce_Component.cpp:2139
virtual void buttonStateChanged()
Definition: juce_Button.cpp:311
ColourIds
Definition: juce_DrawableButton.h:149
Definition: juce_Drawable.h:35
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
Definition: juce_PlatformDefs.h:198
Definition: juce_GraphicsContext.h:42
void enablementChanged() override
Definition: juce_Button.cpp:264
virtual void paintButton(Graphics &g, bool isMouseOverButton, bool isButtonDown)=0