Add SystrayNotificationBackend (untested yet and still somewhat rudimentary), evolve...
[quassel.git] / src / qtui / qtui.h
index 33eb1b8..d170ae3 100644 (file)
@@ -23,7 +23,8 @@
 
 #include "quasselui.h"
 
-class AbstractNotificationBackend;
+#include "abstractnotificationbackend.h"
+
 class ActionCollection;
 class MainWin;
 class MessageModel;
@@ -45,6 +46,7 @@ public:
   AbstractMessageProcessor *createMessageProcessor(QObject *parent);
 
   inline static QtUiStyle *style();
+  inline static MainWin *mainWindow();
 
   //! Access the global ActionCollection.
   /** This ActionCollection is associated with the main window, i.e. it contains global
@@ -53,10 +55,16 @@ public:
    */
   inline static ActionCollection *actionCollection();
 
+  /* Notifications */
+
   static void registerNotificationBackend(AbstractNotificationBackend *);
   static void unregisterNotificationBackend(AbstractNotificationBackend *);
   static void unregisterAllNotificationBackends();
-  static void notify(BufferId bufId, const QString &sender, const QString &text);
+  static const QSet<AbstractNotificationBackend *> &notificationBackends();
+  static uint invokeNotification(BufferId bufId, const QString &sender, const QString &text);
+  static void closeNotification(uint notificationId);
+  static void closeNotifications(BufferId bufferId);
+  static const QList<AbstractNotificationBackend::Notification> &activeNotifications();
 
 public slots:
   void init();
@@ -66,13 +74,15 @@ protected slots:
   void disconnectedFromCore();
 
 private:
-  MainWin *mainWin;
+  static MainWin *_mainWin;
   static ActionCollection *_actionCollection;
   static QtUiStyle *_style;
   static QSet<AbstractNotificationBackend *> _notificationBackends;
+  static QList<AbstractNotificationBackend::Notification> _notifications;
 };
 
 ActionCollection *QtUi::actionCollection() { return _actionCollection; }
 QtUiStyle *QtUi::style() { return _style; }
+MainWin *QtUi::mainWindow() { return _mainWin; }
 
 #endif