// Copyright (c) 2015 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #ifndef BROWSER_MAC_COCOA_NOTIFICATION_H_ #define BROWSER_MAC_COCOA_NOTIFICATION_H_ #include #import #include "base/mac/scoped_nsobject.h" #include "base/memory/weak_ptr.h" #include "base/strings/string16.h" #include "content/public/browser/desktop_notification_delegate.h" @class NotificationDelegate; class SkBitmap; namespace brightray { class CocoaNotification { public: static CocoaNotification* FromNSNotification( NSUserNotification* notification); CocoaNotification( scoped_ptr delegate); ~CocoaNotification(); void ShowNotification(const base::string16& title, const base::string16& msg, const SkBitmap& icon); void DismissNotification(); void NotifyDisplayed(); void NotifyClick(); base::WeakPtr GetWeakPtr() { return weak_factory_.GetWeakPtr(); } private: static void Cleanup(); scoped_ptr delegate_; base::scoped_nsobject notification_; base::WeakPtrFactory weak_factory_; static base::scoped_nsobject notification_delegate_; static std::set notifications_; DISALLOW_COPY_AND_ASSIGN(CocoaNotification); }; } // namespace brightray #endif // BROWSER_MAC_COCOA_NOTIFICATION_H_