Chromium Code Reviews| Index: chrome/browser/ui/views/frame/immersive_mode_controller.h |
| diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller.h b/chrome/browser/ui/views/frame/immersive_mode_controller.h |
| index 8978e7fbbb90b1f67c386115549cba94e9acef3d..26ced2f7489d7ecd787ecec6ba9713ce2310d68d 100644 |
| --- a/chrome/browser/ui/views/frame/immersive_mode_controller.h |
| +++ b/chrome/browser/ui/views/frame/immersive_mode_controller.h |
| @@ -6,6 +6,7 @@ |
| #define CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_H_ |
| #include "base/compiler_specific.h" |
| +#include "base/observer_list.h" |
| class BookmarkBarView; |
| class FullscreenController; |
| @@ -39,6 +40,17 @@ class ImmersiveModeController { |
| ANIMATE_REVEAL_NO |
| }; |
| + class Observer { |
| + public: |
| + virtual ~Observer() {} |
|
sky
2013/06/19 13:32:29
Make this protected.
|
| + |
| + // Called when a reveal of the top-of-window views has been initiated. |
| + virtual void OnImmersiveRevealStarted() {} |
| + |
| + // Called when the immersive mode controller has been destroyed. |
| + virtual void OnImmersiveModeControllerDestroyed() {} |
| + }; |
| + |
| class Delegate { |
| public: |
| // Returns the bookmark bar, or NULL if the window does not support one. |
| @@ -57,7 +69,8 @@ class ImmersiveModeController { |
| virtual ~Delegate() {} |
| }; |
| - virtual ~ImmersiveModeController() {} |
| + ImmersiveModeController(); |
| + virtual ~ImmersiveModeController(); |
| // Must initialize after browser view has a Widget and native window. |
| virtual void Init(Delegate* delegate, |
| @@ -120,6 +133,15 @@ class ImmersiveModeController { |
| // Called by the TopContainerView to indicate that its bounds have changed. |
| virtual void OnTopContainerBoundsChanged() = 0; |
| + |
| + virtual void AddObserver(Observer* observer); |
| + virtual void RemoveObserver(Observer* observer); |
| + |
| + protected: |
| + ObserverList<Observer> observers_; |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(ImmersiveModeController); |
| }; |
| namespace chrome { |