| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/views/message_popup_collection.h" | 5 #include "ui/message_center/views/message_popup_collection.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
| 13 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
| 14 #include "base/time/time.h" | 14 #include "base/time/time.h" |
| 15 #include "base/timer/timer.h" | 15 #include "base/timer/timer.h" |
| 16 #include "ui/accessibility/ax_enums.h" | 16 #include "ui/accessibility/ax_enums.h" |
| 17 #include "ui/gfx/animation/animation_delegate.h" | 17 #include "ui/gfx/animation/animation_delegate.h" |
| 18 #include "ui/gfx/animation/slide_animation.h" | 18 #include "ui/gfx/animation/slide_animation.h" |
| 19 #include "ui/message_center/message_center.h" | 19 #include "ui/message_center/message_center.h" |
| 20 #include "ui/message_center/message_center_style.h" | 20 #include "ui/message_center/message_center_style.h" |
| 21 #include "ui/message_center/message_center_tray.h" | 21 #include "ui/message_center/message_center_tray.h" |
| 22 #include "ui/message_center/notification.h" | 22 #include "ui/message_center/notification.h" |
| 23 #include "ui/message_center/notification_list.h" | 23 #include "ui/message_center/notification_list.h" |
| 24 #include "ui/message_center/views/message_view.h" |
| 24 #include "ui/message_center/views/message_view_context_menu_controller.h" | 25 #include "ui/message_center/views/message_view_context_menu_controller.h" |
| 25 #include "ui/message_center/views/notification_view.h" | 26 #include "ui/message_center/views/message_view_factory.h" |
| 26 #include "ui/message_center/views/popup_alignment_delegate.h" | 27 #include "ui/message_center/views/popup_alignment_delegate.h" |
| 27 #include "ui/message_center/views/toast_contents_view.h" | 28 #include "ui/message_center/views/toast_contents_view.h" |
| 28 #include "ui/views/background.h" | 29 #include "ui/views/background.h" |
| 29 #include "ui/views/layout/fill_layout.h" | 30 #include "ui/views/layout/fill_layout.h" |
| 30 #include "ui/views/view.h" | 31 #include "ui/views/view.h" |
| 31 #include "ui/views/views_delegate.h" | 32 #include "ui/views/views_delegate.h" |
| 32 #include "ui/views/widget/widget.h" | 33 #include "ui/views/widget/widget.h" |
| 33 #include "ui/views/widget/widget_delegate.h" | 34 #include "ui/views/widget/widget_delegate.h" |
| 34 | 35 |
| 35 namespace message_center { | 36 namespace message_center { |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 continue; | 158 continue; |
| 158 | 159 |
| 159 MessageView* view; | 160 MessageView* view; |
| 160 // Create top-level notification. | 161 // Create top-level notification. |
| 161 #if defined(OS_CHROMEOS) | 162 #if defined(OS_CHROMEOS) |
| 162 if ((*iter)->pinned()) { | 163 if ((*iter)->pinned()) { |
| 163 Notification notification = *(*iter); | 164 Notification notification = *(*iter); |
| 164 // Override pinned status, since toasts should be closable even when it's | 165 // Override pinned status, since toasts should be closable even when it's |
| 165 // pinned. | 166 // pinned. |
| 166 notification.set_pinned(false); | 167 notification.set_pinned(false); |
| 167 view = NotificationView::Create(NULL, notification, true); | 168 view = MessageViewFactory::Create(NULL, notification, true); |
| 168 } else | 169 } else |
| 169 #endif // defined(OS_CHROMEOS) | 170 #endif // defined(OS_CHROMEOS) |
| 170 { | 171 { |
| 171 view = NotificationView::Create(NULL, *(*iter), true); | 172 view = MessageViewFactory::Create(NULL, *(*iter), true); |
| 172 } | 173 } |
| 173 | 174 |
| 174 view->set_context_menu_controller(context_menu_controller_.get()); | 175 view->set_context_menu_controller(context_menu_controller_.get()); |
| 175 int view_height = ToastContentsView::GetToastSizeForView(view).height(); | 176 int view_height = ToastContentsView::GetToastSizeForView(view).height(); |
| 176 int height_available = | 177 int height_available = |
| 177 top_down ? alignment_delegate_->GetWorkAreaBottom() - base : base; | 178 top_down ? alignment_delegate_->GetWorkAreaBottom() - base : base; |
| 178 | 179 |
| 179 if (height_available - view_height - kToastMarginY < 0) { | 180 if (height_available - view_height - kToastMarginY < 0) { |
| 180 delete view; | 181 delete view; |
| 181 break; | 182 break; |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 views::Widget* widget = (*iter)->GetWidget(); | 538 views::Widget* widget = (*iter)->GetWidget(); |
| 538 if (widget) | 539 if (widget) |
| 539 return widget->GetWindowBoundsInScreen(); | 540 return widget->GetWindowBoundsInScreen(); |
| 540 break; | 541 break; |
| 541 } | 542 } |
| 542 } | 543 } |
| 543 return gfx::Rect(); | 544 return gfx::Rect(); |
| 544 } | 545 } |
| 545 | 546 |
| 546 } // namespace message_center | 547 } // namespace message_center |
| OLD | NEW |