Chromium Code Reviews| 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, |