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_ConcertinaPanel.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//==============================================================================
39class JUCE_API ConcertinaPanel : public Component
40{
41public:
46
48 ~ConcertinaPanel() override;
49
59 void addPanel (int insertIndex, Component* component, bool takeOwnership);
60
65 void removePanel (Component* panelComponent);
66
70 int getNumPanels() const noexcept;
71
75 Component* getPanel (int index) const noexcept;
76
82 bool setPanelSize (Component* panelComponent, int newHeight, bool animate);
83
90 bool expandPanelFully (Component* panelComponent, bool animate);
91
93 void setMaximumPanelSize (Component* panelComponent, int maximumSize);
94
96 void setPanelHeaderSize (Component* panelComponent, int headerSize);
97
109 void setCustomPanelHeader (Component* panelComponent, Component* customHeaderComponent, bool takeOwnership);
110
111 //==============================================================================
113 struct JUCE_API LookAndFeelMethods
114 {
115 virtual ~LookAndFeelMethods() = default;
116
117 virtual void drawConcertinaPanelHeader (Graphics&, const Rectangle<int>& area,
118 bool isMouseOver, bool isMouseDown,
120 };
121
123 std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override;
124
125private:
126 void resized() override;
127
128 class PanelHolder;
129 struct PanelSizes;
130 std::unique_ptr<PanelSizes> currentSizes;
132 ComponentAnimator animator;
133 int headerHeight;
134
135 int indexOfComp (Component*) const noexcept;
136 PanelSizes getFittedSizes() const;
137 void applyLayout (const PanelSizes&, bool animate);
138 void setLayout (const PanelSizes&, bool animate);
139 void panelHeaderDoubleClicked (Component*);
140
142};
143
144} // namespace juce
Animates a set of components, moving them to a new position and/or fading their alpha levels.
The base class for all JUCE user-interface objects.
A panel which holds a vertical stack of components which can be expanded and contracted.
~ConcertinaPanel() override
Destructor.
A graphics context, used for drawing a component or image.
An array designed for holding objects.
Manages a rectangle and allows geometric operations to be performed on it.
#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.
This abstract base class is implemented by LookAndFeel classes.