OLD | NEW |
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 "chrome/browser/ui/views/notifications/balloon_view_views.h" | 5 #include "chrome/browser/ui/views/notifications/balloon_view_views.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 if (view) | 253 if (view) |
254 view->SetSize(contents_rect.size()); | 254 view->SetSize(contents_rect.size()); |
255 } | 255 } |
256 | 256 |
257 gfx::Rect BalloonViewImpl::GetCloseButtonBounds() const { | 257 gfx::Rect BalloonViewImpl::GetCloseButtonBounds() const { |
258 gfx::Rect bounds(GetContentsBounds()); | 258 gfx::Rect bounds(GetContentsBounds()); |
259 bounds.set_height(GetShelfHeight()); | 259 bounds.set_height(GetShelfHeight()); |
260 const gfx::Size& pref_size(close_button_->GetPreferredSize()); | 260 const gfx::Size& pref_size(close_button_->GetPreferredSize()); |
261 bounds.Inset(bounds.width() - kShelfMargin - pref_size.width(), 0, | 261 bounds.Inset(bounds.width() - kShelfMargin - pref_size.width(), 0, |
262 kShelfMargin, 0); | 262 kShelfMargin, 0); |
263 return bounds.Center(pref_size); | 263 bounds.ClampToCenteredSize(pref_size); |
| 264 return bounds; |
264 } | 265 } |
265 | 266 |
266 gfx::Rect BalloonViewImpl::GetOptionsButtonBounds() const { | 267 gfx::Rect BalloonViewImpl::GetOptionsButtonBounds() const { |
267 gfx::Rect bounds(GetContentsBounds()); | 268 gfx::Rect bounds(GetContentsBounds()); |
268 bounds.set_height(GetShelfHeight()); | 269 bounds.set_height(GetShelfHeight()); |
269 const gfx::Size& pref_size(options_menu_button_->GetPreferredSize()); | 270 const gfx::Size& pref_size(options_menu_button_->GetPreferredSize()); |
270 bounds.set_x(GetCloseButtonBounds().x() - kOptionsDismissSpacing - | 271 bounds.set_x(GetCloseButtonBounds().x() - kOptionsDismissSpacing - |
271 pref_size.width()); | 272 pref_size.width()); |
272 bounds.set_width(pref_size.width()); | 273 bounds.set_width(pref_size.width()); |
273 return bounds.Center(pref_size); | 274 bounds.ClampToCenteredSize(pref_size); |
| 275 return bounds; |
274 } | 276 } |
275 | 277 |
276 gfx::Rect BalloonViewImpl::GetLabelBounds() const { | 278 gfx::Rect BalloonViewImpl::GetLabelBounds() const { |
277 gfx::Rect bounds(GetContentsBounds()); | 279 gfx::Rect bounds(GetContentsBounds()); |
278 bounds.set_height(GetShelfHeight()); | 280 bounds.set_height(GetShelfHeight()); |
279 gfx::Size pref_size(source_label_->GetPreferredSize()); | 281 gfx::Size pref_size(source_label_->GetPreferredSize()); |
280 bounds.Inset(kLabelLeftMargin, 0, bounds.width() - | 282 bounds.Inset(kLabelLeftMargin, 0, bounds.width() - |
281 GetOptionsButtonBounds().x() + kLabelOptionsSpacing, 0); | 283 GetOptionsButtonBounds().x() + kLabelOptionsSpacing, 0); |
282 pref_size.set_width(bounds.width()); | 284 pref_size.set_width(bounds.width()); |
283 return bounds.Center(pref_size); | 285 bounds.ClampToCenteredSize(pref_size); |
| 286 return bounds; |
284 } | 287 } |
285 | 288 |
286 void BalloonViewImpl::Show(Balloon* balloon) { | 289 void BalloonViewImpl::Show(Balloon* balloon) { |
287 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 290 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
288 | 291 |
289 balloon_ = balloon; | 292 balloon_ = balloon; |
290 | 293 |
291 const string16 source_label_text = l10n_util::GetStringFUTF16( | 294 const string16 source_label_text = l10n_util::GetStringFUTF16( |
292 IDS_NOTIFICATION_BALLOON_SOURCE_LABEL, | 295 IDS_NOTIFICATION_BALLOON_SOURCE_LABEL, |
293 balloon->notification().display_source()); | 296 balloon->notification().display_source()); |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
526 return; | 529 return; |
527 } | 530 } |
528 | 531 |
529 // If the renderer process attached to this balloon is disconnected | 532 // If the renderer process attached to this balloon is disconnected |
530 // (e.g., because of a crash), we want to close the balloon. | 533 // (e.g., because of a crash), we want to close the balloon. |
531 notification_registrar_.Remove( | 534 notification_registrar_.Remove( |
532 this, chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED, | 535 this, chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED, |
533 content::Source<Balloon>(balloon_)); | 536 content::Source<Balloon>(balloon_)); |
534 Close(false); | 537 Close(false); |
535 } | 538 } |
OLD | NEW |