| // Copyright 2012 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef ASH_SHELL_OBSERVER_H_ | 
 | #define ASH_SHELL_OBSERVER_H_ | 
 |  | 
 | #include "ash/ash_export.h" | 
 | #include "ash/login_status.h" | 
 | #include "ash/public/cpp/shelf_types.h" | 
 |  | 
 | namespace aura { | 
 | class Window; | 
 | } | 
 |  | 
 | namespace ash { | 
 |  | 
 | class ASH_EXPORT ShellObserver { | 
 |  public: | 
 |   // Called when a casting session is started or stopped. | 
 |   virtual void OnCastingSessionStartedOrStopped(bool started) {} | 
 |  | 
 |   // Invoked after a non-primary root window is created. | 
 |   virtual void OnRootWindowAdded(aura::Window* root_window) {} | 
 |  | 
 |   // Invoked when a root window is about to be shutdown. | 
 |   virtual void OnRootWindowWillShutdown(aura::Window* root_window) {} | 
 |  | 
 |   // Invoked when the shelf alignment in |root_window| is changed. | 
 |   virtual void OnShelfAlignmentChanged(aura::Window* root_window, | 
 |                                        ShelfAlignment old_alignment) {} | 
 |  | 
 |   // Invoked when user work area insets (accessibility panel, docked magnifier, | 
 |   // keyboard) in |root_window| changed. | 
 |   // This notification is not fired when shelf bounds changed. | 
 |   virtual void OnUserWorkAreaInsetsChanged(aura::Window* root_window) {} | 
 |  | 
 |   // Invoked when entering or exiting fullscreen mode in |container|. | 
 |   // |container| is always the active desk container. | 
 |   virtual void OnFullscreenStateChanged(bool is_fullscreen, | 
 |                                         aura::Window* container) {} | 
 |  | 
 |   // Invoked when |pinned_window| enter or exit pinned mode. | 
 |   virtual void OnPinnedStateChanged(aura::Window* pinned_window) {} | 
 |  | 
 |   virtual void OnDisplayForNewWindowsChanged() {} | 
 |  | 
 |   // Called when dictation is activated. | 
 |   virtual void OnDictationStarted() {} | 
 |  | 
 |   // Called when dicatation is ended. | 
 |   virtual void OnDictationEnded() {} | 
 |  | 
 |   // Called at the end of Shell::Init. | 
 |   virtual void OnShellInitialized() {} | 
 |  | 
 |   // Called at the beginning of ~Shell. | 
 |   virtual void OnShellDestroying() {} | 
 |  | 
 |   // Called near the end of ~Shell. Shell::Get() still returns the Shell, but | 
 |   // most of Shell's state has been deleted. | 
 |   virtual void OnShellDestroyed() {} | 
 |  | 
 |  protected: | 
 |   virtual ~ShellObserver() {} | 
 | }; | 
 |  | 
 | }  // namespace ash | 
 |  | 
 | #endif  // ASH_SHELL_OBSERVER_H_ |