File: eventHandler.hxx - Tab length: 1 2 4 8 - Lines: on off - No wrap: on off


namespace Pane
{
 /*
 ** Destroy event handler and all attached events (4 parameters)
 */

 template<typename Return, typename Param1, typename Param2, typename Param3, typename Param4>
 /**/       EventHandler<Return, Param1, Param2, Param3, Param4>::~EventHandler ()
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   delete (*i);
 }

 /*
 ** Destroy event handler and all attached events (3 parameters)
 */

 template<typename Return, typename Param1, typename Param2, typename Param3>
 /**/       EventHandler<Return, Param1, Param2, Param3>::~EventHandler ()
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   delete (*i);
 }

 /*
 ** Destroy event handler and all attached events (4 parameters)
 */

 template<typename Return, typename Param1, typename Param2>
 /**/       EventHandler<Return, Param1, Param2>::~EventHandler ()
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   delete (*i);
 }

 /*
 ** Destroy event handler and all attached events (4 parameters)
 */

 template<typename Return, typename Param1>
 /**/       EventHandler<Return, Param1>::~EventHandler ()
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   delete (*i);
 }

 /*
 ** Destroy event handler and all attached events (0 parameter)
 */

 template<typename Return>
 /**/       EventHandler<Return>::~EventHandler ()
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   delete (*i);
 }

 /*
 ** Attach new event to handler (4 parameters)
 ** event: event to attach
 */

 template<typename Return, typename Param1, typename Param2, typename Param3, typename Param4>
 void EventHandler<Return, Param1, Param2, Param3, Param4>::operator += (EventClass* event)
 {
  this->events.push_back (event);
 }

 /*
 ** Attach new event to handler (4 parameters)
 ** event: event to attach
 */

 template<typename Return, typename Param1, typename Param2, typename Param3>
 void EventHandler<Return, Param1, Param2, Param3>::operator += (EventClass* event)
 {
  this->events.push_back (event);
 }

 /*
 ** Attach new event to handler (4 parameters)
 ** event: event to attach
 */

 template<typename Return, typename Param1, typename Param2>
 void EventHandler<Return, Param1, Param2>::operator += (EventClass* event)
 {
  this->events.push_back (event);
 }

 /*
 ** Attach new event to handler (1 parameter)
 ** event: event to attach
 */

 template<typename Return, typename Param1>
 void EventHandler<Return, Param1>::operator += (EventClass* event)
 {
  this->events.push_back (event);
 }

 /*
 ** Attach new event to handler (0 parameter)
 ** event: event to attach
 */

 template<typename Return>
 void EventHandler<Return>::operator += (EventClass* event)
 {
  this->events.push_back (event);
 }

 /*
 ** Call attached events (4 parameters)
 ** param1: parameter #1
 ** param2: parameter #2
 ** param3: parameter #3
 ** param4: parameter #4
 ** return: true if at least one event was attached, false else
 */

 template<typename Return, typename Param1, typename Param2, typename Param3, typename Param4>
 bool       EventHandler<Return, Param1, Param2, Param3, Param4>::operator () (Param1 param1, Param2 param2, Param3 param3, Param4 param4)
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   (**i) (param1, param2, param3, param4);

  return this->events.size () > 0;
 }

 /*
 ** Call attached events (3 parameters)
 ** param1: parameter #1
 ** param2: parameter #2
 ** param3: parameter #3
 ** return: true if at least one event was attached, false else
 */

 template<typename Return, typename Param1, typename Param2, typename Param3>
 bool       EventHandler<Return, Param1, Param2, Param3>::operator () (Param1 param1, Param2 param2, Param3 param3)
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   (**i) (param1, param2, param3);

  return this->events.size () > 0;
 }

 /*
 ** Call attached events (2 parameters)
 ** param1: parameter #1
 ** param2: parameter #2
 ** return: true if at least one event was attached, false else
 */

 template<typename Return, typename Param1, typename Param2>
 bool       EventHandler<Return, Param1, Param2>::operator () (Param1 param1, Param2 param2)
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   (**i) (param1, param2);

  return this->events.size () > 0;
 }

 /*
 ** Call attached events (1 parameter)
 ** param1: parameter #1
 ** return: true if at least one event was attached, false else
 */

 template<typename Return, typename Param1>
 bool       EventHandler<Return, Param1>::operator () (Param1 param1)
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   (**i) (param1);

  return this->events.size () > 0;
 }

 /*
 ** Call attached events (0 parameter)
 ** return: true if at least one event was attached, false else
 */

 template<typename Return>
 bool       EventHandler<Return>::operator () ()
 {
  typename Events::iterator i;

  for (= this->events.begin (); i != this->events.end (); ++i)
   (**i) ();

  return this->events.size () > 0;
 }
}