diff options
author | Tobias Markmann <tm@ayena.de> | 2015-09-03 16:01:14 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2015-09-03 16:20:31 (GMT) |
commit | be6aa6e81b44be67518731d67bb2b72268d351e8 (patch) | |
tree | eaa06c5bf303e627db91f869adba0611da393255 /SwifTools/Notifier/NotificationCenterNotifier.h | |
parent | b6ffd5a332b6b21fdba9937fa3a0274556a09cdf (diff) | |
download | swift-be6aa6e81b44be67518731d67bb2b72268d351e8.zip swift-be6aa6e81b44be67518731d67bb2b72268d351e8.tar.bz2 |
Initial support for OS X Notification Center
This implements basic support for OS X Notification Center
notifications with simple banner notifications showing type,
contact and message/presence information. A click on the
notification opens the chat view to the contact.
The Notification Center backend will be used on OS X if the Growl
notification backend is not used.
This code requires OS X version 10.8 or later.
Test-Information:
Tested presence and message notifications between multiple Swift
accounts and instances on OS X 10.9.5.
Change-Id: I7b9e2132cab25e086e0912191562cad8f4cbae38
Diffstat (limited to 'SwifTools/Notifier/NotificationCenterNotifier.h')
-rw-r--r-- | SwifTools/Notifier/NotificationCenterNotifier.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/SwifTools/Notifier/NotificationCenterNotifier.h b/SwifTools/Notifier/NotificationCenterNotifier.h new file mode 100644 index 0000000..0d43c5b --- /dev/null +++ b/SwifTools/Notifier/NotificationCenterNotifier.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2015 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + +#pragma once + +#include <string> + +#include <SwifTools/Notifier/Notifier.h> + +namespace Swift { + +/** + * @brief The NotificationCenterNotifier class implmenents the notification interface for the + * OS X Notification Center API. + */ +class NotificationCenterNotifier : public Notifier { +public: + NotificationCenterNotifier(); + virtual ~NotificationCenterNotifier(); + + virtual void showMessage(Type type, const std::string& subject, const std::string& description, const boost::filesystem::path& picture, boost::function<void ()> callback); + virtual void purgeCallbacks(); + + /** + * @brief The handleUserNotificationActivated is called by the delegate, when a user activates/clicks on a notification. + * @param identifier The std::string UUID identifiying the notification. + */ + void handleUserNotificationActivated(const std::string& identifier); + +private: + class Private; + boost::shared_ptr<Private> p; +}; + +} |