Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/event/event_handler.h @ 5562

Last change on this file since 5562 was 5388, checked in by bensch, 19 years ago

orxonox/trunk: implemented a t-Stack, for dynamic stacks, and integrated it into the Shell.

File size: 2.0 KB
RevLine 
[4780]1/*!
[5039]2 * @file event_handler.h
3 * Definition of the EventHandler
4 *
5 */
[4780]6
[4346]7#ifndef _EVENT_HANDLER_H
8#define _EVENT_HANDLER_H
[4329]9
10#include "base_object.h"
[4405]11#include "key_mapper.h"
[4352]12#include "event_def.h"
[4329]13
[4834]14// FORWARD DECLARATION
[4346]15class EventListener;
[5388]16template<class T> class tList;
17template<class T> class tStack;
[4866]18class IniParser;
[4329]19
[4346]20//! The one Event Handler from Orxonox
21class EventHandler : public BaseObject {
22
[4329]23 public:
[4746]24  virtual ~EventHandler();
[4836]25  /** @returns a Pointer to the only object of this Class */
[4746]26  inline static EventHandler* getInstance() { if (!singletonRef) singletonRef = new EventHandler();  return singletonRef; };
[4866]27  void init(IniParser* iniParser);
[4407]28
[5093]29  /** @param state: to which the event handler shall change */
30  inline void setState(elState state) { this->state = state; };
31  /** @returns the current state */
32  inline elState getState() const { return this->state; };
[4350]33
[5388]34  void pushState(elState state);
35  elState popState();
36
[4405]37  void subscribe(EventListener* el, elState state, int eventType);
[4419]38  void unsubscribe(elState state, int eventType);
[4420]39  void unsubscribe(EventListener* el, elState state = ES_ALL);
[4364]40  void flush(elState state);
[5309]41  /** @returns true, if the @param state has @param eventType subscribed?? */
42  inline bool isSubscribed(elState state, int eventType) { return(listeners[state][eventType] == NULL)?false:true; };
[4346]43
[4352]44  void process();
[4346]45
[5237]46  static int eventFilter(const SDL_Event *event);
[4872]47  void debug() const;
48
[4329]49 private:
[4746]50  EventHandler();
[4352]51
[4780]52
[4368]53 private:
[5210]54  static EventHandler*       singletonRef;                    //!< the singleton reference
[4780]55
[5388]56  EventListener*             listeners[ES_NUMBER][EV_NUMBER]; //!< a list of registered listeners.
57  elState                    state;                           //!< the state of the event handlder.
58  tStack<short>*             stateStack;                      //!< a stack for the States we are in.
59  KeyMapper*                 keyMapper;                       //!< reference to the key mapper.
60
[4329]61};
62
[5237]63
[4346]64#endif /* _EVENT_HANDLER_H */
Note: See TracBrowser for help on using the repository browser.