1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // 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 SHELL_BROWSER_NOTIFICATIONS_MAC_COCOA_NOTIFICATION_H_
- #define SHELL_BROWSER_NOTIFICATIONS_MAC_COCOA_NOTIFICATION_H_
- #import <Foundation/Foundation.h>
- #include <map>
- #include <string>
- #include <vector>
- #include "base/logging.h"
- #include "base/mac/scoped_nsobject.h"
- #include "shell/browser/notifications/notification.h"
- namespace electron {
- class CocoaNotification : public Notification {
- public:
- CocoaNotification(NotificationDelegate* delegate,
- NotificationPresenter* presenter);
- ~CocoaNotification() override;
- // Notification:
- void Show(const NotificationOptions& options) override;
- void Dismiss() override;
- void NotificationDisplayed();
- void NotificationReplied(const std::string& reply);
- void NotificationActivated();
- void NotificationActivated(NSUserNotificationAction* action);
- void NotificationDismissed();
- NSUserNotification* notification() const { return notification_; }
- private:
- void LogAction(const char* action);
- base::scoped_nsobject<NSUserNotification> notification_;
- std::map<std::string, unsigned> additional_action_indices_;
- unsigned action_index_;
- DISALLOW_COPY_AND_ASSIGN(CocoaNotification);
- };
- } // namespace electron
- #endif // SHELL_BROWSER_NOTIFICATIONS_MAC_COCOA_NOTIFICATION_H_
|