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

Side by Side Diff: ui/message_center/views/message_popup_collection.cc

Issue 2075953003: mash: Convert WebNotificationTray to wm common types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@statusarea
Patch Set: rebase Created 4 years, 6 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
OLDNEW
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"
(...skipping 30 matching lines...) Expand all
41 // just closed, the timeout is shorter. 41 // just closed, the timeout is shorter.
42 const int kMouseExitedDeferTimeoutMs = 200; 42 const int kMouseExitedDeferTimeoutMs = 200;
43 43
44 // The margin between messages (and between the anchor unless 44 // The margin between messages (and between the anchor unless
45 // first_item_has_no_margin was specified). 45 // first_item_has_no_margin was specified).
46 const int kToastMarginY = kMarginBetweenItems; 46 const int kToastMarginY = kMarginBetweenItems;
47 47
48 } // namespace. 48 } // namespace.
49 49
50 MessagePopupCollection::MessagePopupCollection( 50 MessagePopupCollection::MessagePopupCollection(
51 gfx::NativeView parent,
52 MessageCenter* message_center, 51 MessageCenter* message_center,
53 MessageCenterTray* tray, 52 MessageCenterTray* tray,
54 PopupAlignmentDelegate* alignment_delegate) 53 PopupAlignmentDelegate* alignment_delegate)
55 : parent_(parent), 54 : message_center_(message_center),
56 message_center_(message_center),
57 tray_(tray), 55 tray_(tray),
58 alignment_delegate_(alignment_delegate), 56 alignment_delegate_(alignment_delegate),
59 defer_counter_(0), 57 defer_counter_(0),
60 latest_toast_entered_(NULL), 58 latest_toast_entered_(NULL),
61 user_is_closing_toasts_by_clicking_(false), 59 user_is_closing_toasts_by_clicking_(false),
60 target_top_edge_(0),
62 context_menu_controller_(new MessageViewContextMenuController(this)), 61 context_menu_controller_(new MessageViewContextMenuController(this)),
63 weak_factory_(this) { 62 weak_factory_(this) {
64 DCHECK(message_center_); 63 DCHECK(message_center_);
65 defer_timer_.reset(new base::OneShotTimer); 64 defer_timer_.reset(new base::OneShotTimer);
66 message_center_->AddObserver(this); 65 message_center_->AddObserver(this);
67 alignment_delegate_->set_collection(this); 66 alignment_delegate_->set_collection(this);
68 } 67 }
69 68
70 MessagePopupCollection::~MessagePopupCollection() { 69 MessagePopupCollection::~MessagePopupCollection() {
71 weak_factory_.InvalidateWeakPtrs(); 70 weak_factory_.InvalidateWeakPtrs();
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 view->set_context_menu_controller(context_menu_controller_.get()); 174 view->set_context_menu_controller(context_menu_controller_.get());
176 int view_height = ToastContentsView::GetToastSizeForView(view).height(); 175 int view_height = ToastContentsView::GetToastSizeForView(view).height();
177 int height_available = 176 int height_available =
178 top_down ? alignment_delegate_->GetWorkAreaBottom() - base : base; 177 top_down ? alignment_delegate_->GetWorkAreaBottom() - base : base;
179 178
180 if (height_available - view_height - kToastMarginY < 0) { 179 if (height_available - view_height - kToastMarginY < 0) {
181 delete view; 180 delete view;
182 break; 181 break;
183 } 182 }
184 183
185 ToastContentsView* toast = 184 ToastContentsView* toast = new ToastContentsView(
186 new ToastContentsView((*iter)->id(), weak_factory_.GetWeakPtr()); 185 (*iter)->id(), alignment_delegate_, weak_factory_.GetWeakPtr());
187 // There will be no contents already since this is a new ToastContentsView. 186 // There will be no contents already since this is a new ToastContentsView.
188 toast->SetContents(view, /*a11y_feedback_for_updates=*/false); 187 toast->SetContents(view, /*a11y_feedback_for_updates=*/false);
189 toasts_.push_back(toast); 188 toasts_.push_back(toast);
190 view->set_controller(toast); 189 view->set_controller(toast);
191 190
192 gfx::Size preferred_size = toast->GetPreferredSize(); 191 gfx::Size preferred_size = toast->GetPreferredSize();
193 gfx::Point origin( 192 gfx::Point origin(
194 alignment_delegate_->GetToastOriginX(gfx::Rect(preferred_size)), base); 193 alignment_delegate_->GetToastOriginX(gfx::Rect(preferred_size)), base);
195 // The toast slides in from the edge of the screen horizontally. 194 // The toast slides in from the edge of the screen horizontally.
196 if (alignment_delegate_->IsFromLeft()) 195 if (alignment_delegate_->IsFromLeft())
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 views::Widget* widget = (*iter)->GetWidget(); 537 views::Widget* widget = (*iter)->GetWidget();
539 if (widget) 538 if (widget)
540 return widget->GetWindowBoundsInScreen(); 539 return widget->GetWindowBoundsInScreen();
541 break; 540 break;
542 } 541 }
543 } 542 }
544 return gfx::Rect(); 543 return gfx::Rect();
545 } 544 }
546 545
547 } // namespace message_center 546 } // namespace message_center
OLDNEW
« no previous file with comments | « ui/message_center/views/message_popup_collection.h ('k') | ui/message_center/views/message_popup_collection_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698