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

Side by Side Diff: ui/message_center/message_simple_view.cc

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, 9 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 | Annotate | Revision Log
« no previous file with comments | « ui/message_center/message_simple_view.h ('k') | ui/message_center/message_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "ui/message_center/message_simple_view.h" 5 #include "ui/message_center/message_simple_view.h"
6 6
7 #include "grit/ui_resources.h" 7 #include "grit/ui_resources.h"
8 #include "ui/base/resource/resource_bundle.h" 8 #include "ui/base/resource/resource_bundle.h"
9 #include "ui/message_center/notification.h" 9 #include "ui/message_center/notification.h"
10 #include "ui/message_center/notification_list.h" 10 #include "ui/message_center/notification_list.h"
(...skipping 13 matching lines...) Expand all
24 NotificationList::Delegate* list_delegate, 24 NotificationList::Delegate* list_delegate,
25 const Notification& notification) 25 const Notification& notification)
26 : MessageView(list_delegate, notification) { 26 : MessageView(list_delegate, notification) {
27 views::ImageButton* close = new views::ImageButton(this); 27 views::ImageButton* close = new views::ImageButton(this);
28 close->SetImage( 28 close->SetImage(
29 views::CustomButton::STATE_NORMAL, 29 views::CustomButton::STATE_NORMAL,
30 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(IDR_MESSAGE_CLOSE)); 30 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(IDR_MESSAGE_CLOSE));
31 close->SetImageAlignment(views::ImageButton::ALIGN_CENTER, 31 close->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
32 views::ImageButton::ALIGN_MIDDLE); 32 views::ImageButton::ALIGN_MIDDLE);
33 old_style_close_button_.reset(close); 33 old_style_close_button_.reset(close);
34 SetUpView(notification);
34 } 35 }
35 36
36 MessageSimpleView::~MessageSimpleView() { 37 MessageSimpleView::~MessageSimpleView() {
37 // old_style_close_button_ has to be cleared before content_view_ is cleared. 38 // old_style_close_button_ has to be cleared before content_view_ is cleared.
38 // Otherwise, resetting content_view_ will delete old_style_close_button_ so 39 // Otherwise, resetting content_view_ will delete old_style_close_button_ so
39 // a double-free happens. 40 // a double-free happens.
40 old_style_close_button_.reset(); 41 old_style_close_button_.reset();
41 content_view_.reset(); 42 content_view_.reset();
42 } 43 }
43 44
44 void MessageSimpleView::Layout() { 45 void MessageSimpleView::Layout() {
45 if (content_view_) { 46 if (content_view_) {
46 gfx::Rect contents_bounds = GetContentsBounds(); 47 gfx::Rect contents_bounds = GetContentsBounds();
47 content_view_->SetBoundsRect(contents_bounds); 48 content_view_->SetBoundsRect(contents_bounds);
48 } 49 }
49 } 50 }
50 51
51 gfx::Size MessageSimpleView::GetPreferredSize() { 52 gfx::Size MessageSimpleView::GetPreferredSize() {
52 if (!content_view_) 53 if (!content_view_)
53 return gfx::Size(); 54 return gfx::Size();
54 gfx::Size size = content_view_->GetPreferredSize(); 55 gfx::Size size = content_view_->GetPreferredSize();
55 if (border()) { 56 if (border()) {
56 gfx::Insets border_insets = border()->GetInsets(); 57 gfx::Insets border_insets = border()->GetInsets();
57 size.Enlarge(border_insets.width(), border_insets.height()); 58 size.Enlarge(border_insets.width(), border_insets.height());
58 } 59 }
59 return size; 60 return size;
60 } 61 }
61 62
62 void MessageSimpleView::SetUpView() { 63 void MessageSimpleView::SetUpView(const Notification& notification) {
63 views::ImageView* icon = new views::ImageView; 64 views::ImageView* icon = new views::ImageView;
64 icon->SetImageSize( 65 icon->SetImageSize(
65 gfx::Size(kWebNotificationIconSize, kWebNotificationIconSize)); 66 gfx::Size(kWebNotificationIconSize, kWebNotificationIconSize));
66 icon->SetImage(notification().primary_icon); 67 icon->SetImage(notification.primary_icon());
67 68
68 views::Label* title = new views::Label(notification().title); 69 views::Label* title = new views::Label(notification.title());
69 title->SetHorizontalAlignment(gfx::ALIGN_LEFT); 70 title->SetHorizontalAlignment(gfx::ALIGN_LEFT);
70 title->SetFont(title->font().DeriveFont(0, gfx::Font::BOLD)); 71 title->SetFont(title->font().DeriveFont(0, gfx::Font::BOLD));
71 views::Label* message = new views::Label(notification().message); 72 views::Label* message = new views::Label(notification.message());
72 message->SetHorizontalAlignment(gfx::ALIGN_LEFT); 73 message->SetHorizontalAlignment(gfx::ALIGN_LEFT);
73 message->SetMultiLine(true); 74 message->SetMultiLine(true);
74 75
75 SkColor bg_color = notification().is_read ? 76 SkColor bg_color = notification.is_read() ?
76 kNotificationReadColor : kNotificationColor; 77 kNotificationReadColor : kNotificationColor;
77 content_view_.reset(new views::View); 78 content_view_.reset(new views::View);
78 content_view_->set_background( 79 content_view_->set_background(
79 views::Background::CreateSolidBackground(bg_color)); 80 views::Background::CreateSolidBackground(bg_color));
80 AddChildView(content_view_.get()); 81 AddChildView(content_view_.get());
81 views::GridLayout* layout = new views::GridLayout(content_view_.get()); 82 views::GridLayout* layout = new views::GridLayout(content_view_.get());
82 content_view_->SetLayoutManager(layout); 83 content_view_->SetLayoutManager(layout);
83 84
84 views::ColumnSet* columns = layout->AddColumnSet(0); 85 views::ColumnSet* columns = layout->AddColumnSet(0);
85 86
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 layout->AddPaddingRow(0, kPaddingBetweenItems); 128 layout->AddPaddingRow(0, kPaddingBetweenItems);
128 } 129 }
129 130
130 void MessageSimpleView::ButtonPressed(views::Button* sender, 131 void MessageSimpleView::ButtonPressed(views::Button* sender,
131 const ui::Event& event) { 132 const ui::Event& event) {
132 bool close = (sender == old_style_close_button_.get()); 133 bool close = (sender == old_style_close_button_.get());
133 MessageView::ButtonPressed(close ? close_button() : sender, event); 134 MessageView::ButtonPressed(close ? close_button() : sender, event);
134 } 135 }
135 136
136 } // namespace message_center 137 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/message_simple_view.h ('k') | ui/message_center/message_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698