15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ASH_SHELL_OBSERVER_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ASH_SHELL_OBSERVER_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/ash_export.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/system/user/login_status.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace aura {
121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)class Window;
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ASH_EXPORT ShellObserver {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Invoked after the screen's work area insets changes.
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void OnDisplayWorkAreaInsetsChanged() {}
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Invoked when the user logs in.
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void OnLoginStateChanged(user::LoginStatus status) {}
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Invoked when the application is exiting.
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void OnAppTerminating() {}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Invoked when the screen is locked (after the lock window is visible) or
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // unlocked.
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void OnLockStateChanged(bool locked) {}
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  // Invoked after a non-primary root window is created.
33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  virtual void OnRootWindowAdded(aura::Window* root_window) {}
34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  // Invoked after the shelf has been created for |root_window|.
360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual void OnShelfCreatedForRootWindow(aura::Window* root_window) {}
370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Invoked when the shelf alignment in |root_window| is changed.
391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  virtual void OnShelfAlignmentChanged(aura::Window* root_window) {}
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  // Invoked when the projection touch HUD is toggled.
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual void OnTouchHudProjectionToggled(bool enabled) {}
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // Invoked when entering or exiting fullscreen mode in |root_window|.
454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual void OnFullscreenStateChanged(bool is_fullscreen,
461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                        aura::Window* root_window) {}
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Called when the overview mode is about to be started (before the windows
49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // get re-arranged).
50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual void OnOverviewModeStarting() {}
51a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
52a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Called before the overview mode is ending (before the windows get arranged
53a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // to their final position).
54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual void OnOverviewModeEnding() {}
55a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
56a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Called when the always maximize mode has started. Windows might still
57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // animate though.
58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual void OnMaximizeModeStarted() {}
59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
60a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Called when the always maximize mode has ended. Windows may still be
61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // animating but have been restored.
62a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual void OnMaximizeModeEnded() {}
63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected:
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~ShellObserver() {}
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // ASH_SHELL_OBSERVER_H_
71