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

Side by Side Diff: ash/common/system/tray/tray_notification_view.cc

Issue 2583393002: Send notification to users upon receiving sms messages (Closed)
Patch Set: update return type Created 3 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 unified diff | Download patch
« no previous file with comments | « ash/common/system/tray/tray_notification_view.h ('k') | ash/common/system/tray_accessibility.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 "ash/common/system/tray/tray_notification_view.h" 5 #include "ash/common/system/tray/tray_notification_view.h"
6 6
7 #include "ash/common/material_design/material_design_controller.h" 7 #include "ash/common/material_design/material_design_controller.h"
8 #include "ash/common/system/tray/system_tray_item.h" 8 #include "ash/common/system/tray/system_tray_item.h"
9 #include "ash/common/system/tray/tray_constants.h" 9 #include "ash/common/system/tray/tray_constants.h"
10 #include "ash/resources/vector_icons/vector_icons.h" 10 #include "ash/resources/vector_icons/vector_icons.h"
(...skipping 11 matching lines...) Expand all
22 22
23 namespace { 23 namespace {
24 24
25 // Maps a non-MD PNG resource id to its corresponding MD vector icon. 25 // Maps a non-MD PNG resource id to its corresponding MD vector icon.
26 // TODO(tdanderson): Remove this once material design is enabled by 26 // TODO(tdanderson): Remove this once material design is enabled by
27 // default. See crbug.com/614453. 27 // default. See crbug.com/614453.
28 const gfx::VectorIcon& ResourceIdToVectorIcon(int resource_id) { 28 const gfx::VectorIcon& ResourceIdToVectorIcon(int resource_id) {
29 switch (resource_id) { 29 switch (resource_id) {
30 case IDR_AURA_UBER_TRAY_ACCESSIBILITY_DARK: 30 case IDR_AURA_UBER_TRAY_ACCESSIBILITY_DARK:
31 return kSystemMenuAccessibilityIcon; 31 return kSystemMenuAccessibilityIcon;
32 case IDR_AURA_UBER_TRAY_SMS:
33 return kSystemMenuSmsIcon;
34 default: 32 default:
35 NOTREACHED(); 33 NOTREACHED();
36 break; 34 break;
37 } 35 }
38 36
39 return gfx::kNoneIcon; 37 return gfx::kNoneIcon;
40 } 38 }
41 39
42 } // namespace 40 } // namespace
43 41
44 TrayNotificationView::TrayNotificationView(SystemTrayItem* owner, int icon_id) 42 TrayNotificationView::TrayNotificationView(int icon_id)
45 : owner_(owner), icon_id_(icon_id), icon_(NULL), autoclose_delay_(0) {} 43 : icon_id_(icon_id), icon_(NULL) {}
46 44
47 TrayNotificationView::~TrayNotificationView() {} 45 TrayNotificationView::~TrayNotificationView() {}
48 46
49 void TrayNotificationView::InitView(views::View* contents) { 47 void TrayNotificationView::InitView(views::View* contents) {
50 set_background(views::Background::CreateSolidBackground(kBackgroundColor)); 48 set_background(views::Background::CreateSolidBackground(kBackgroundColor));
51 49
52 views::GridLayout* layout = new views::GridLayout(this); 50 views::GridLayout* layout = new views::GridLayout(this);
53 SetLayoutManager(layout); 51 SetLayoutManager(layout);
54 52
55 views::ImageButton* close_button = new views::ImageButton(this); 53 views::ImageView* close_button = new views::ImageView();
56 close_button->SetImage( 54 close_button->SetImage(
57 views::CustomButton::STATE_NORMAL,
58 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(IDR_MESSAGE_CLOSE)); 55 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(IDR_MESSAGE_CLOSE));
59 close_button->SetImageAlignment(views::ImageButton::ALIGN_CENTER, 56 close_button->SetHorizontalAlignment(views::ImageView::CENTER);
60 views::ImageButton::ALIGN_MIDDLE); 57 close_button->SetVerticalAlignment(views::ImageView::CENTER);
61 58
62 icon_ = new views::ImageView; 59 icon_ = new views::ImageView;
63 if (icon_id_ != 0) { 60 if (icon_id_ != 0) {
64 if (MaterialDesignController::UseMaterialDesignSystemIcons()) { 61 if (MaterialDesignController::UseMaterialDesignSystemIcons()) {
65 icon_->SetImage(gfx::CreateVectorIcon(ResourceIdToVectorIcon(icon_id_), 62 icon_->SetImage(gfx::CreateVectorIcon(ResourceIdToVectorIcon(icon_id_),
66 kMenuIconColor)); 63 kMenuIconColor));
67 } else { 64 } else {
68 icon_->SetImage( 65 icon_->SetImage(
69 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(icon_id_)); 66 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(icon_id_));
70 } 67 }
(...skipping 27 matching lines...) Expand all
98 95
99 // Layout rows 96 // Layout rows
100 layout->AddPaddingRow(0, kTrayPopupPaddingBetweenItems); 97 layout->AddPaddingRow(0, kTrayPopupPaddingBetweenItems);
101 layout->StartRow(0, 0); 98 layout->StartRow(0, 0);
102 layout->AddView(icon_); 99 layout->AddView(icon_);
103 layout->AddView(contents); 100 layout->AddView(contents);
104 layout->AddView(close_button); 101 layout->AddView(close_button);
105 layout->AddPaddingRow(0, kTrayPopupPaddingBetweenItems); 102 layout->AddPaddingRow(0, kTrayPopupPaddingBetweenItems);
106 } 103 }
107 104
108 void TrayNotificationView::UpdateView(views::View* new_contents) {
109 RemoveAllChildViews(true);
110 InitView(new_contents);
111 Layout();
112 PreferredSizeChanged();
113 SchedulePaint();
114 }
115
116 void TrayNotificationView::StartAutoCloseTimer(int seconds) {
117 autoclose_.Stop();
118 autoclose_delay_ = seconds;
119 if (autoclose_delay_) {
120 autoclose_.Start(FROM_HERE, base::TimeDelta::FromSeconds(autoclose_delay_),
121 this, &TrayNotificationView::HandleClose);
122 }
123 }
124
125 void TrayNotificationView::StopAutoCloseTimer() {
126 autoclose_.Stop();
127 }
128
129 void TrayNotificationView::RestartAutoCloseTimer() {
130 if (autoclose_delay_)
131 StartAutoCloseTimer(autoclose_delay_);
132 }
133
134 void TrayNotificationView::ButtonPressed(views::Button* sender,
135 const ui::Event& event) {
136 HandleClose();
137 }
138
139 bool TrayNotificationView::OnMousePressed(const ui::MouseEvent& event) {
140 HandleClickAction();
141 return true;
142 }
143
144 void TrayNotificationView::OnGestureEvent(ui::GestureEvent* event) {
145 SlideOutView::OnGestureEvent(event);
146 if (event->handled())
147 return;
148 if (event->type() != ui::ET_GESTURE_TAP)
149 return;
150 HandleClickAction();
151 event->SetHandled();
152 }
153
154 void TrayNotificationView::OnClose() {}
155
156 void TrayNotificationView::OnClickAction() {}
157
158 void TrayNotificationView::OnSlideOut() {
159 owner_->HideNotificationView();
160 }
161
162 void TrayNotificationView::HandleClose() {
163 OnClose();
164 owner_->HideNotificationView();
165 }
166
167 void TrayNotificationView::HandleClickAction() {
168 HandleClose();
169 OnClickAction();
170 }
171
172 } // namespace ash 105 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/tray/tray_notification_view.h ('k') | ash/common/system/tray_accessibility.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698