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_BubbleComponent.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//==============================================================================
46class JUCE_API BubbleComponent : public Component
47{
48protected:
49 //==============================================================================
56
57public:
59 ~BubbleComponent() override;
60
61 //==============================================================================
68 {
69 above = 1,
70 below = 2,
71 left = 4,
72 right = 8
73 };
74
87 void setAllowedPlacement (int newPlacement);
88
89 //==============================================================================
99 void setPosition (Component* componentToPointTo,
100 int distanceFromTarget = 15, int arrowLength = 10);
101
113 void setPosition (Point<int> arrowTipPosition, int arrowLength = 10);
114
129 void setPosition (Rectangle<int> rectangleToPointTo,
130 int distanceFromTarget = 15, int arrowLength = 10);
131
132 //==============================================================================
141 {
142 backgroundColourId = 0x1000af0,
143 outlineColourId = 0x1000af1
144 };
145
146
147 //==============================================================================
150 struct JUCE_API LookAndFeelMethods
151 {
152 virtual ~LookAndFeelMethods() = default;
153
157 virtual void drawBubble (Graphics& g,
158 BubbleComponent& bubbleComponent,
159 const Point<float>& positionOfTip,
160 const Rectangle<float>& body) = 0;
161
173 virtual void setComponentEffectForBubbleComponent (BubbleComponent& bubbleComponent) = 0;
174 };
175
176 //==============================================================================
178 void paint (Graphics&) override;
180 void lookAndFeelChanged() override;
181
182protected:
183 //==============================================================================
187 virtual void getContentSize (int& width, int& height) = 0;
188
194 virtual void paintContent (Graphics& g, int width, int height) = 0;
195
196private:
197 Rectangle<int> content;
198 Point<int> arrowTip;
199 int allowablePlacements;
200
202};
203
204} // namespace juce
A component for showing a message or other graphics inside a speech-bubble-shaped outline,...
virtual void paintContent(Graphics &g, int width, int height)=0
Subclasses should override this to draw their bubble's contents.
BubblePlacement
A list of permitted placements for the bubble, relative to the coordinates at which it should be poin...
ColourIds
A set of colour IDs to use to change the colour of various aspects of the bubble component.
virtual void getContentSize(int &width, int &height)=0
Subclasses should override this to return the size of the content they want to draw inside the bubble...
The base class for all JUCE user-interface objects.
A graphics context, used for drawing a component or image.
A pair of (x, y) coordinates.
Definition juce_Point.h:42
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.
virtual void drawBubble(Graphics &g, BubbleComponent &bubbleComponent, const Point< float > &positionOfTip, const Rectangle< float > &body)=0
Override this method to draw a speech-bubble pointing at a specific location on the screen.
virtual void setComponentEffectForBubbleComponent(BubbleComponent &bubbleComponent)=0
Override this method to set effects, such as a drop-shadow, on a BubbleComponent.