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

Unified Diff: ash/system/tray/tray_views.cc

Issue 10443004: Move common notification layout to base class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 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 side-by-side diff with in-line comments
Download patch
Index: ash/system/tray/tray_views.cc
diff --git a/ash/system/tray/tray_views.cc b/ash/system/tray/tray_views.cc
index 6ce432fb472988b4e658ee3dc2dedc91bcba75aa..d5bf1f981c1bc20a14ae111d46e4b0b4415b85c9 100644
--- a/ash/system/tray/tray_views.cc
+++ b/ash/system/tray/tray_views.cc
@@ -456,7 +456,10 @@ void SetupLabelForTray(views::Label* label) {
////////////////////////////////////////////////////////////////////////////////
// TrayNotificationView
-TrayNotificationView::TrayNotificationView() {
+TrayNotificationView::TrayNotificationView(int icon_id) : icon_id_(icon_id) {
+}
+
+TrayNotificationView::~TrayNotificationView() {
}
void TrayNotificationView::InitView(views::View* contents) {
@@ -470,25 +473,71 @@ void TrayNotificationView::InitView(views::View* contents) {
ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_AURA_WINDOW_CLOSE));
- int contents_width = kTrayPopupWidth - kNotificationCloseButtonWidth;
+ icon_ = new views::ImageView;
+ if (icon_id_ != 0) {
+ icon_->SetImage(
+ ResourceBundle::GetSharedInstance().GetImageSkiaNamed(icon_id_));
+ }
+
views::ColumnSet* columns = layout->AddColumnSet(0);
- columns->AddColumn(views::GridLayout::TRAILING, views::GridLayout::FILL,
+
+ columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal/2);
+
+ // Icon
+ columns->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER,
0, /* resize percent */
views::GridLayout::FIXED,
- contents_width,
- contents_width);
+ kNotificationIconWidth, kNotificationIconWidth);
+
+ columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal/2);
+
+ // Contents
+ columns->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL,
+ 0, /* resize percent */
+ views::GridLayout::FIXED,
+ kTrayNotificationContentsWidth,
+ kTrayNotificationContentsWidth);
+
+ columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal/2);
+
+ // Close button
columns->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER,
0, /* resize percent */
views::GridLayout::FIXED,
- kNotificationCloseButtonWidth,
- kNotificationCloseButtonWidth);
+ kNotificationIconWidth, kNotificationIconWidth);
+ columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal/2);
+
+ // Layout rows
+ layout->AddPaddingRow(0, kTrayPopupPaddingBetweenItems);
layout->StartRow(0, 0);
+ layout->AddView(icon_);
layout->AddView(contents);
layout->AddView(close_button);
+ layout->AddPaddingRow(0, kTrayPopupPaddingBetweenItems);
}
-TrayNotificationView::~TrayNotificationView() {
+void TrayNotificationView::SetIconImage(const SkBitmap& image) {
+ icon_->SetImage(image);
+ SchedulePaint();
+}
+
+void TrayNotificationView::UpdateView(views::View* new_contents) {
+ RemoveAllChildViews(true);
sadrul 2012/05/24 04:12:50 The indentation here and in UpdateViewAndImage see
stevenjb 2012/05/24 16:48:01 Done.
+ InitView(new_contents);
+ Layout();
+ PreferredSizeChanged();
+ SchedulePaint();
+}
+
+void TrayNotificationView::UpdateViewAndImage(views::View* new_contents,
+ const SkBitmap& image) {
+ RemoveAllChildViews(true);
+ InitView(new_contents);
+ icon_->SetImage(image);
+ Layout();
+ PreferredSizeChanged();
+ SchedulePaint();
}
void TrayNotificationView::ButtonPressed(views::Button* sender,

Powered by Google App Engine
This is Rietveld 408576698