39 if (
comp->isOnDesktop())
42 const auto scope = [&]() -> std::unique_ptr<ScopedThreadDPIAwarenessSetter>
45 if (
auto* handle =
comp->getWindowHandle())
46 return std::make_unique<ScopedThreadDPIAwarenessSetter> (handle);
59 parent->addChildComponent (
this);
77 return target->getDesktopScaleFactor();
108 if (
auto*
comp = compEntry.get())
109 comp->removeComponentListener (
this);
114 if (
root != &component)
120 if (
root == &component)
146 std::set<ComponentWithWeakReference>
result;
148 for (
auto node =
root; node !=
nullptr; node = node->getParentComponent())
154 const auto withDifference = [] (
const auto& rangeA,
const auto& rangeB,
auto&&
callback)
156 std::vector<ComponentWithWeakReference>
result;
157 std::set_difference (rangeA.begin(), rangeA.end(), rangeB.begin(), rangeB.end(), std::back_inserter (
result));
159 for (
const auto& item :
result)
160 if (
auto*
c = item.get())
177 if (deletionChecker ==
nullptr)
198 if (
owner !=
nullptr)
200 owner->removeComponentListener (
this);
212 if (componentToFollow !=
owner)
214 if (
owner !=
nullptr)
215 owner->removeComponentListener (
this);
218 jassert (componentToFollow !=
nullptr);
220 owner = componentToFollow;
224 owner->addComponentListener (
this);
238 p->removeComponentListener (
this);
243 p->addComponentListener (
this);
286 &&
owner->isShowing()
287 &&
owner->getWidth() > 0 &&
owner->getHeight() > 0
295 const int x =
owner->getX();
296 const int y =
owner->getY() - shadowEdge;
297 const int w =
owner->getWidth();
298 const int h =
owner->getHeight() + shadowEdge + shadowEdge;
300 for (
int i = 4; --
i >= 0;)
308 sw->setAlwaysOnTop (
owner->isAlwaysOnTop());
315 case 0: sw->setBounds (
x - shadowEdge,
y, shadowEdge,
h);
break;
316 case 1: sw->setBounds (
x +
w,
y, shadowEdge,
h);
break;
317 case 2: sw->setBounds (
x,
y,
w, shadowEdge);
break;
318 case 3: sw->setBounds (
x,
owner->getBottom(),
w, shadowEdge);
break;
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
#define noexcept
Definition DistrhoDefines.h:72
static Audio_Scope * scope
Definition player.cpp:26
Definition juce_Component.h:36
void setAccessible(bool shouldBeAccessible)
Definition juce_Component.cpp:3273
void setInterceptsMouseClicks(bool allowClicksOnThisComponent, bool allowClicksOnChildComponents) noexcept
Definition juce_Component.cpp:1420
Rectangle< int > getLocalArea(const Component *sourceComponent, Rectangle< int > areaRelativeToSourceComponent) const
Definition juce_Component.cpp:1138
void repaint()
Definition juce_Component.cpp:1917
Component() noexcept
Definition juce_Component.cpp:517
virtual void addToDesktop(int windowStyleFlags, void *nativeWindowToAttachTo=nullptr)
Definition juce_Component.cpp:658
void setSize(int newWidth, int newHeight)
Definition juce_Component.cpp:1262
virtual void setVisible(bool shouldBeVisible)
Definition juce_Component.cpp:575
virtual float getDesktopScaleFactor() const
Definition juce_Component.cpp:826
Definition juce_ComponentListener.h:43
@ windowIsTemporary
Definition juce_ComponentPeer.h:52
@ windowIgnoresKeyPresses
Definition juce_ComponentPeer.h:71
@ windowIgnoresMouseClicks
Definition juce_ComponentPeer.h:54
static bool canUseSemiTransparentWindows() noexcept
Definition juce_linux_Windowing.cpp:603
WeakReference< Component > ref
Definition juce_DropShadower.cpp:139
ComponentWithWeakReference(Component &c)
Definition juce_DropShadower.cpp:130
Component * get() const
Definition juce_DropShadower.cpp:133
Component * ptr
Definition juce_DropShadower.cpp:138
Definition juce_DropShadower.cpp:91
void updateParentHierarchy()
Definition juce_DropShadower.cpp:142
bool isWindowOnVirtualDesktop() const noexcept
Definition juce_DropShadower.cpp:124
ParentVisibilityChangedListener(Component &r, ComponentListener &l)
Definition juce_DropShadower.cpp:93
~ParentVisibilityChangedListener() override
Definition juce_DropShadower.cpp:105
Component * root
Definition juce_DropShadower.cpp:184
void componentVisibilityChanged(Component &component) override
Definition juce_DropShadower.cpp:112
void timerCallback() override
Definition juce_DropShadower.cpp:168
bool isOnVirtualDesktop
Definition juce_DropShadower.cpp:187
ComponentListener * listener
Definition juce_DropShadower.cpp:185
void componentParentHierarchyChanged(Component &component) override
Definition juce_DropShadower.cpp:118
std::set< ComponentWithWeakReference > observedComponents
Definition juce_DropShadower.cpp:186
Definition juce_DropShadower.cpp:30
float getDesktopScaleFactor() const override
Definition juce_DropShadower.cpp:74
void paint(Graphics &g) override
Definition juce_DropShadower.cpp:63
DropShadow shadow
Definition juce_DropShadower.cpp:84
void resized() override
Definition juce_DropShadower.cpp:69
WeakReference< Component > target
Definition juce_DropShadower.cpp:83
ShadowWindow(Component *comp, const DropShadow &ds)
Definition juce_DropShadower.cpp:32
std::unique_ptr< ParentVisibilityChangedListener > visibilityChangedListener
Definition juce_DropShadower.h:78
OwnedArray< Component > shadowWindows
Definition juce_DropShadower.h:72
void componentParentHierarchyChanged(Component &) override
Definition juce_DropShadower.cpp:263
void componentChildrenChanged(Component &) override
Definition juce_DropShadower.cpp:258
void componentBroughtToFront(Component &) override
Definition juce_DropShadower.cpp:252
bool reentrant
Definition juce_DropShadower.h:74
void updateShadows()
Definition juce_DropShadower.cpp:278
DropShadower(const DropShadow &shadowType)
Definition juce_DropShadower.cpp:194
DropShadow shadow
Definition juce_DropShadower.h:73
void componentVisibilityChanged(Component &) override
Definition juce_DropShadower.cpp:272
~DropShadower() override
Definition juce_DropShadower.cpp:196
void setOwner(Component *componentToFollow)
Definition juce_DropShadower.cpp:210
void componentMovedOrResized(Component &, bool, bool) override
Definition juce_DropShadower.cpp:246
void updateParent()
Definition juce_DropShadower.cpp:235
WeakReference< Component > lastParentComp
Definition juce_DropShadower.h:75
WeakReference< Component > owner
Definition juce_DropShadower.h:71
Definition juce_GraphicsContext.h:45
Definition juce_ScopedValueSetter.h:55
@ Windows
Definition juce_SystemStats.h:49
static OperatingSystemType getOperatingSystemType()
Definition juce_linux_SystemStats.cpp:52
Timer() noexcept
Definition juce_Timer.cpp:316
void startTimerHz(int timerFrequencyHz) noexcept
Definition juce_Timer.cpp:349
Definition juce_WeakReference.h:78
UINT_D64 w
Definition inflate.c:942
int * l
Definition inflate.c:1579
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
unsigned x[BMAX+1]
Definition inflate.c:1586
static uintptr_t parent
Definition pugl.h:1644
static int JUCE_CDECL comp(const void *a, const void *b)
Definition lsp.c:298
Definition carla_juce.cpp:31
bool isWindowOnCurrentVirtualDesktop(void *)
Definition juce_gui_basics.cpp:408
Definition juce_DropShadowEffect.h:36
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
uch * p
Definition crypt.c:594
return c
Definition crypt.c:175
int r
Definition crypt.c:458
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
int result
Definition process.c:1455
#define const
Definition zconf.h:137