23541b5b2a
* feat(macOS): implement NotificationDismissed() for Cocoa * feat(macOS): emit NotificationDismissed() when closing "Alert" notifications * feat(macOS): emit NotificationDismissed() when closing "Banner" notifications * fix(macos): Remove calls to private APIs from MAS builds (github.com/electron/electron/pull/13306)
50 lines
1.4 KiB
Objective-C
50 lines
1.4 KiB
Objective-C
// 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 BRIGHTRAY_BROWSER_MAC_COCOA_NOTIFICATION_H_
|
|
#define BRIGHTRAY_BROWSER_MAC_COCOA_NOTIFICATION_H_
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#include <map>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "base/mac/scoped_nsobject.h"
|
|
#include "brightray/browser/notification.h"
|
|
|
|
namespace brightray {
|
|
|
|
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)
|
|
API_AVAILABLE(macosx(10.10));
|
|
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 brightray
|
|
|
|
#endif // BRIGHTRAY_BROWSER_MAC_COCOA_NOTIFICATION_H_
|