Event backend porting
[quassel.git] / src / common / event.h
index ed82f7e..82cd1ac 100644 (file)
 #ifndef EVENT_H
 #define EVENT_H
 
-#include <QStringList>
+#include <QDebug>
+
+#include "eventmanager.h"
 
 class Event {
 
 public:
-  Event();
-  virtual ~Event();
+  explicit Event(EventManager::EventType type = EventManager::Invalid);
+  virtual ~Event() {};
+
+  inline EventManager::EventType type() const { return _type; }
+
+  inline void setFlag(EventManager::EventFlag flag) { _flags |= flag; }
+  inline void setFlags(EventManager::EventFlags flags) { _flags = flags; }
+
+  inline EventManager::EventFlags flags() const { return _flags; }
+
+  inline void stop() { setFlag(EventManager::Stopped); }
+  inline bool isStopped() { return _flags.testFlag(EventManager::Stopped); }
 
-  virtual QStringList params() const;
+  //inline void setData(const QVariant &data) { _data = data; }
+  //inline QVariant data() const { return _data; }
 
+protected:
+  virtual inline QString className() const { return "Event"; }
+  virtual inline void debugInfo(QDebug &dbg) const { Q_UNUSED(dbg); }
+
+private:
+  EventManager::EventType _type;
+  EventManager::EventFlags _flags;
+  //QVariant _data;
+
+  friend QDebug operator<<(QDebug dbg, Event *e);
 };
 
+QDebug operator<<(QDebug dbg, Event *e);
+
+/*******/
+
 #endif