28 broadcastCallback.owner =
this;
39 JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED
41 changeListeners.
add (listener);
48 JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED
50 changeListeners.
remove (listener);
57 JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED
59 changeListeners.
clear();
64 if (changeListeners.
size() > 0)
65 broadcastCallback.triggerAsyncUpdate();
71 JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED
73 broadcastCallback.cancelPendingUpdate();
79 broadcastCallback.handleUpdateNowIfNeeded();
82void ChangeBroadcaster::callListeners()
84 changeListeners.call ([
this] (
ChangeListener&
l) {
l.changeListenerCallback (
this); });
88ChangeBroadcaster::ChangeBroadcasterCallback::ChangeBroadcasterCallback()
93void ChangeBroadcaster::ChangeBroadcasterCallback::handleAsyncUpdate()
95 jassert (owner !=
nullptr);
96 owner->callListeners();
Holds a resizable array of primitive or copy-by-value objects.
int size() const noexcept
Returns the current number of elements in the array.
void remove(int indexToRemove)
Removes an element from the array.
void add(const ElementType &newElement)
Appends a new element at the end of the array.
void clear()
Removes all elements from the array.
void sendChangeMessage()
Causes an asynchronous change message to be sent to all the registered listeners.
virtual ~ChangeBroadcaster()
Destructor.
ChangeBroadcaster() noexcept
Creates an ChangeBroadcaster.
void addChangeListener(ChangeListener *listener)
Registers a listener to receive change callbacks from this broadcaster.
void removeChangeListener(ChangeListener *listener)
Unregisters a listener from the list.
void removeAllChangeListeners()
Removes all listeners from the list.
void sendSynchronousChangeMessage()
Sends a synchronous change message to all the registered listeners.
void dispatchPendingMessages()
If a change message has been sent but not yet dispatched, this will call sendSynchronousChangeMessage...
Receives change event callbacks that are sent out by a ChangeBroadcaster.