| Index: ui/message_center/views/message_popup_collection.h
|
| diff --git a/ui/message_center/views/message_popup_collection.h b/ui/message_center/views/message_popup_collection.h
|
| index 955af32ddb5e2a25363f4de44b3829b2d7ce7592..8d6d644c68a262a800e538ba96a514024d044f79 100644
|
| --- a/ui/message_center/views/message_popup_collection.h
|
| +++ b/ui/message_center/views/message_popup_collection.h
|
| @@ -12,8 +12,6 @@
|
| #include "base/gtest_prod_util.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/timer/timer.h"
|
| -#include "ui/gfx/display.h"
|
| -#include "ui/gfx/display_observer.h"
|
| #include "ui/gfx/native_widget_types.h"
|
| #include "ui/gfx/rect.h"
|
| #include "ui/message_center/message_center_export.h"
|
| @@ -30,12 +28,8 @@ namespace views {
|
| class Widget;
|
| }
|
|
|
| -namespace ash {
|
| -class WebNotificationTrayTest;
|
| -FORWARD_DECLARE_TEST(WebNotificationTrayTest, ManyPopupNotifications);
|
| -}
|
| -
|
| namespace gfx {
|
| +class Display;
|
| class Screen;
|
| }
|
|
|
| @@ -47,13 +41,7 @@ class MessagePopupCollectionTest;
|
| class MessageCenter;
|
| class MessageCenterTray;
|
| class MessageViewContextMenuController;
|
| -
|
| -enum PopupAlignment {
|
| - POPUP_ALIGNMENT_TOP = 1 << 0,
|
| - POPUP_ALIGNMENT_LEFT = 1 << 1,
|
| - POPUP_ALIGNMENT_BOTTOM = 1 << 2,
|
| - POPUP_ALIGNMENT_RIGHT = 1 << 3,
|
| -};
|
| +class PopupAlignmentDelegate;
|
|
|
| // Container for popup toasts. Because each toast is a frameless window rather
|
| // than a view in a bubble, now the container just manages all of those toasts.
|
| @@ -62,17 +50,15 @@ enum PopupAlignment {
|
| // be slightly different.
|
| class MESSAGE_CENTER_EXPORT MessagePopupCollection
|
| : public MessageCenterController,
|
| - public MessageCenterObserver,
|
| - public gfx::DisplayObserver {
|
| + public MessageCenterObserver {
|
| public:
|
| // |parent| specifies the parent widget of the toast windows. The default
|
| // parent will be used for NULL. Usually each icon is spacing against its
|
| - // predecessor. If |first_item_has_no_margin| is set however the first item
|
| - // does not space against the tray.
|
| + // predecessor.
|
| MessagePopupCollection(gfx::NativeView parent,
|
| MessageCenter* message_center,
|
| MessageCenterTray* tray,
|
| - bool first_item_has_no_margin);
|
| + PopupAlignmentDelegate* alignment_delegate);
|
| virtual ~MessagePopupCollection();
|
|
|
| // Overridden from MessageCenterController:
|
| @@ -109,30 +95,14 @@ class MESSAGE_CENTER_EXPORT MessagePopupCollection
|
| // toast is irrevocably closed (such as within RemoveToast).
|
| void ForgetToast(ToastContentsView* toast);
|
|
|
| - // Updates |work_area_| and re-calculates the alignment of notification toasts
|
| - // rearranging them if necessary.
|
| - // This is separated from methods from OnDisplayMetricsChanged(), since
|
| - // sometimes the display info has to be specified directly. One example is
|
| - // shelf's auto-hide change. When the shelf in ChromeOS is temporarily shown
|
| - // from auto hide status, it doesn't change the display's work area but the
|
| - // actual work area for toasts should be resized.
|
| - void SetDisplayInfo(const gfx::Rect& work_area,
|
| - const gfx::Rect& screen_bounds);
|
| -
|
| - // Overridden from gfx::DislayObserver:
|
| - virtual void OnDisplayAdded(const gfx::Display& new_display) OVERRIDE;
|
| - virtual void OnDisplayRemoved(const gfx::Display& old_display) OVERRIDE;
|
| - virtual void OnDisplayMetricsChanged(const gfx::Display& display,
|
| - uint32_t metrics) OVERRIDE;
|
| + // Called when the display bounds has been changed. Used in Windows only.
|
| + void OnDisplayMetricsChanged(const gfx::Display& display);
|
|
|
| // Used by ToastContentsView to locate itself.
|
| gfx::NativeView parent() const { return parent_; }
|
|
|
| private:
|
| - FRIEND_TEST_ALL_PREFIXES(ash::WebNotificationTrayTest,
|
| - ManyPopupNotifications);
|
| friend class test::MessagePopupCollectionTest;
|
| - friend class ash::WebNotificationTrayTest;
|
| typedef std::list<ToastContentsView*> Toasts;
|
|
|
| // Iterates toasts and starts closing them.
|
| @@ -141,9 +111,6 @@ class MESSAGE_CENTER_EXPORT MessagePopupCollection
|
| // Called by ToastContentsView when its window is closed.
|
| void RemoveToast(ToastContentsView* toast, bool mark_as_shown);
|
|
|
| - // Returns the x-origin for the given toast bounds in the current work area.
|
| - int GetToastOriginX(const gfx::Rect& toast_bounds) const;
|
| -
|
| // Creates new widgets for new toast notifications, and updates |toasts_| and
|
| // |widgets_| correctly.
|
| void UpdateWidgets();
|
| @@ -156,8 +123,6 @@ class MESSAGE_CENTER_EXPORT MessagePopupCollection
|
| // See crbug.com/224089
|
| void RepositionWidgetsWithTarget();
|
|
|
| - void ComputePopupAlignment(gfx::Rect work_area, gfx::Rect screen_bounds);
|
| -
|
| // The base line is an (imaginary) line that would touch the bottom of the
|
| // next created notification if bottom-aligned or its top if top-aligned.
|
| int GetBaseLine(ToastContentsView* last_toast) const;
|
| @@ -187,13 +152,8 @@ class MESSAGE_CENTER_EXPORT MessagePopupCollection
|
| MessageCenter* message_center_;
|
| MessageCenterTray* tray_;
|
| Toasts toasts_;
|
| - gfx::Rect work_area_;
|
| - int64 display_id_;
|
| - gfx::Screen* screen_;
|
|
|
| - // Specifies which corner of the screen popups should show up. This should
|
| - // ideally be the same corner the notification area (systray) is at.
|
| - PopupAlignment alignment_;
|
| + PopupAlignmentDelegate* alignment_delegate_;
|
|
|
| int defer_counter_;
|
|
|
| @@ -215,9 +175,6 @@ class MESSAGE_CENTER_EXPORT MessagePopupCollection
|
| // Weak, only exists temporarily in tests.
|
| scoped_ptr<base::RunLoop> run_loop_for_test_;
|
|
|
| - // True if the first item should not have spacing against the tray.
|
| - bool first_item_has_no_margin_;
|
| -
|
| scoped_ptr<MessageViewContextMenuController> context_menu_controller_;
|
|
|
| // Gives out weak pointers to toast contents views which have an unrelated
|
|
|