00001 00002 #include "Core/precomp.h" 00003 #include "event_listener_generic.h" 00004 #include "event_trigger_generic.h" 00005 00007 // CL_EventListener_Generic construction: 00008 00009 CL_EventListener_Generic::CL_EventListener_Generic(CL_EventListener *owner) 00010 : owner(owner) 00011 { 00012 } 00013 00014 CL_EventListener_Generic::~CL_EventListener_Generic() 00015 { 00016 clear(); 00017 } 00018 00020 // CL_EventListener_Generic attributes: 00021 00023 // CL_EventListener_Generic operations: 00024 00025 void CL_EventListener_Generic::add_trigger(const CL_EventTrigger *trigger) 00026 { 00027 CL_EventTrigger_Generic *trigger_impl = trigger->impl; 00028 triggers.push_back(trigger_impl); 00029 trigger_impl->add_ref(); 00030 } 00031 00032 void CL_EventListener_Generic::remove_trigger(const CL_EventTrigger *trigger) 00033 { 00034 CL_EventTrigger_Generic *trigger_impl = trigger->impl; 00035 triggers.remove(trigger_impl); 00036 trigger_impl->release_ref(); 00037 } 00038 00039 void CL_EventListener_Generic::clear() 00040 { 00041 std::list<CL_EventTrigger_Generic *>::iterator it; 00042 for (it = triggers.begin(); it != triggers.end(); it++) (*it)->release_ref(); 00043 00044 triggers = std::list<CL_EventTrigger_Generic *>(); 00045 } 00046 00047 void CL_EventListener_Generic::reset_all() 00048 { 00049 std::list<CL_EventTrigger_Generic *>::iterator it; 00050 for (it = triggers.begin(); it != triggers.end(); it++) (*it)->reset(); 00051 } 00052 00054 // CL_EventListener_Generic implementation:
1.2.6 written by Dimitri van Heesch,
© 1997-2001