Crazy Eddie's GUI System  0.8.4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
CEGUI::EventSet Class Reference

Class that collects together a set of Event objects. 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...
 
EventgetEventObject (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.
 
ScriptModulegetScriptModule () const
 Helper to return the script module pointer or throw.
 
 EventSet (EventSet &)
 
EventSetoperator= (EventSet &)
 

Protected Attributes

EventMap d_events
 
bool d_muted
 true if events for this EventSet have been muted.
 

Detailed Description

Class that collects together a set of Event objects.

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.
As of 0.5, the EventSet no longer needs to be filled with available events. Events are now added to the set as they are first used; that is, the first time a handler is subscribed to an event for a given EventSet, an Event object is created and added to the EventSet.
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).

Member Function Documentation

void CEGUI::EventSet::addEvent ( const String name)

Creates a new Event object with the given name and adds it to the EventSet.

Parameters
nameString object containing the name to give the new Event. The name must be unique for the EventSet.
Exceptions
AlreadyExistsExceptionThrown if an Event already exists named 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.

Parameters
eventReference to an Event or Event based object that is to be added to the EventSaet
Exceptions
AlreadyExistsExceptionThrown if the EventSet already contains an Event with the same name as event. Note that event will be destroyed under this scenario.
virtual void CEGUI::EventSet::fireEvent ( const String name,
EventArgs args,
const String eventNamespace = "" 
)
virtual

Fires the named event passing the given EventArgs object.

Parameters
nameString object holding the name of the Event that is to be fired (triggered)
argsThe 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.
eventNamespaceString object describing the global event namespace prefix for this event.

Reimplemented in CEGUI::GlobalEventSet.

Event* CEGUI::EventSet::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.

Parameters
nameString object holding the name of the Event to return.
autoAdd
  • true if an Event object named name should be added to the set if such an Event does not currently exist.
  • false if no object should automatically be added to the set. In this case, if the Event does not already exist 0 will be returned.
Returns
Pointer to the Event object in this EventSet with the specifed name. Or 0 if such an Event does not exist and autoAdd was false.
bool CEGUI::EventSet::isEventPresent ( const String name)

Checks to see if an Event with the given name is present in this EventSet.

Returns
bool CEGUI::EventSet::isMuted ( void  ) const

Return whether the EventSet is muted or not.

Returns
  • true if the EventSet is muted. All requests to fire events will be ignored.
  • false if the EventSet is not muted. Requests to fire events are processed as normal.
void CEGUI::EventSet::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.

Parameters
nameString object containing the name of the Event to remove. If no such Event exists, nothing happens.
void CEGUI::EventSet::removeEvent ( Event event)

Removes the given event from the EventSet. All connections to the event are disconnected, and the event object is destroyed.

Parameters
eventReference to the Event or Event based object to be removed from the EventSet.
void CEGUI::EventSet::setMutedState ( bool  setting)

Set the mute state for this EventSet.

Parameters
setting
  • true if the EventSet is to be muted (no further event firing requests will be honoured until EventSet is unmuted).
  • false if the EventSet is not to be muted and all events should fired as requested.
virtual Event::Connection CEGUI::EventSet::subscribeEvent ( const String name,
Event::Subscriber  subscriber 
)
virtual

Subscribes a handler to the named Event. If the named Event is not yet present in the EventSet, it is created and added.

Parameters
nameString object containing the name of the Event to subscribe to.
subscriberFunction or object that is to be subscribed to the Event.
Returns
Connection object that can be used to check the status of the Event connection and to disconnect (unsubscribe) from the Event.
virtual Event::Connection CEGUI::EventSet::subscribeEvent ( const String name,
Event::Group  group,
Event::Subscriber  subscriber 
)
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.

Parameters
nameString object containing the name of the Event to subscribe to.
groupGroup which is to be subscribed to. Subscription groups are called in ascending order.
subscriberFunction or object that is to be subscribed to the Event.
Returns
Connection object that can be used to check the status of the Event connection and to disconnect (unsubscribe) from the Event.
template<typename Arg1 , typename Arg2 >
Event::Connection CEGUI::EventSet::subscribeEvent ( const String name,
Arg1  arg1,
Arg2  arg2 
)
inline

Subscribes a handler to the named Event. If the named Event is not yet present in the EventSet, it is created and added.

Parameters
nameString object containing the name of the Event to subscribe to.
subscriberFunction or object that is to be subscribed to the Event.
Returns
Connection object that can be used to check the status of the Event connection and to disconnect (unsubscribe) from the Event.
template<typename Arg1 , typename Arg2 >
Event::Connection CEGUI::EventSet::subscribeEvent ( const String name,
Event::Group  group,
Arg1  arg1,
Arg2  arg2 
)
inline

Subscribes a handler to the named Event. If the named Event is not yet present in the EventSet, it is created and added.

Parameters
nameString object containing the name of the Event to subscribe to.
subscriberFunction or object that is to be subscribed to the Event.
Returns
Connection object that can be used to check the status of the Event connection and to disconnect (unsubscribe) from the Event.
virtual Event::Connection CEGUI::EventSet::subscribeScriptedEvent ( const String name,
const String subscriber_name 
)
virtual

Subscribes the named Event to a scripted funtion.

Parameters
nameString object containing the name of the Event to subscribe to.
subscriber_nameString object containing the name of the script funtion that is to be subscribed to the Event.
Returns
Connection object that can be used to check the status of the Event connection and to disconnect (unsubscribe) from the Event.
virtual Event::Connection CEGUI::EventSet::subscribeScriptedEvent ( const String name,
Event::Group  group,
const String subscriber_name 
)
virtual

Subscribes the specified group of the named Event to a scripted funtion.

Parameters
nameString object containing the name of the Event to subscribe to.
groupGroup which is to be subscribed to. Subscription groups are called in ascending order.
subscriber_nameString object containing the name of the script funtion that is to be subscribed to the Event.
Returns
Connection object that can be used to check the status of the Event connection and to disconnect (unsubscribe) from the Event.