Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7868 in orxonox.OLD for trunk/src/lib/event/event_handler.cc


Ignore:
Timestamp:
May 26, 2006, 1:21:32 PM (18 years ago)
Author:
bensch
Message:

trunk: merge Check in the Event-changes:
r7867 | bensch | 2006-05-26 13:19:46 +0200 (Fri, 26 May 2006) | 1 line

Events better subscribed


r7866 | bensch | 2006-05-26 13:11:10 +0200 (Fri, 26 May 2006) | 1 line

Events are subscribed at the EventListener, and not the EventHandler

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/event/event_handler.cc

    r7756 r7868  
    171171   unsubscribe(EventListener* el, elState state) function
    172172*/
    173 void EventHandler::unsubscribe(elState state, int eventType)
     173void EventHandler::unsubscribe(EventListener* el, elState state, int eventType)
    174174{
    175175  PRINTF(4)("Unsubscribing event type nr: %i\n", eventType);
    176176  if (state == ES_ALL)
    177177    for (unsigned int i = 0; i < ES_NUMBER; i++)
    178       this->listeners[i][eventType].clear();
    179   else
    180     this->listeners[state][eventType].clear();
    181 }
    182 
    183 
    184 /**
    185  * unsubscribe all events from a specific listener
     178    {
     179      std::vector<EventListener*>::iterator listener =
     180         std::find(this->listeners[i][eventType].begin(),
     181                   this->listeners[i][eventType].end(),
     182                   el);
     183      if (listener != this->listeners[i][eventType].end())
     184        this->listeners[i][eventType].erase(listener);
     185    }
     186  else
     187  {
     188    std::vector<EventListener*>::iterator listener =
     189        std::find(this->listeners[state][eventType].begin(),
     190                  this->listeners[state][eventType].end(),
     191                  el);
     192    if (listener != this->listeners[state][eventType].end())
     193      this->listeners[state][eventType].erase(listener);
     194  }
     195}
     196
     197
     198/**
     199 * @brief unsubscribe all events from a specific listener
    186200 * @param el: the listener that wants to unsubscribe itself
    187201 * @param state: the state in which the events shall be unsubscribed
    188 
    189 */
     202 */
    190203void EventHandler::unsubscribe(EventListener* el, elState state)
    191204{
Note: See TracChangeset for help on using the changeset viewer.