summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-12-21 20:19:13 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-12-21 20:19:13 (GMT)
commitc868a4d587ea8ebbdbe5ef4ccc525af9811acbf9 (patch)
tree092ddb7e0f5dc34fddac5d83a41d727608afb796 /SwifTools/Dock/WindowsDock.h
parenteb0caf8201ed2b5507401a7127624b64ca2f51fc (diff)
downloadswift-c868a4d587ea8ebbdbe5ef4ccc525af9811acbf9.zip
swift-c868a4d587ea8ebbdbe5ef4ccc525af9811acbf9.tar.bz2
Revert to SnarlNotifier on Windows.
Use balloons as a fallback.
Diffstat (limited to 'SwifTools/Dock/WindowsDock.h')
-rw-r--r--SwifTools/Dock/WindowsDock.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/SwifTools/Dock/WindowsDock.h b/SwifTools/Dock/WindowsDock.h
new file mode 100644
index 0000000..dc298da
--- /dev/null
+++ b/SwifTools/Dock/WindowsDock.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include <QSystemTrayIcon>
+#include <boost/lexical_cast.hpp>
+
+#include "SwifTools/Dock/Dock.h"
+#include "SwifTools/Notifier/Notifier.h"
+
+namespace Swift {
+ class WindowsDock : public Dock {
+ public:
+ WindowsDock(QSystemTrayIcon* tray, Notifier* notifier) : tray(tray), notifier(notifier) {}
+
+ virtual void setNumberOfPendingMessages(int i) {
+ if (notifier->isAvailable()) {
+ return;
+ }
+
+ if (i > 0) {
+ std::string message = boost::lexical_cast<std::string>(i) + " new message";
+ if (i > 1) {
+ message += "s";
+ }
+ message += " received.";
+ tray->showMessage("New messages", message.c_str(), QSystemTrayIcon::NoIcon);
+ }
+ else {
+ tray->showMessage("", "", QSystemTrayIcon::NoIcon, 0);
+ }
+ }
+
+ private:
+ QSystemTrayIcon* tray;
+ Notifier* notifier;
+ };
+}