59 jassert (componentToPointTo !=
nullptr);
64 target =
p->getLocalArea (componentToPointTo, componentToPointTo->
getLocalBounds());
68 setPosition (target, distanceFromTarget, arrowLength);
77 int distanceFromTarget,
int arrowLength)
80 int contentW = 150, contentH = 30;
82 content.setBounds (distanceFromTarget, distanceFromTarget, contentW, contentH);
85 const int totalW =
content.getWidth() + distanceFromTarget * 2;
86 const int totalH =
content.getHeight() + distanceFromTarget * 2;
98 && (spaceAbove > totalH + 20 || spaceBelow > totalH + 20))
100 spaceLeft = spaceRight = 0;
103 && (spaceLeft > totalW + 20 || spaceRight > totalW + 20))
105 spaceAbove = spaceBelow = 0;
108 int targetX, targetY;
110 if (
jmax (spaceAbove, spaceBelow) >=
jmax (spaceLeft, spaceRight))
112 targetX = rectangleToPointTo.
getCentre().x;
115 if (spaceAbove >= spaceBelow)
118 targetY = rectangleToPointTo.
getY();
124 targetY = rectangleToPointTo.
getBottom();
130 targetY = rectangleToPointTo.
getCentre().y;
133 if (spaceLeft > spaceRight)
136 targetX = rectangleToPointTo.
getX();
142 targetX = rectangleToPointTo.
getRight();
DropShadowEffect shadow
Definition juce_BubbleComponent.h:181
BubbleComponent()
Definition juce_BubbleComponent.cpp:29
void setPosition(Component *componentToPointTo, int distanceFromTarget=15, int arrowLength=10)
Definition juce_BubbleComponent.cpp:57
virtual void paintContent(Graphics &g, int width, int height)=0
@ above
Definition juce_BubbleComponent.h:69
@ left
Definition juce_BubbleComponent.h:71
@ below
Definition juce_BubbleComponent.h:70
@ right
Definition juce_BubbleComponent.h:72
~BubbleComponent() override
Definition juce_BubbleComponent.cpp:38
Rectangle< int > content
Definition juce_BubbleComponent.h:178
void paint(Graphics &) override
Definition juce_BubbleComponent.cpp:41
int allowablePlacements
Definition juce_BubbleComponent.h:180
void setAllowedPlacement(int newPlacement)
Definition juce_BubbleComponent.cpp:51
Point< int > arrowTip
Definition juce_BubbleComponent.h:179
virtual void getContentSize(int &width, int &height)=0
AffineTransform getTransform() const
Definition juce_Component.cpp:1378
void setInterceptsMouseClicks(bool allowClicksOnThisComponent, bool allowClicksOnChildComponents) noexcept
Definition juce_Component.cpp:1420
Component * getParentComponent() const noexcept
Definition juce_Component.h:804
Component() noexcept
Definition juce_Component.cpp:517
Rectangle< int > getScreenBounds() const
Definition juce_Component.cpp:1134
void setBounds(int x, int y, int width, int height)
Definition juce_Component.cpp:1147
Rectangle< int > getParentMonitorArea() const
Definition juce_Component.cpp:1126
LookAndFeel & getLookAndFeel() const noexcept
Definition juce_Component.cpp:2173
Rectangle< int > getLocalBounds() const noexcept
Definition juce_Component.cpp:2283
void setComponentEffect(ImageEffectFilter *newEffect)
Definition juce_Component.cpp:2163
Definition juce_GraphicsContext.h:45
Definition juce_Point.h:42
ValueType y
Definition juce_Point.h:247
ValueType x
Definition juce_Point.h:246
Definition juce_Rectangle.h:67
ValueType getRight() const noexcept
Definition juce_Rectangle.h:139
Point< ValueType > getCentre() const noexcept
Definition juce_Rectangle.h:151
ValueType getHeight() const noexcept
Definition juce_Rectangle.h:136
ValueType getBottom() const noexcept
Definition juce_Rectangle.h:142
ValueType getX() const noexcept
Definition juce_Rectangle.h:127
ValueType getWidth() const noexcept
Definition juce_Rectangle.h:133
ValueType getY() const noexcept
Definition juce_Rectangle.h:130
Rectangle transformedBy(const AffineTransform &transform) const noexcept
Definition juce_Rectangle.h:814
int g
Definition inflate.c:1573
const Colour black
Definition juce_Colours.h:50
Definition carla_juce.cpp:31
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
Definition juce_DropShadowEffect.h:36
uch * p
Definition crypt.c:594