LMMS
Loading...
Searching...
No Matches
juce_Toolbar.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
29class ToolbarItemComponent;
30class ToolbarItemFactory;
31
32
33//==============================================================================
52class JUCE_API Toolbar : public Component,
55{
56public:
57 //==============================================================================
66 Toolbar();
67
72 ~Toolbar() override;
73
74 //==============================================================================
78 void setVertical (bool shouldBeVertical);
79
84 bool isVertical() const noexcept { return vertical; }
85
93 int getThickness() const noexcept;
94
102 int getLength() const noexcept;
103
104 //==============================================================================
107 void clear();
108
122 void addItem (ToolbarItemFactory& factory,
123 int itemId,
124 int insertIndex = -1);
125
127 void removeToolbarItem (int itemIndex);
128
130 ToolbarItemComponent* removeAndReturnItem (int itemIndex);
131
136 int getNumItems() const noexcept;
137
145 int getItemId (int itemIndex) const noexcept;
146
154 ToolbarItemComponent* getItemComponent (int itemIndex) const noexcept;
155
161 void addDefaultItems (ToolbarItemFactory& factoryToUse);
162
163 //==============================================================================
173
178
182 void setStyle (const ToolbarItemStyle& newStyle);
183
184 //==============================================================================
199
214 void showCustomisationDialog (ToolbarItemFactory& factory,
215 int optionFlags = allCustomisationOptionsEnabled);
216
225 void setEditingActive (bool editingEnabled);
226
227 //==============================================================================
252
253 //==============================================================================
260 String toString() const;
261
269 bool restoreFromString (ToolbarItemFactory& factoryToUse,
270 const String& savedVersion);
271
272 //==============================================================================
275 {
276 virtual ~LookAndFeelMethods() = default;
277
278 virtual void paintToolbarBackground (Graphics&, int width, int height, Toolbar&) = 0;
279
281
283 bool isMouseOver, bool isMouseDown,
285
286 virtual void paintToolbarButtonLabel (Graphics&, int x, int y, int width, int height,
287 const String& text, ToolbarItemComponent&) = 0;
288 };
289
290 //==============================================================================
292 void paint (Graphics&) override;
294 void resized() override;
296 void mouseDown (const MouseEvent&) override;
298 bool isInterestedInDragSource (const SourceDetails&) override;
300 void itemDragMove (const SourceDetails&) override;
302 void itemDragExit (const SourceDetails&) override;
304 void itemDropped (const SourceDetails&) override;
306 void lookAndFeelChanged() override;
308 void updateAllItemPositions (bool animate);
312 static const char* const toolbarDragDescriptor;
313
314private:
315 //==============================================================================
316 std::unique_ptr<Button> missingItemsButton;
317 bool vertical = false, isEditingActive = false;
322 class Spacer;
324
325 std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override;
327 void showMissingItems();
328 void addItemInternal (ToolbarItemFactory& factory, int itemId, int insertIndex);
329
330 ToolbarItemComponent* getNextActiveComponent (int index, int delta) const;
331
333};
334
335} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Button.h:43
Component() noexcept
Definition juce_Component.cpp:517
bool isMouseOver(bool includeChildren=false) const
Definition juce_Component.cpp:3159
Definition juce_DragAndDropTarget.h:54
Definition juce_DragAndDropTarget.h:46
Definition juce_GraphicsContext.h:45
Definition juce_MouseEvent.h:39
Definition juce_OwnedArray.h:51
Definition juce_String.h:53
Definition juce_Toolbar.cpp:660
Definition juce_Toolbar.cpp:155
Definition juce_Toolbar.cpp:33
ColourIds
Definition juce_Toolbar.h:236
@ backgroundColourId
Definition juce_Toolbar.h:237
@ editingModeOutlineColourId
Definition juce_Toolbar.h:249
@ buttonMouseOverBackgroundColourId
Definition juce_Toolbar.h:241
@ labelTextColourId
Definition juce_Toolbar.h:246
@ separatorColourId
Definition juce_Toolbar.h:239
@ buttonMouseDownBackgroundColourId
Definition juce_Toolbar.h:243
void lookAndFeelChanged() override
Definition juce_Toolbar.cpp:650
ToolbarItemComponent * getNextActiveComponent(int index, int delta) const
Definition juce_Toolbar.cpp:356
Toolbar()
Definition juce_Toolbar.cpp:243
bool isInterestedInDragSource(const SourceDetails &) override
Definition juce_Toolbar.cpp:558
bool isEditingActive
Definition juce_Toolbar.h:317
void showMissingItems()
Definition juce_Toolbar.cpp:544
static const char *const toolbarDragDescriptor
Definition juce_Toolbar.h:312
ToolbarItemStyle
Definition juce_Toolbar.h:168
@ textOnly
Definition juce_Toolbar.h:171
@ iconsWithText
Definition juce_Toolbar.h:170
@ iconsOnly
Definition juce_Toolbar.h:169
OwnedArray< ToolbarItemComponent > items
Definition juce_Toolbar.h:321
void itemDragExit(const SourceDetails &) override
Definition juce_Toolbar.cpp:631
ToolbarItemStyle getStyle() const noexcept
Definition juce_Toolbar.h:177
void itemDropped(const SourceDetails &) override
Definition juce_Toolbar.cpp:644
void setVertical(bool shouldBeVertical)
Definition juce_Toolbar.cpp:254
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_Toolbar.cpp:821
void addItemInternal(ToolbarItemFactory &factory, int itemId, int insertIndex)
Definition juce_Toolbar.cpp:278
void resized() override
Definition juce_Toolbar.cpp:436
ToolbarItemStyle toolbarStyle
Definition juce_Toolbar.h:318
std::unique_ptr< Button > missingItemsButton
Definition juce_Toolbar.h:316
void initMissingItemButton()
Definition juce_Toolbar.cpp:534
CustomisationFlags
Definition juce_Toolbar.h:187
@ allowIconsWithTextChoice
Definition juce_Toolbar.h:190
@ allCustomisationOptionsEnabled
Definition juce_Toolbar.h:197
@ allowIconsOnlyChoice
Definition juce_Toolbar.h:188
@ allowTextOnlyChoice
Definition juce_Toolbar.h:192
@ showResetToDefaultsButton
Definition juce_Toolbar.h:194
bool vertical
Definition juce_Toolbar.h:317
void mouseDown(const MouseEvent &) override
Definition juce_Toolbar.cpp:656
static ToolbarItemComponent * createItem(ToolbarItemFactory &, int itemId)
Definition juce_Toolbar.cpp:269
void paint(Graphics &) override
Definition juce_Toolbar.cpp:411
bool isVertical() const noexcept
Definition juce_Toolbar.h:84
void updateAllItemPositions(bool animate)
Definition juce_Toolbar.cpp:441
void itemDragMove(const SourceDetails &) override
Definition juce_Toolbar.cpp:563
Definition juce_ToolbarItemComponent.h:50
Definition juce_ToolbarItemFactory.h:45
int y
Definition inflate.c:1588
unsigned x[BMAX+1]
Definition inflate.c:1586
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
juce::String toString(const Steinberg::char8 *string) noexcept
Definition juce_VST3Common.h:159
Definition juce_Toolbar.h:275
virtual ~LookAndFeelMethods()=default
virtual void paintToolbarBackground(Graphics &, int width, int height, Toolbar &)=0
virtual Button * createToolbarMissingItemsButton(Toolbar &)=0
virtual void paintToolbarButtonBackground(Graphics &, int width, int height, bool isMouseOver, bool isMouseDown, ToolbarItemComponent &)=0
virtual void paintToolbarButtonLabel(Graphics &, int x, int y, int width, int height, const String &text, ToolbarItemComponent &)=0
const char * text
Definition swell-functions.h:167
#define const
Definition zconf.h:137