Index: chrome/browser/notifications/notification_builder_mac.h |
diff --git a/chrome/browser/notifications/notification_builder_mac.h b/chrome/browser/notifications/notification_builder_mac.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..692e02128691c8cfa889c8bb8db8e1777e570c94 |
--- /dev/null |
+++ b/chrome/browser/notifications/notification_builder_mac.h |
@@ -0,0 +1,73 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_BUILDER_MAC_H_ |
+#define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_BUILDER_MAC_H_ |
+ |
+#import <Foundation/Foundation.h> |
+ |
+#include "base/mac/scoped_nsobject.h" |
+ |
+@class NSUserNotification; |
+ |
+namespace notification_builder { |
+extern NSString* const kNotificationOrigin; |
+extern NSString* const kNotificationId; |
+extern NSString* const kNotificationProfileId; |
+extern NSString* const kNotificationIncognito; |
+} // notification_builder |
+ |
+// Provides a marshallable way for storing the information required to construct |
+// a NSUSerNotification that is to be displayed on the system. |
+// |
+// A quick example: |
+// base::scoped_nsobject<NotificationBuilder> builder( |
+// [[NotificationBuilder alloc] init]); |
+// [builder setTitle:@"Hello"]; |
+// |
+// // Build a notification out of the data. |
+// NSUserNotification* notification = |
+// [builder buildUserNotification]; |
+// |
+// // Serialize a notification out of the data. |
+// NSDictionary* notificationData = [builder buildDictionary]; |
+// |
+// // Deserialize the |notificationData| in to a new builder. |
+// base::scoped_nsobject<NotificationBuilder> finalBuilder( |
+// [[NotificationBuilder alloc] initWithData:notificationData]); |
+@interface NotificationBuilder : NSObject |
+ |
+// Initializes an empty builder. |
+- (instancetype)init; |
+ |
+// Initializes a builder by deserializing |data|. The |data| must have been |
+// generated by calling the buildDictionary function on another builder |
+// instance. |
+- (instancetype)initWithDictionary:(NSDictionary*)data; |
+ |
+// Setters |
+- (void)setTitle:(NSString*)title; |
+- (void)setSubTitle:(NSString*)subTitle; |
+- (void)setContextMessage:(NSString*)contextMessage; |
+- (void)setIcon:(NSImage*)icon; |
+- (void)setButtons:(NSString*)primaryButton |
+ secondaryButton:(NSString*)secondaryButton; |
+- (void)setTag:(NSString*)tag; |
+- (void)setOrigin:(NSString*)origin; |
+- (void)setNotificationId:(NSString*)notificationId; |
+- (void)setProfileId:(NSString*)profileId; |
+- (void)setIncognito:(BOOL)incognito; |
+ |
+// Returns a notification ready to be displayed out of the provided |
+// |notificationData|. |
+- (NSUserNotification*)buildUserNotification; |
+ |
+// Returns a representation of a notification that can be serialized. |
+// Another instance of NotificationBuilder can read this directly and generate |
+// a notification out of it via the |buildbuildUserNotification| method. |
+- (NSDictionary*)buildDictionary; |
+ |
+@end |
+ |
+#endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_BUILDER_MAC_H_ |