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 (i = 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 (i = 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 (i = 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 (i = 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 (i = 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 (i = 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 (i = 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 (i = 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 (i = 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 (i = this->events.begin (); i != this->events.end (); ++i)
      (**i) ();

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