Crazy Eddie's GUI System
0.8.6
|
Interface providing event signaling and handling. More...
Inherited by CEGUI::Element, CEGUI::Font, CEGUI::GlobalEventSet, CEGUI::MouseCursor, CEGUI::RenderingSurface, CEGUI::RenderTarget, CEGUI::ResourceEventSet, CEGUI::System, and CEGUI::WindowManager.
Public Types | |
typedef ConstMapIterator< EventMap > | EventIterator |
Public Member Functions | |
EventSet () | |
Constructor for EventSet objects. | |
virtual | ~EventSet (void) |
Destructor for EventSet objects. | |
void | addEvent (const String &name) |
Creates a new Event object with the given name and adds it to the EventSet. More... | |
void | addEvent (Event &event) |
Adds the given Event object to the EventSet. Ownership of the object passes to EventSet and it will be deleted when it is removed from the EventSet - whether explicitly via removeEvent or when the EventSet is destroyed. More... | |
void | removeEvent (const String &name) |
Removes the Event with the given name. All connections to the event are disconnected, and the underlying Event object is destroyed. More... | |
void | removeEvent (Event &event) |
Removes the given event from the EventSet. All connections to the event are disconnected, and the event object is destroyed. More... | |
void | removeAllEvents (void) |
Remove all Event objects from the EventSet. Add connections will be disconnected, and all Event objects destroyed. | |
bool | isEventPresent (const String &name) |
Checks to see if an Event with the given name is present in this EventSet. More... | |
virtual Event::Connection | subscribeEvent (const String &name, Event::Subscriber subscriber) |
Subscribes a handler to the named Event. If the named Event is not yet present in the EventSet, it is created and added. More... | |
virtual Event::Connection | subscribeEvent (const String &name, Event::Group group, Event::Subscriber subscriber) |
Subscribes a handler to the specified group of the named Event. If the named Event is not yet present in the EventSet, it is created and added. More... | |
template<typename Arg1 , typename Arg2 > | |
Event::Connection | subscribeEvent (const String &name, Arg1 arg1, Arg2 arg2) |
Subscribes a handler to the named Event. If the named Event is not yet present in the EventSet, it is created and added. More... | |
template<typename Arg1 , typename Arg2 > | |
Event::Connection | subscribeEvent (const String &name, Event::Group group, Arg1 arg1, Arg2 arg2) |
Subscribes a handler to the named Event. If the named Event is not yet present in the EventSet, it is created and added. More... | |
virtual Event::Connection | subscribeScriptedEvent (const String &name, const String &subscriber_name) |
Subscribes the named Event to a scripted funtion. More... | |
virtual Event::Connection | subscribeScriptedEvent (const String &name, Event::Group group, const String &subscriber_name) |
Subscribes the specified group of the named Event to a scripted funtion. More... | |
virtual void | fireEvent (const String &name, EventArgs &args, const String &eventNamespace="") |
Fires the named event passing the given EventArgs object. More... | |
bool | isMuted (void) const |
Return whether the EventSet is muted or not. More... | |
void | setMutedState (bool setting) |
Set the mute state for this EventSet. More... | |
Event * | getEventObject (const String &name, bool autoAdd=false) |
Return a pointer to the Event object with the given name, optionally adding such an Event object to the EventSet if it does not already exist. More... | |
EventIterator | getEventIterator (void) const |
Return a EventSet::EventIterator object to iterate over the events currently added to the EventSet. | |
Protected Types | |
typedef std::map< String, Event *, StringFastLessCompare CEGUI_MAP_ALLOC(String, Event *)> | EventMap |
Protected Member Functions | |
void | fireEvent_impl (const String &name, EventArgs &args) |
Implementation event firing member. | |
ScriptModule * | getScriptModule () const |
Helper to return the script module pointer or throw. | |
EventSet (EventSet &) | |
EventSet (const EventSet &) | |
EventSet & | operator= (EventSet &) |
EventSet & | operator= (const EventSet &) |
Protected Attributes | |
EventMap | d_events |
bool | d_muted |
true if events for this EventSet have been muted. | |
Interface providing event signaling and handling.
The EventSet is a means for code to attach a handler function to some named event, and later, for that event to be fired and the subscribed handler(s) called.
Its purpose is similar to Qt's signal and slot system, you can think of Event name as the signal and the subscribed handler as the slot.
Each Event has a name and a set of handlers. Handlers can be free functions, class member functions or even functors. Whenever an Event is fired all of its handlers are invoked. You are most likely looking for a way to react to mouse clicks or other events fired internally by CEGUI.
The handlers have to have a very specific signature. They have to return bool and they have to take const EventArgs&. If this is not met you will encounter build errors!
Instead of throwing an exception when firing an event that does not actually exist in the set, we now do nothing (if the Event does not exist, then it has no handlers subscribed, and therefore doing nothing is the correct course action).
|
inlineprotected |
void CEGUI::EventSet::addEvent | ( | const String & | name | ) |
void CEGUI::EventSet::addEvent | ( | Event & | event | ) |
Adds the given Event object to the EventSet. Ownership of the object passes to EventSet and it will be deleted when it is removed from the EventSet - whether explicitly via removeEvent or when the EventSet is destroyed.
AlreadyExistsException | Thrown if the EventSet already contains an Event with the same name as event. Note that event will be destroyed under this scenario. |
|
virtual |
Fires the named event passing the given EventArgs object.
name | String object holding the name of the Event that is to be fired (triggered) |
args | The EventArgs (or derived) object that is to be bassed to each subscriber of the Event. Once all subscribers have been called the 'handled' field of the event is updated appropriately. |
eventNamespace | String object describing the global event namespace prefix for this event. |
Reimplemented in CEGUI::GlobalEventSet.
bool CEGUI::EventSet::isEventPresent | ( | const String & | name | ) |
bool CEGUI::EventSet::isMuted | ( | void | ) | const |
void CEGUI::EventSet::removeEvent | ( | const String & | name | ) |
void CEGUI::EventSet::removeEvent | ( | Event & | event | ) |
void CEGUI::EventSet::setMutedState | ( | bool | setting | ) |
|
virtual |
|
virtual |
Subscribes a handler to the specified group of the named Event. If the named Event is not yet present in the EventSet, it is created and added.
|
inline |
|
inline |
|
virtual |
|
virtual |
Subscribes the specified group of the named Event to a scripted funtion.