Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Side by Side Diff: ui/message_center/notification.h

Issue 15582004: Move NotificationDelegate into message_center. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Win browsertests. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_MESSAGE_CENTER_NOTIFICATION_H_ 5 #ifndef UI_MESSAGE_CENTER_NOTIFICATION_H_
6 #define UI_MESSAGE_CENTER_NOTIFICATION_H_ 6 #define UI_MESSAGE_CENTER_NOTIFICATION_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/string16.h" 11 #include "base/string16.h"
12 #include "base/time.h" 12 #include "base/time.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "ui/gfx/image/image.h" 14 #include "ui/gfx/image/image.h"
15 #include "ui/message_center/message_center_export.h" 15 #include "ui/message_center/message_center_export.h"
16 #include "ui/message_center/notification_delegate.h"
16 #include "ui/message_center/notification_types.h" 17 #include "ui/message_center/notification_types.h"
17 18
18 namespace message_center { 19 namespace message_center {
19 20
20 struct MESSAGE_CENTER_EXPORT NotificationItem { 21 struct MESSAGE_CENTER_EXPORT NotificationItem {
21 string16 title; 22 string16 title;
22 string16 message; 23 string16 message;
23 24
24 NotificationItem(const string16& title, const string16& message); 25 NotificationItem(const string16& title, const string16& message);
25 }; 26 };
26 27
27 struct MESSAGE_CENTER_EXPORT ButtonInfo { 28 struct MESSAGE_CENTER_EXPORT ButtonInfo {
28 string16 title; 29 string16 title;
29 gfx::Image icon; 30 gfx::Image icon;
30 31
31 ButtonInfo(const string16& title); 32 ButtonInfo(const string16& title);
32 }; 33 };
33 34
34 class MESSAGE_CENTER_EXPORT Notification { 35 class MESSAGE_CENTER_EXPORT Notification {
35 public: 36 public:
36 Notification(NotificationType type, 37 Notification(NotificationType type,
37 const std::string& id, 38 const std::string& id,
38 const string16& title, 39 const string16& title,
39 const string16& message, 40 const string16& message,
40 const string16& display_source, 41 const string16& display_source,
41 const std::string& extension_id, 42 const std::string& extension_id,
42 const DictionaryValue* optional_fields); // May be NULL. 43 const DictionaryValue* optional_fields, // May be NULL.
44 NotificationDelegate* delegate); // May be NULL.
43 virtual ~Notification(); 45 virtual ~Notification();
44 46
45 // Copies the internal on-memory state from |base|, i.e. shown_as_popup, 47 // Copies the internal on-memory state from |base|, i.e. shown_as_popup,
46 // is_read, is_expanded, and never_timeout. 48 // is_read, is_expanded, and never_timeout.
47 void CopyState(Notification* base); 49 void CopyState(Notification* base);
48 50
49 NotificationType type() const { return type_; } 51 NotificationType type() const { return type_; }
50 const std::string& id() const { return id_; } 52 const std::string& id() const { return id_; }
51 const string16& title() const { return title_; } 53 const string16& title() const { return title_; }
52 const string16& message() const { return message_; } 54 const string16& message() const { return message_; }
(...skipping 29 matching lines...) Expand all
82 84
83 // Expanded status in the message center (not the popups). 85 // Expanded status in the message center (not the popups).
84 bool is_expanded() const { return is_expanded_; } 86 bool is_expanded() const { return is_expanded_; }
85 void set_is_expanded(bool expanded) { is_expanded_ = expanded; } 87 void set_is_expanded(bool expanded) { is_expanded_ = expanded; }
86 88
87 // Used to keep the order of notifications with the same timestamp. 89 // Used to keep the order of notifications with the same timestamp.
88 // The notification with lesser serial_number is considered 'older'. 90 // The notification with lesser serial_number is considered 'older'.
89 unsigned serial_number() { return serial_number_; } 91 unsigned serial_number() { return serial_number_; }
90 92
91 bool never_timeout() const { return never_timeout_; } 93 bool never_timeout() const { return never_timeout_; }
94 NotificationDelegate* delegate() { return delegate_.get(); }
92 95
93 private: 96 private:
94 // Unpacks the provided |optional_fields| and applies the values to override 97 // Unpacks the provided |optional_fields| and applies the values to override
95 // the notification's data members. 98 // the notification's data members.
96 void ApplyOptionalFields(const DictionaryValue* optional_fields); 99 void ApplyOptionalFields(const DictionaryValue* optional_fields);
97 100
98 NotificationType type_; 101 NotificationType type_;
99 std::string id_; 102 std::string id_;
100 string16 title_; 103 string16 title_;
101 string16 message_; 104 string16 message_;
102 string16 display_source_; 105 string16 display_source_;
103 std::string extension_id_; 106 std::string extension_id_;
104 int priority_; 107 int priority_;
105 base::Time timestamp_; 108 base::Time timestamp_;
106 unsigned serial_number_; 109 unsigned serial_number_;
107 string16 expanded_message_; 110 string16 expanded_message_;
108 std::vector<NotificationItem> items_; 111 std::vector<NotificationItem> items_;
109 gfx::Image icon_; 112 gfx::Image icon_;
110 gfx::Image image_; 113 gfx::Image image_;
111 std::vector<ButtonInfo> buttons_; 114 std::vector<ButtonInfo> buttons_;
112 bool shown_as_popup_; // True if this has been shown as a popup. 115 bool shown_as_popup_; // True if this has been shown as a popup.
113 bool is_read_; // True if this has been seen in the message center. 116 bool is_read_; // True if this has been seen in the message center.
114 bool is_expanded_; // True if this has been expanded in the message center. 117 bool is_expanded_; // True if this has been expanded in the message center.
115 bool never_timeout_; // True if it doesn't timeout when it appears as a toast. 118 bool never_timeout_; // True if it doesn't timeout when it appears as a toast.
116 119
120 // A proxy object that allows access back to the JavaScript object that
121 // represents the notification, for firing events.
122 scoped_refptr<NotificationDelegate> delegate_;
123
117 DISALLOW_COPY_AND_ASSIGN(Notification); 124 DISALLOW_COPY_AND_ASSIGN(Notification);
118 }; 125 };
119 126
120 } // namespace message_center 127 } // namespace message_center
121 128
122 #endif // UI_MESSAGE_CENTER_NOTIFICATION_H_ 129 #endif // UI_MESSAGE_CENTER_NOTIFICATION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698