Chromium Code Reviews| Index: chrome/browser/ui/toolbar/media_router_action.h |
| diff --git a/chrome/browser/ui/toolbar/media_router_action.h b/chrome/browser/ui/toolbar/media_router_action.h |
| index ace06a32f18e0cdfe7f86ea861e907c9cdadf917..d7a5dba11f65f42406424d260a7bb135ba95f4ea 100644 |
| --- a/chrome/browser/ui/toolbar/media_router_action.h |
| +++ b/chrome/browser/ui/toolbar/media_router_action.h |
| @@ -13,6 +13,7 @@ |
| #include "chrome/browser/ui/toolbar/media_router_contextual_menu.h" |
| #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h" |
| #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" |
| +#include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h" |
| #include "ui/gfx/vector_icons_public.h" |
| class Browser; |
| @@ -28,7 +29,8 @@ class MediaRouterDialogControllerImpl; |
| class MediaRouterAction : public ToolbarActionViewController, |
| public media_router::IssuesObserver, |
| public media_router::MediaRoutesObserver, |
| - public TabStripModelObserver { |
| + public TabStripModelObserver, |
| + public ToolbarActionsBarObserver { |
| public: |
| MediaRouterAction(Browser* browser, ToolbarActionsBar* toolbar_actions_bar); |
| ~MediaRouterAction() override; |
| @@ -69,6 +71,18 @@ class MediaRouterAction : public ToolbarActionViewController, |
| void OnPopupHidden(); |
| void OnPopupShown(); |
| + virtual void UpdateVisibility(); |
| + |
| + // Toggle the "Always show icon" option. |
| + void ToggleVisibilityPreference(); |
| + void SetVisibilityPreference(bool always_show); |
|
msw
2016/07/26 19:59:31
This is only called from ToggleVisibilityPreferenc
takumif
2016/07/28 20:04:10
Done.
|
| + |
| + // ToolbarActionsBarObserver: |
| + void OnToolbarActionsBarAnimationEnded() override; |
| + |
| + protected: |
| + // For accessing from tests |
|
msw
2016/07/26 19:59:31
nit: add a trailing period.
takumif
2016/07/28 20:04:10
Done.
|
| + base::WeakPtr<MediaRouterAction> GetWeakPtr(); |
| private: |
| // Called when a new browser window is opened, the user switches tabs in the |
| @@ -92,6 +106,11 @@ class MediaRouterAction : public ToolbarActionViewController, |
| // updates |current_icon_|. |
| void MaybeUpdateIcon(); |
| + // Returns true if the "Always show icon" option is unchecked, and the icon |
| + // gets hidden whenever there are no local media routes and the popup is |
| + // closed. |
| + bool IsEphemeral(); |
|
msw
2016/07/26 19:59:31
nit: consider "ShouldAlwaysShowIcon", "GetAlwaysSh
takumif
2016/07/28 20:04:10
Done.
|
| + |
| gfx::VectorIconId GetCurrentIcon() const; |
| // The current icon to show. This is updated based on the current issues and |
| @@ -117,6 +136,8 @@ class MediaRouterAction : public ToolbarActionViewController, |
| ScopedObserver<TabStripModel, TabStripModelObserver> |
| tab_strip_model_observer_; |
| + ScopedObserver<ToolbarActionsBar, ToolbarActionsBarObserver> |
| + toolbar_actions_bar_observer_; |
| base::WeakPtrFactory<MediaRouterAction> weak_ptr_factory_; |