summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'SwifTools/Notifier/GrowlNotifier.h')
-rw-r--r--SwifTools/Notifier/GrowlNotifier.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/SwifTools/Notifier/GrowlNotifier.h b/SwifTools/Notifier/GrowlNotifier.h
new file mode 100644
index 0000000..fab3b5e
--- /dev/null
+++ b/SwifTools/Notifier/GrowlNotifier.h
@@ -0,0 +1,34 @@
+/*
+ * 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 <CoreFoundation/CoreFoundation.h>
+#include <Growl/Growl.h>
+
+#include "SwifTools/Notifier/Notifier.h"
+
+namespace Swift {
+ /**
+ * Preconditions for using growlnotifier:
+ * - Must be part a bundle.
+ * - The Carbon/Cocoa application loop must be running (e.g. through QApplication)
+ * such that notifications are coming through.
+ * TODO: Find out what the easiest way is to do this without a QApplication.
+ */
+ class GrowlNotifier : public Notifier {
+ public:
+ GrowlNotifier(const String& name);
+
+ virtual void showMessage(Type type, const String& subject, const String& description, const ByteArray& picture, boost::function<void()> callback);
+
+ private:
+ String typeToString(Type type);
+
+ private:
+ Growl_Delegate delegate_;
+ };
+}