1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ASH_SHELL_OBSERVER_H_
6#define ASH_SHELL_OBSERVER_H_
7
8#include "ash/ash_export.h"
9#include "ash/system/user/login_status.h"
10
11namespace aura {
12class Window;
13}
14
15namespace ash {
16
17class ASH_EXPORT ShellObserver {
18 public:
19  // Invoked after the screen's work area insets changes.
20  virtual void OnDisplayWorkAreaInsetsChanged() {}
21
22  // Invoked when the user logs in.
23  virtual void OnLoginStateChanged(user::LoginStatus status) {}
24
25  // Invoked when the application is exiting.
26  virtual void OnAppTerminating() {}
27
28  // Invoked when the screen is locked (after the lock window is visible) or
29  // unlocked.
30  virtual void OnLockStateChanged(bool locked) {}
31
32  // Invoked after a non-primary root window is created.
33  virtual void OnRootWindowAdded(aura::Window* root_window) {}
34
35  // Invoked after the shelf has been created for |root_window|.
36  virtual void OnShelfCreatedForRootWindow(aura::Window* root_window) {}
37
38  // Invoked when the shelf alignment in |root_window| is changed.
39  virtual void OnShelfAlignmentChanged(aura::Window* root_window) {}
40
41  // Invoked when the projection touch HUD is toggled.
42  virtual void OnTouchHudProjectionToggled(bool enabled) {}
43
44  // Invoked when entering or exiting fullscreen mode in |root_window|.
45  virtual void OnFullscreenStateChanged(bool is_fullscreen,
46                                        aura::Window* root_window) {}
47
48  // Called when the overview mode is about to be started (before the windows
49  // get re-arranged).
50  virtual void OnOverviewModeStarting() {}
51
52  // Called before the overview mode is ending (before the windows get arranged
53  // to their final position).
54  virtual void OnOverviewModeEnding() {}
55
56  // Called when the always maximize mode has started. Windows might still
57  // animate though.
58  virtual void OnMaximizeModeStarted() {}
59
60  // Called when the always maximize mode has ended. Windows may still be
61  // animating but have been restored.
62  virtual void OnMaximizeModeEnded() {}
63
64 protected:
65  virtual ~ShellObserver() {}
66};
67
68}  // namespace ash
69
70#endif  // ASH_SHELL_OBSERVER_H_
71