/* orxonox - the future of 3D-vertical-scrollers Copyright (C) 2004 orx This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ### File Specific: main-programmer: Patrick Boenzli co-programmer: ... */ #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_EVENT #include "event_listener.h" #include "event_handler.h" ObjectListDefinition(EventListener); /** * @brief standard constructor */ EventListener::EventListener () { this->registerObject(this, EventListener::_objectList); } /** * @brief standard deconstructor * * Unsubscribes all Subscribed Events, of this EventListener. */ EventListener::~EventListener () { /* unsubscribes itself from the event listener */ EventHandler::getInstance()->unsubscribe(this, ES_ALL); } bool EventListener::isEventSubscribed(elState state, int eventType) const { return EventHandler::getInstance()->isSubscribed(state, eventType); } /** * @brief Subscribes an Events to this EventListener. * @param state the state to subscribe to. * @param eventType the Type of Event to subscribe. */ void EventListener::subscribeEvent(elState state, int eventType) { EventHandler::getInstance()->subscribe(this, state, eventType); } /** * @brief Unubscribes an Event from this EventListener. * @param state the state to unsubscribe from. * @param eventType the Type of Event to unsubscribe. */ void EventListener::unsubscribeEvent(elState state, int eventType) { EventHandler::getInstance()->unsubscribe(this, state, eventType); } void EventListener::unsubscribeEvents(elState state) { EventHandler::getInstance()->unsubscribe(this, state); }