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

Unified Diff: ui/message_center/notification.h

Issue 12277024: Notificaitons refactor step 2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more feedback from Steven Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/message_center/message_view.cc ('k') | ui/message_center/notification.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/message_center/notification.h
diff --git a/ui/message_center/notification.h b/ui/message_center/notification.h
index 4e660357385707626cbdf97e5df876c565ecca22..3dfc813adec66188d709d63a331c965f2579c2c1 100644
--- a/ui/message_center/notification.h
+++ b/ui/message_center/notification.h
@@ -5,13 +5,15 @@
#ifndef UI_MESSAGE_CENTER_NOTIFICATION_H_
#define UI_MESSAGE_CENTER_NOTIFICATION_H_
+#include <string>
#include <vector>
#include "base/string16.h"
#include "base/time.h"
+#include "base/values.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/message_center/message_center_export.h"
-#include "ui/notifications/notification_types.h"
+#include "ui/message_center/notification_types.h"
namespace message_center {
@@ -19,37 +21,90 @@ struct MESSAGE_CENTER_EXPORT NotificationItem {
string16 title;
string16 message;
- NotificationItem(string16 title, string16 message);
+ NotificationItem(const string16& title, const string16& message);
};
-struct MESSAGE_CENTER_EXPORT Notification {
- Notification();
+struct MESSAGE_CENTER_EXPORT ButtonInfo {
+ string16 title;
+ gfx::ImageSkia icon;
+
+ ButtonInfo(const string16& title);
+};
+
+class MESSAGE_CENTER_EXPORT Notification {
+ public:
+ Notification(NotificationType type,
+ const std::string& id,
+ const string16& title,
+ const string16& message,
+ const string16& display_source,
+ const std::string& extension_id,
+ const DictionaryValue* optional_fields); // May be NULL.
virtual ~Notification();
- ui::notifications::NotificationType type;
- std::string id;
- string16 title;
- string16 message;
- string16 display_source;
- std::string extension_id;
-
- // Begin unpacked values from optional_fields
- int priority;
- base::Time timestamp;
- std::vector<string16> button_titles;
- string16 expanded_message;
- std::vector<NotificationItem> items;
- // End unpacked values
-
- // Images fetched asynchronously
- gfx::ImageSkia primary_icon;
- gfx::ImageSkia image;
- std::vector<gfx::ImageSkia> button_icons;
-
- bool is_read; // True if this has been seen in the message center
- bool shown_as_popup; // True if this has been shown as a popup notification
+ NotificationType type() const { return type_; }
+ const std::string& id() const { return id_; }
+ const string16& title() const { return title_; }
+ const string16& message() const { return message_; }
+ const string16& display_source() const { return display_source_; }
+ const std::string& extension_id() const { return extension_id_; }
+
+ // Begin unpacked values from optional_fields.
+ int priority() { return priority_; }
+ base::Time timestamp() const { return timestamp_; }
+ const string16& expanded_message() const { return expanded_message_; }
+ const std::vector<NotificationItem>& items() const { return items_; }
+ // End unpacked values.
+
+ // Images fetched asynchronously.
+ const gfx::ImageSkia& primary_icon() const { return primary_icon_; }
+ void set_primary_icon(const gfx::ImageSkia& icon) { primary_icon_ = icon; }
+
+ const gfx::ImageSkia& image() const { return image_; }
+ void set_image(const gfx::ImageSkia& image) { image_ = image; }
+
+ // Buttons, with icons fetched asynchronously.
+ const std::vector<ButtonInfo>& buttons() const { return buttons_; }
+ bool SetButtonIcon(size_t index, const gfx::ImageSkia& icon);
+
+ // Status in MessageCenter.
+ bool is_read() const { return is_read_; }
+ void set_is_read(bool is_read) { is_read_ = is_read; }
+
+ bool shown_as_popup() const { return shown_as_popup_; }
+ void set_shown_as_popup(bool shown_as_popup) {
+ shown_as_popup_ = shown_as_popup;
+ }
+
+ // Used to keep the order of notifications with the same timestamp.
+ // The notification with lesser serial_number is considered 'older'.
+ unsigned serial_number() { return serial_number_; }
+
+ private:
+ // Unpacks the provided |optional_fields| and applies the values to override
+ // the notification's data members.
+ void ApplyOptionalFields(const DictionaryValue* optional_fields);
+
+ NotificationType type_;
+ std::string id_;
+ string16 title_;
+ string16 message_;
+ string16 display_source_;
+ std::string extension_id_;
+ int priority_;
+ base::Time timestamp_;
+ unsigned serial_number_;
+ string16 expanded_message_;
+ std::vector<NotificationItem> items_;
+ gfx::ImageSkia primary_icon_;
+ gfx::ImageSkia image_;
+ std::vector<ButtonInfo> buttons_;
+ bool is_read_; // True if this has been seen in the message center.
+ bool shown_as_popup_; // True if this has been shown as a popup notification.
+
+ DISALLOW_COPY_AND_ASSIGN(Notification);
};
} // namespace message_center
-#endif // UI_MESSAGE_CENTER_NOTIFICATION_H_
+#endif // UI_MESSAGE_CENTER_NOTIFICATION_H_
« no previous file with comments | « ui/message_center/message_view.cc ('k') | ui/message_center/notification.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698