41 std::unique_ptr<Component> componentDeleter (
component);
78 if (
auto* mcm = ModalComponentManager::getInstanceWithoutCreating())
79 mcm->triggerAsyncUpdate();
99 clearSingletonInstance();
108 if (component !=
nullptr)
116 std::unique_ptr<Callback> callbackDeleter (
callback);
118 for (
int i =
stack.size(); --
i >= 0;)
120 auto* item =
stack.getUnchecked (
i);
122 if (item->component == component)
125 callbackDeleter.release();
134 for (
int i =
stack.size(); --
i >= 0;)
136 auto* item =
stack.getUnchecked (
i);
138 if (item->component == component)
145 for (
int i =
stack.size(); --
i >= 0;)
147 auto* item =
stack.getUnchecked (
i);
149 if (item->component == component)
151 item->returnValue = returnValue;
161 for (
auto* item :
stack)
172 for (
int i =
stack.size(); --
i >= 0;)
174 auto* item =
stack.getUnchecked (
i);
178 return item->component;
186 for (
auto* item :
stack)
187 if (item->isActive && item->component ==
comp)
200 for (
int i =
stack.size(); --
i >= 0;)
202 auto* item =
stack.getUnchecked (
i);
204 if (! item->isActive)
206 std::unique_ptr<ModalItem> deleter (
stack.removeAndReturn (
i));
209 for (
int j = item->callbacks.size(); --
j >= 0;)
210 item->callbacks.getUnchecked (
j)->modalStateFinished (item->returnValue);
228 if (
auto* peer =
c->getPeer())
232 if (lastOne ==
nullptr)
234 peer->toFront (topOneShouldGrabFocus);
236 if (topOneShouldGrabFocus)
241 peer->toBehind (lastOne);
254 for (
int i = numModal; --
i >= 0;)
256 c->exitModalState (0);
262#if JUCE_MODAL_LOOPS_PERMITTED
263int ModalComponentManager::runEventLoopForCurrentComponent()
270 if (
auto* currentlyModal = getModalComponent (0))
281 if (! MessageManager::getInstance()->runDispatchLoopUntil (20))
Definition juce_Component.h:2287
void deleteAndZero()
Definition juce_Component.h:2314
void componentBeingDeleted(Component &) override
Definition juce_ComponentMovementWatcher.cpp:103
virtual void componentMovedOrResized(bool wasMoved, bool wasResized)=0
virtual void componentVisibilityChanged()=0
ComponentMovementWatcher(Component *componentToWatch)
Definition juce_ComponentMovementWatcher.cpp:29
Definition juce_ComponentPeer.h:44
static ModalComponentManager::Callback * create(CallbackFn &&fn)
Definition juce_ModalComponentManager.h:174
Definition juce_ModalComponentManager.h:56
Definition juce_ModalComponentManager.h:44
OwnedArray< ModalItem > stack
Definition juce_ModalComponentManager.h:146
void handleAsyncUpdate() override
Definition juce_ModalComponentManager.cpp:198
bool isModal(const Component *component) const
Definition juce_ModalComponentManager.cpp:184
void bringModalComponentsToFront(bool topOneShouldGrabFocus=true)
Definition juce_ModalComponentManager.cpp:217
~ModalComponentManager() override
Definition juce_ModalComponentManager.cpp:96
void startModal(Component *, bool autoDelete)
Definition juce_ModalComponentManager.cpp:106
Component * getModalComponent(int index) const
Definition juce_ModalComponentManager.cpp:168
bool isFrontModalComponent(const Component *component) const
Definition juce_ModalComponentManager.cpp:193
void attachCallback(Component *component, Callback *callback)
Definition juce_ModalComponentManager.cpp:112
bool cancelAllModalComponents()
Definition juce_ModalComponentManager.cpp:250
friend class Component
Definition juce_ModalComponentManager.h:143
void endModal(Component *, int returnValue)
Definition juce_ModalComponentManager.cpp:143
ModalComponentManager()
Definition juce_ModalComponentManager.cpp:92
int getNumModalComponents() const
Definition juce_ModalComponentManager.cpp:157
Definition juce_OwnedArray.h:51
register unsigned j
Definition inflate.c:1576
register unsigned i
Definition inflate.c:1575
#define JUCE_TRY
Definition juce_ApplicationBase.h:329
#define JUCE_CATCH_EXCEPTION
Definition juce_ApplicationBase.h:330
#define JUCE_ASSERT_MESSAGE_THREAD
Definition juce_MessageManager.h:473
#define JUCE_IMPLEMENT_SINGLETON(Classname)
Definition juce_Singleton.h:201
static int JUCE_CDECL comp(const void *a, const void *b)
Definition lsp.c:298
Definition carla_juce.cpp:31
Definition juce_Component.cpp:181
Definition juce_ModalComponentManager.cpp:30
OwnedArray< Callback > callbacks
Definition juce_ModalComponentManager.cpp:84
Component * component
Definition juce_ModalComponentManager.cpp:83
void cancel()
Definition juce_ModalComponentManager.cpp:72
ModalItem(Component *comp, bool shouldAutoDelete)
Definition juce_ModalComponentManager.cpp:31
void componentBeingDeleted(Component &comp) override
Definition juce_ModalComponentManager.cpp:61
~ModalItem() override
Definition juce_ModalComponentManager.cpp:38
bool isActive
Definition juce_ModalComponentManager.cpp:86
void componentVisibilityChanged() override
Definition juce_ModalComponentManager.cpp:53
bool autoDelete
Definition juce_ModalComponentManager.cpp:86
void componentMovedOrResized(bool, bool) override
Definition juce_ModalComponentManager.cpp:44
void componentPeerChanged() override
Definition juce_ModalComponentManager.cpp:48
int returnValue
Definition juce_ModalComponentManager.cpp:85
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
int n
Definition crypt.c:458
return c
Definition crypt.c:175
int r
Definition crypt.c:458
#define void
Definition unzip.h:396