Crazy Eddie's GUI System  0.8.7
EventSet.h
1 /***********************************************************************
2  created: 21/2/2004
3  author: Paul D Turner
4 
5  purpose: Defines class for a named collection of Event objects
6 *************************************************************************/
7 /***************************************************************************
8  * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
9  *
10  * Permission is hereby granted, free of charge, to any person obtaining
11  * a copy of this software and associated documentation files (the
12  * "Software"), to deal in the Software without restriction, including
13  * without limitation the rights to use, copy, modify, merge, publish,
14  * distribute, sublicense, and/or sell copies of the Software, and to
15  * permit persons to whom the Software is furnished to do so, subject to
16  * the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be
19  * included in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24  * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
25  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
26  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27  * OTHER DEALINGS IN THE SOFTWARE.
28  ***************************************************************************/
29 #ifndef _CEGUIEventSet_h_
30 #define _CEGUIEventSet_h_
31 
32 #include "CEGUI/Base.h"
33 #include "CEGUI/String.h"
34 #include "CEGUI/Event.h"
35 #include "CEGUI/IteratorBase.h"
36 #include <map>
37 
38 #if defined (_MSC_VER)
39 # pragma warning(push)
40 # pragma warning(disable : 4251 4521 4522)
41 #endif
42 
43 // Start of CEGUI namespace section
44 namespace CEGUI
45 {
166 class CEGUIEXPORT EventSet
167 {
168 public:
174 
179  virtual ~EventSet(void);
180 
193  void addEvent(const String& name);
194 
210  void addEvent(Event& event);
211 
221  void removeEvent(const String& name);
222 
232  void removeEvent(Event& event);
233 
239  void removeAllEvents(void);
240 
250  bool isEventPresent(const String& name);
251 
268  Event::Subscriber subscriber);
269 
290  Event::Group group,
291  Event::Subscriber subscriber);
292 
298  template<typename Arg1, typename Arg2>
299  inline Event::Connection subscribeEvent(const String& name, Arg1 arg1, Arg2 arg2)
300  {
301  return subscribeEvent(name, Event::Subscriber(arg1, arg2));
302  }
303 
309  template<typename Arg1, typename Arg2>
310  inline Event::Connection subscribeEvent(const String& name, Event::Group group, Arg1 arg1, Arg2 arg2)
311  {
312  return subscribeEvent(name, group, Event::Subscriber(arg1, arg2));
313  }
314 
331  const String& subscriber_name);
332 
353  Event::Group group,
354  const String& subscriber_name);
355 
374  virtual void fireEvent(const String& name, EventArgs& args,
375  const String& eventNamespace = "");
376 
377 
388  bool isMuted(void) const;
389 
400  void setMutedState(bool setting);
401 
421  Event* getEventObject(const String& name, bool autoAdd = false);
422 
423 protected:
425  void fireEvent_impl(const String& name, EventArgs& args);
428 
429  // Do not allow copying, assignment, or any other usage than simple creation.
430  EventSet(EventSet&) {}
431  EventSet(const EventSet&) {}
432  EventSet& operator=(EventSet&) { return *this; }
433  EventSet& operator=(const EventSet&) { return *this; }
434 
435  typedef std::map<String, Event*, StringFastLessCompare
436  CEGUI_MAP_ALLOC(String, Event*)> EventMap;
437  EventMap d_events;
438 
439  bool d_muted;
440 
441 public:
442  /*************************************************************************
443  Iterator stuff
444  *************************************************************************/
446 
453 };
454 
455 } // End of CEGUI namespace section
456 
457 
458 #if defined(_MSC_VER)
459 # pragma warning(pop)
460 #endif
461 
462 #endif // end of guard _CEGUIEventSet_h_
CEGUI::EventSet::subscribeEvent
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,...
Definition: EventSet.h:299
CEGUI::SubscriberSlot
SubscriberSlot class which is used when subscribing to events.
Definition: SubscriberSlot.h:53
CEGUI::EventSet::EventSet
EventSet(const EventSet &)
Definition: EventSet.h:431
CEGUI::EventSet::subscribeEvent
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,...
CEGUI::EventSet::removeEvent
void removeEvent(Event &event)
Removes the given event from the EventSet. All connections to the event are disconnected,...
CEGUI::StringFastLessCompare
Functor that can be used as comparator in a std::map with String keys. It's faster than using the def...
Definition: String.h:5580
CEGUI::EventSet::getEventIterator
EventIterator getEventIterator(void) const
Return a EventSet::EventIterator object to iterate over the events currently added to the EventSet.
CEGUI::EventSet::isEventPresent
bool isEventPresent(const String &name)
Checks to see if an Event with the given name is present in this EventSet.
CEGUI::EventSet::addEvent
void addEvent(Event &event)
Adds the given Event object to the EventSet. Ownership of the object passes to EventSet and it will b...
CEGUI::EventSet::d_muted
bool d_muted
true if events for this EventSet have been muted.
Definition: EventSet.h:439
CEGUI::EventSet::subscribeScriptedEvent
virtual Event::Connection subscribeScriptedEvent(const String &name, const String &subscriber_name)
Subscribes the named Event to a scripted funtion.
CEGUI
Main namespace for Crazy Eddie's GUI Library.
Definition: arch_overview.dox:1
CEGUI::EventSet
Interface providing event signaling and handling.
Definition: EventSet.h:167
CEGUI::RefCounted< BoundSlot >
CEGUI::EventSet::getScriptModule
ScriptModule * getScriptModule() const
Helper to return the script module pointer or throw.
CEGUI::EventSet::subscribeEvent
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...
CEGUI::EventSet::~EventSet
virtual ~EventSet(void)
Destructor for EventSet objects.
CEGUI::EventSet::getEventObject
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 t...
CEGUI::Event::Group
unsigned int Group
Type for a subscriber group. You can use the subscriber group to order calls to multiple subscribers....
Definition: Event.h:84
CEGUI::EventSet::subscribeScriptedEvent
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.
CEGUI::EventSet::operator=
EventSet & operator=(const EventSet &)
Definition: EventSet.h:433
CEGUI::EventSet::removeAllEvents
void removeAllEvents(void)
Remove all Event objects from the EventSet. Add connections will be disconnected, and all Event objec...
CEGUI::EventSet::fireEvent_impl
void fireEvent_impl(const String &name, EventArgs &args)
Implementation event firing member.
CEGUI::EventSet::setMutedState
void setMutedState(bool setting)
Set the mute state for this EventSet.
CEGUI::EventSet::subscribeEvent
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,...
Definition: EventSet.h:310
CEGUI::EventSet::removeEvent
void removeEvent(const String &name)
Removes the Event with the given name. All connections to the event are disconnected,...
CEGUI::EventSet::fireEvent
virtual void fireEvent(const String &name, EventArgs &args, const String &eventNamespace="")
Fires the named event passing the given EventArgs object.
CEGUI::ConstMapIterator
iterator class for maps
Definition: IteratorBase.h:197
CEGUI::EventSet::addEvent
void addEvent(const String &name)
Creates a new Event object with the given name and adds it to the EventSet.
CEGUI::Event
Defines an 'event' which can be subscribed to by interested parties.
Definition: Event.h:59
CEGUI::String
String class used within the GUI system.
Definition: String.h:64
CEGUI::EventSet::EventSet
EventSet()
Constructor for EventSet objects.
CEGUI::EventSet::isMuted
bool isMuted(void) const
Return whether the EventSet is muted or not.
CEGUI::EventArgs
Base class used as the argument to all subscribers Event object.
Definition: EventArgs.h:51
CEGUI::ScriptModule
Abstract interface required for all scripting support modules to be used with the CEGUI system.
Definition: ScriptModule.h:47