26class ActionBroadcaster::ActionMessage :
public MessageManager::MessageBase
30 const String& messageText, ActionListener* l) noexcept
32 message (messageText),
36 void messageCallback()
override
38 if (
auto b = broadcaster.get())
39 if (b->actionListeners.contains (listener))
40 listener->actionListenerCallback (message);
44 WeakReference<ActionBroadcaster> broadcaster;
46 ActionListener*
const listener;
48 JUCE_DECLARE_NON_COPYABLE (ActionMessage)
55 JUCE_ASSERT_MESSAGE_MANAGER_EXISTS
61 JUCE_ASSERT_MESSAGE_MANAGER_EXISTS
68 if (listener !=
nullptr)
69 actionListeners.
add (listener);
75 actionListeners.removeValue (listener);
81 actionListeners.
clear();
88 for (
int i = actionListeners.
size(); --i >= 0;)
89 (
new ActionMessage (
this, message, actionListeners.
getUnchecked(i)))->post();
void removeActionListener(ActionListener *listener)
void addActionListener(ActionListener *listener)
virtual ~ActionBroadcaster()
void removeAllActionListeners()
void sendActionMessage(const String &message) const
ElementType getUnchecked(int index) const
int size() const noexcept
void add(const ElementType &newElement)