36 proxy.deleteAndZero();
41 int millisecondsToSpendMoving,
42 bool useProxyComponent,
43 double startSpd,
double endSpd)
60 const double invTotalDistance = 4.0 / (startSpd + endSpd + 2.0);
65 proxy.deleteAndZero();
67 if (useProxyComponent)
70 component->setVisible (! useProxyComponent);
75 if (
auto*
c =
proxy !=
nullptr ?
proxy.getComponent()
81 if (newProgress >= 0 && newProgress < 1.0)
91 bool stillBusy =
false;
107 c->setBounds (newBounds);
120 c->setAlpha ((
float)
alpha);
143 if (
proxy !=
nullptr)
159 if (
auto*
parent =
c.getParentComponent())
160 parent->addAndMakeVisible (
this);
161 else if (
c.isOnDesktop() &&
c.getPeer() !=
nullptr)
169 image =
c.createComponentSnapshot (
c.getLocalBounds(),
false, scale);
223 for (
int i =
tasks.size(); --
i >= 0;)
224 if (component ==
tasks.getUnchecked(
i)->component.get())
225 return tasks.getUnchecked(
i);
232 const float finalAlpha,
233 const int millisecondsToSpendMoving,
234 const bool useProxyComponent,
235 const double startSpeed,
236 const double endSpeed)
239 jassert (startSpeed >= 0 && endSpeed >= 0);
241 if (component !=
nullptr)
252 at->reset (finalBounds, finalAlpha, millisecondsToSpendMoving,
253 useProxyComponent, startSpeed, endSpeed);
265 if (component !=
nullptr)
267 if (component->
isShowing() && millisecondsToTake > 0)
276 if (component !=
nullptr && ! (component->
isVisible() && component->
getAlpha() == 1.0f))
286 if (
tasks.size() > 0)
288 if (moveComponentsToTheirFinalPositions)
289 for (
int i =
tasks.size(); --
i >= 0;)
290 tasks.getUnchecked(
i)->moveToFinalDestination();
298 const bool moveComponentToItsFinalPosition)
302 if (moveComponentToItsFinalPosition)
303 at->moveToFinalDestination();
305 tasks.removeObject (at);
312 jassert (component !=
nullptr);
315 return at->destination;
327 return tasks.size() != 0;
341 if (
tasks.contains (task) && ! task->useTimeslice (elapsed))
343 tasks.removeObject (task);
350 if (
tasks.size() == 0)
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Array.h:56
void sendChangeMessage()
Definition juce_ChangeBroadcaster.cpp:65
Definition juce_Component.h:2287
Definition juce_ComponentAnimator.cpp:30
bool isChangingAlpha
Definition juce_ComponentAnimator.cpp:202
WeakReference< Component > component
Definition juce_ComponentAnimator.cpp:193
double alpha
Definition juce_ComponentAnimator.cpp:201
Component::SafePointer< Component > proxy
Definition juce_ComponentAnimator.cpp:194
double left
Definition juce_ComponentAnimator.cpp:201
double startSpeed
Definition juce_ComponentAnimator.cpp:200
void moveToFinalDestination()
Definition juce_ComponentAnimator.cpp:134
double timeToDistance(const double time) const noexcept
Definition juce_ComponentAnimator.cpp:205
bool useTimeslice(const int elapsed)
Definition juce_ComponentAnimator.cpp:73
double midSpeed
Definition juce_ComponentAnimator.cpp:200
bool isMoving
Definition juce_ComponentAnimator.cpp:202
double lastProgress
Definition juce_ComponentAnimator.cpp:200
void reset(const Rectangle< int > &finalBounds, float finalAlpha, int millisecondsToSpendMoving, bool useProxyComponent, double startSpd, double endSpd)
Definition juce_ComponentAnimator.cpp:39
double right
Definition juce_ComponentAnimator.cpp:201
double destAlpha
Definition juce_ComponentAnimator.cpp:197
int msTotal
Definition juce_ComponentAnimator.cpp:199
double top
Definition juce_ComponentAnimator.cpp:201
Rectangle< int > destination
Definition juce_ComponentAnimator.cpp:196
double bottom
Definition juce_ComponentAnimator.cpp:201
double endSpeed
Definition juce_ComponentAnimator.cpp:200
AnimationTask(Component *c) noexcept
Definition juce_ComponentAnimator.cpp:32
~AnimationTask()
Definition juce_ComponentAnimator.cpp:34
int msElapsed
Definition juce_ComponentAnimator.cpp:199
void animateComponent(Component *component, const Rectangle< int > &finalBounds, float finalAlpha, int animationDurationMilliseconds, bool useProxyComponent, double startSpeed, double endSpeed)
Definition juce_ComponentAnimator.cpp:230
void cancelAllAnimations(bool moveComponentsToTheirFinalPositions)
Definition juce_ComponentAnimator.cpp:284
void timerCallback() override
Definition juce_ComponentAnimator.cpp:330
Rectangle< int > getComponentDestination(Component *component)
Definition juce_ComponentAnimator.cpp:310
void fadeOut(Component *component, int millisecondsToTake)
Definition juce_ComponentAnimator.cpp:263
uint32 lastTime
Definition juce_ComponentAnimator.h:154
AnimationTask * findTaskFor(Component *) const noexcept
Definition juce_ComponentAnimator.cpp:221
~ComponentAnimator() override
Definition juce_ComponentAnimator.cpp:218
void cancelAnimation(Component *component, bool moveComponentToItsFinalPosition)
Definition juce_ComponentAnimator.cpp:297
bool isAnimating(Component *component) const noexcept
Definition juce_ComponentAnimator.cpp:320
OwnedArray< AnimationTask > tasks
Definition juce_ComponentAnimator.h:153
void fadeIn(Component *component, int millisecondsToTake)
Definition juce_ComponentAnimator.cpp:274
ComponentAnimator()
Definition juce_ComponentAnimator.cpp:217
Definition juce_Component.h:36
void setTransform(const AffineTransform &transform)
Definition juce_Component.cpp:1341
void toBehind(Component *other)
Definition juce_Component.cpp:1004
void setInterceptsMouseClicks(bool allowClicksOnThisComponent, bool allowClicksOnChildComponents) noexcept
Definition juce_Component.cpp:1420
bool isVisible() const noexcept
Definition juce_Component.h:122
int getHeight() const noexcept
Definition juce_Component.h:274
bool isShowing() const
Definition juce_Component.cpp:634
static float JUCE_CALLTYPE getApproximateScaleFactorForComponent(const Component *targetComponent)
Definition juce_Component.cpp:1383
void setAlpha(float newAlpha)
Definition juce_Component.cpp:1892
float getAlpha() const noexcept
Definition juce_Component.cpp:1887
Rectangle< int > getBounds() const noexcept
Definition juce_Component.h:304
Component() noexcept
Definition juce_Component.cpp:517
Rectangle< int > getScreenBounds() const
Definition juce_Component.cpp:1134
virtual void addToDesktop(int windowStyleFlags, void *nativeWindowToAttachTo=nullptr)
Definition juce_Component.cpp:658
void setBounds(int x, int y, int width, int height)
Definition juce_Component.cpp:1147
void setWantsKeyboardFocus(bool wantsFocus) noexcept
Definition juce_Component.cpp:2842
static std::unique_ptr< AccessibilityHandler > createIgnoredAccessibilityHandler(Component &)
Definition juce_Component.cpp:3292
int getWidth() const noexcept
Definition juce_Component.h:271
virtual void setVisible(bool shouldBeVisible)
Definition juce_Component.cpp:575
@ windowIgnoresKeyPresses
Definition juce_ComponentPeer.h:71
static Desktop &JUCE_CALLTYPE getInstance()
Definition juce_Desktop.cpp:50
Definition juce_GraphicsContext.h:45
Definition juce_Image.h:58
Definition juce_Rectangle.h:67
static uint32 getMillisecondCounter() noexcept
Definition juce_Time.cpp:241
void stopTimer() noexcept
Definition juce_Timer.cpp:357
void startTimerHz(int timerFrequencyHz) noexcept
Definition juce_Timer.cpp:349
bool isTimerRunning() const noexcept
Definition juce_Timer.h:111
Definition juce_WeakReference.h:78
bool wasObjectDeleted() const noexcept
Definition juce_WeakReference.h:117
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
static uintptr_t parent
Definition pugl.h:1644
#define JUCE_DECLARE_WEAK_REFERENCEABLE(Class)
Definition juce_WeakReference.h:234
Definition carla_juce.cpp:31
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
Definition juce_ComponentAnimator.cpp:150
Image image
Definition juce_ComponentAnimator.cpp:188
void paint(Graphics &g) override
Definition juce_ComponentAnimator.cpp:175
ProxyComponent(Component &c)
Definition juce_ComponentAnimator.cpp:151
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_ComponentAnimator.cpp:183
return c
Definition crypt.c:175
typedef int(UZ_EXP MsgFn)()
#define const
Definition zconf.h:137