| Index: ash/common/system/web_notification/web_notification_tray.h
|
| diff --git a/ash/common/system/web_notification/web_notification_tray.h b/ash/common/system/web_notification/web_notification_tray.h
|
| deleted file mode 100644
|
| index ce64dd8ac6342628c87d995fa7173a00d02e1ba6..0000000000000000000000000000000000000000
|
| --- a/ash/common/system/web_notification/web_notification_tray.h
|
| +++ /dev/null
|
| @@ -1,190 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef ASH_COMMON_SYSTEM_WEB_NOTIFICATION_WEB_NOTIFICATION_TRAY_H_
|
| -#define ASH_COMMON_SYSTEM_WEB_NOTIFICATION_WEB_NOTIFICATION_TRAY_H_
|
| -
|
| -#include <memory>
|
| -
|
| -#include "ash/ash_export.h"
|
| -#include "ash/common/login_status.h"
|
| -#include "ash/common/system/tray/tray_background_view.h"
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "ui/base/models/simple_menu_model.h"
|
| -#include "ui/gfx/animation/animation_container.h"
|
| -#include "ui/message_center/message_center_tray.h"
|
| -#include "ui/message_center/message_center_tray_delegate.h"
|
| -#include "ui/views/bubble/tray_bubble_view.h"
|
| -
|
| -// Status area tray for showing browser and app notifications. This hosts
|
| -// a MessageCenter class which manages the notification list. This class
|
| -// contains the Ash specific tray implementation.
|
| -//
|
| -// Note: These are not related to system notifications (i.e NotificationView
|
| -// generated by SystemTrayItem). Visibility of one notification type or other
|
| -// is controlled by StatusAreaWidget.
|
| -
|
| -namespace message_center {
|
| -class MessageCenter;
|
| -class MessageCenterBubble;
|
| -class MessagePopupCollection;
|
| -}
|
| -
|
| -namespace ash {
|
| -class AshPopupAlignmentDelegate;
|
| -class SystemTray;
|
| -class WebNotificationBubbleWrapper;
|
| -class WebNotificationImage;
|
| -class WebNotificationLabel;
|
| -class WmWindow;
|
| -
|
| -class ASH_EXPORT WebNotificationTray
|
| - : public TrayBackgroundView,
|
| - public views::TrayBubbleView::Delegate,
|
| - public message_center::MessageCenterTrayDelegate,
|
| - public base::SupportsWeakPtr<WebNotificationTray>,
|
| - public ui::SimpleMenuModel::Delegate {
|
| - public:
|
| - WebNotificationTray(WmShelf* shelf,
|
| - WmWindow* status_area_window,
|
| - SystemTray* system_tray);
|
| - ~WebNotificationTray() override;
|
| -
|
| - static void DisableAnimationsForTest(bool disable);
|
| -
|
| - // Sets the height of the system tray bubble (or legacy notification bubble)
|
| - // from the edge of the work area so that the web notification popups don't
|
| - // overlap with the tray. Pass 0 if no bubble is shown.
|
| - void SetTrayBubbleHeight(int height);
|
| -
|
| - // Returns the current tray bubble height or 0 if there is no bubble.
|
| - int tray_bubble_height_for_test() const;
|
| -
|
| - // Returns true if it should block the auto hide behavior of the shelf.
|
| - bool ShouldBlockShelfAutoHide() const;
|
| -
|
| - // Returns true if the message center bubble is visible.
|
| - bool IsMessageCenterBubbleVisible() const;
|
| -
|
| - // Shows the message center bubble.
|
| - void ShowMessageCenterBubble();
|
| -
|
| - // Called when the login status is changed.
|
| - void UpdateAfterLoginStatusChange(LoginStatus login_status);
|
| -
|
| - // Overridden from TrayBackgroundView.
|
| - void SetShelfAlignment(ShelfAlignment alignment) override;
|
| - void AnchorUpdated() override;
|
| - base::string16 GetAccessibleNameForTray() override;
|
| - void HideBubbleWithView(const views::TrayBubbleView* bubble_view) override;
|
| - void ClickedOutsideBubble() override;
|
| -
|
| - // Overridden from ActionableView.
|
| - bool PerformAction(const ui::Event& event) override;
|
| -
|
| - // Overridden from views::TrayBubbleView::Delegate.
|
| - void BubbleViewDestroyed() override;
|
| - void OnMouseEnteredView() override;
|
| - void OnMouseExitedView() override;
|
| - base::string16 GetAccessibleNameForBubble() override;
|
| - void OnBeforeBubbleWidgetInit(
|
| - views::Widget* anchor_widget,
|
| - views::Widget* bubble_widget,
|
| - views::Widget::InitParams* params) const override;
|
| - void HideBubble(const views::TrayBubbleView* bubble_view) override;
|
| -
|
| - // Overridden from MessageCenterTrayDelegate.
|
| - void OnMessageCenterTrayChanged() override;
|
| - bool ShowMessageCenter() override;
|
| - void HideMessageCenter() override;
|
| - bool ShowPopups() override;
|
| - void HidePopups() override;
|
| - bool ShowNotifierSettings() override;
|
| - bool IsContextMenuEnabled() const override;
|
| - message_center::MessageCenterTray* GetMessageCenterTray() override;
|
| -
|
| - // Overridden from ui::SimpleMenuModel::Delegate.
|
| - bool IsCommandIdChecked(int command_id) const override;
|
| - bool IsCommandIdEnabled(int command_id) const override;
|
| - void ExecuteCommand(int command_id, int event_flags) override;
|
| -
|
| - message_center::MessageCenter* message_center() const;
|
| -
|
| - private:
|
| - friend class WebNotificationTrayTest;
|
| -
|
| - FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest, WebNotifications);
|
| - FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest, WebNotificationPopupBubble);
|
| - FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest,
|
| - ManyMessageCenterNotifications);
|
| - FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest, ManyPopupNotifications);
|
| - FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest, PopupShownOnBothDisplays);
|
| - FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest, PopupAndSystemTray);
|
| - FRIEND_TEST_ALL_PREFIXES(WebNotificationTrayTest, PopupAndAutoHideShelf);
|
| -
|
| - void UpdateTrayContent();
|
| -
|
| - // The actual process to show the message center. Set |show_settings| to true
|
| - // if the message center should be initialized with the settings visible.
|
| - // Returns true if the center is successfully created.
|
| - bool ShowMessageCenterInternal(bool show_settings);
|
| -
|
| - // Queries login status and the status area widget to determine visibility of
|
| - // the message center.
|
| - bool ShouldShowMessageCenter();
|
| -
|
| - // Returns true if it should show the quiet mode menu.
|
| - bool ShouldShowQuietModeMenu(const ui::Event& event);
|
| -
|
| - // Shows the quiet mode menu.
|
| - void ShowQuietModeMenu(const ui::Event& event);
|
| -
|
| - // Creates the menu model for quiet mode and returns it.
|
| - ui::MenuModel* CreateQuietModeMenu();
|
| -
|
| - WebNotificationBubbleWrapper* message_center_bubble() const {
|
| - return message_center_bubble_.get();
|
| - }
|
| -
|
| - // Returns true if any user is logged in and the system is not at the screen
|
| - // for adding a secondary user.
|
| - bool IsLoggedIn() const;
|
| -
|
| - // Testing accessors.
|
| - bool IsPopupVisible() const;
|
| - message_center::MessageCenterBubble* GetMessageCenterBubbleForTest();
|
| -
|
| - WmWindow* status_area_window_;
|
| - SystemTray* system_tray_;
|
| - std::unique_ptr<message_center::MessageCenterTray> message_center_tray_;
|
| - std::unique_ptr<WebNotificationBubbleWrapper> message_center_bubble_;
|
| - std::unique_ptr<message_center::MessagePopupCollection> popup_collection_;
|
| - std::unique_ptr<WebNotificationImage> bell_icon_;
|
| - std::unique_ptr<WebNotificationLabel> counter_;
|
| -
|
| - scoped_refptr<gfx::AnimationContainer> animation_container_ =
|
| - new gfx::AnimationContainer();
|
| -
|
| - std::unordered_map<std::string, WebNotificationImage*> visible_small_icons_;
|
| -
|
| - bool show_message_center_on_unlock_;
|
| -
|
| - bool should_update_tray_content_;
|
| -
|
| - // True when the shelf auto hide behavior has to be blocked. Previously
|
| - // this was done by checking |message_center_bubble_| but actually
|
| - // the check can be called when creating this object, so it would cause
|
| - // flickers of the shelf from hidden to shown. See: crbug.com/181213
|
| - bool should_block_shelf_auto_hide_;
|
| -
|
| - std::unique_ptr<AshPopupAlignmentDelegate> popup_alignment_delegate_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(WebNotificationTray);
|
| -};
|
| -
|
| -} // namespace ash
|
| -
|
| -#endif // ASH_COMMON_SYSTEM_WEB_NOTIFICATION_WEB_NOTIFICATION_TRAY_H_
|
|
|