Update CMakeLists.txt - play with openssl
[novacoin.git] / src / qt / notificator.h
index ed69ae5..61c27e7 100644 (file)
@@ -1,43 +1,53 @@
-#ifndef NOTIFICATOR_H
-#define NOTIFICATOR_H
+// Copyright (c) 2011-2013 The Bitcoin developers
+// Distributed under the MIT/X11 software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_QT_NOTIFICATOR_H
+#define BITCOIN_QT_NOTIFICATOR_H
+
+#if defined(HAVE_CONFIG_H)
+#include "config/bitcoin-config.h"
+#endif
 
-#include <QObject>
 #include <QIcon>
+#include <QObject>
 
 QT_BEGIN_NAMESPACE
 class QSystemTrayIcon;
+
 #ifdef USE_DBUS
 class QDBusInterface;
 #endif
 QT_END_NAMESPACE
 
-// Cross-platform desktop notification client
+/** Cross-platform desktop notification client. */
 class Notificator: public QObject
 {
     Q_OBJECT
+
 public:
-    // Create a new notificator
-    // Ownership of trayIcon is not transferred to this object
-    Notificator(const QString &programName=QString(), QSystemTrayIcon *trayIcon=0, QWidget *parent=0);
+    /** Create a new notificator.
+       @note Ownership of trayIcon is not transferred to this object.
+    */
+    Notificator(const QString &programName, QSystemTrayIcon *trayIcon, QWidget *parent);
     ~Notificator();
 
     // Message class
     enum Class
     {
-        Information,
-        Warning,
-        Critical,
+        Information,    /**< Informational message */
+        Warning,        /**< Notify user of potential problem */
+        Critical        /**< An error occurred */
     };
 
 public slots:
-
-    /* Show notification message.
-     *
-     *  cls: general message class
-     *  title: title shown with message
-     *  text: message content
-     *  icon: optional icon to show with message
-     *  millisTimeout: notification timeout in milliseconds (default 10 seconds)
+    /** Show notification message.
+       @param[in] cls    general message class
+       @param[in] title  title shown with message
+       @param[in] text   message content
+       @param[in] icon   optional icon to show with message
+       @param[in] millisTimeout notification timeout in milliseconds (defaults to 10 seconds)
+       @note Platform implementations are free to ignore any of the provided fields except for \a text.
      */
     void notify(Class cls, const QString &title, const QString &text,
                 const QIcon &icon = QIcon(), int millisTimeout = 10000);
@@ -45,10 +55,12 @@ public slots:
 private:
     QWidget *parent;
     enum Mode {
-        None,
-        Freedesktop, // Use DBus org.freedesktop.Notifications
-        QSystemTray, // Use QSystemTray::showMessage
-        Growl // Use the Growl notification system (Mac only)
+        None,                       /**< Ignore informational notifications, and show a modal pop-up dialog for Critical notifications. */
+        Freedesktop,                /**< Use DBus org.freedesktop.Notifications */
+        QSystemTray,                /**< Use QSystemTray::showMessage */
+        Growl12,                    /**< Use the Growl 1.2 notification system (Mac only) */
+        Growl13,                    /**< Use the Growl 1.3 notification system (Mac only) */
+        UserNotificationCenter      /**< Use the 10.8+ User Notification Center (Mac only) */
     };
     QString programName;
     Mode mode;
@@ -59,9 +71,10 @@ private:
     void notifyDBus(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout);
 #endif
     void notifySystray(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout);
-#ifdef Q_WS_MAC
+#ifdef Q_OS_MAC
     void notifyGrowl(Class cls, const QString &title, const QString &text, const QIcon &icon);
+    void notifyMacUserNotificationCenter(Class cls, const QString &title, const QString &text, const QIcon &icon);
 #endif
 };
 
-#endif // NOTIFICATOR_H
+#endif // BITCOIN_QT_NOTIFICATOR_H