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

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: Rebase 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
« no previous file with comments | « ash/system/tray/tray_views.h ('k') | chrome/browser/chromeos/locale_change_guard.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/tray/tray_views.cc
diff --git a/ash/system/tray/tray_views.cc b/ash/system/tray/tray_views.cc
index baee9463f3023404902e2ce714ca40ec2f241b21..b540700bebbb74ceec3f38413c674feab5d1f5ab 100644
--- a/ash/system/tray/tray_views.cc
+++ b/ash/system/tray/tray_views.cc
@@ -455,7 +455,10 @@ void SpecialPopupRow::Layout() {
////////////////////////////////////////////////////////////////////////////////
// TrayNotificationView
-TrayNotificationView::TrayNotificationView() {
+TrayNotificationView::TrayNotificationView(int icon_id) : icon_id_(icon_id) {
+}
+
+TrayNotificationView::~TrayNotificationView() {
}
void TrayNotificationView::InitView(views::View* contents) {
@@ -469,25 +472,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,
+ kNotificationIconWidth, kNotificationIconWidth);
+
+ columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal/2);
+
+ // Contents
+ columns->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL,
0, /* resize percent */
views::GridLayout::FIXED,
- contents_width,
- contents_width);
+ 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);
+ 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,
« no previous file with comments | « ash/system/tray/tray_views.h ('k') | chrome/browser/chromeos/locale_change_guard.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698