• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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_WM_WINDOW_STATE_OBSERVER_H_
6 #define ASH_WM_WINDOW_STATE_OBSERVER_H_
7 
8 #include "ash/ash_export.h"
9 #include "ash/wm/wm_types.h"
10 
11 namespace ash {
12 namespace wm {
13 class WindowState;
14 
15 class ASH_EXPORT WindowStateObserver {
16  public:
17   // Following observer methods are different from kWindowShowStatekey
18   // property change as they will be invoked when the window
19   // gets left/right maximized, and auto positioned. |old_type| is the value
20   // before the change.
21 
22   // Called after the window's state type is set to new type, but before
23   // the window's bounds has been updated for the new type.
24   // This is used to update the shell state such as work area so
25   // that the window can use the correct environment to update its bounds.
26   // TODO(oshima): Remove this once docked windows has its own state.
OnPreWindowStateTypeChange(WindowState * window_state,WindowStateType old_type)27   virtual void OnPreWindowStateTypeChange(WindowState* window_state,
28                                           WindowStateType old_type) {}
29 
30   // Called after the window's state has been updated.
31   // This is used to update the shell state that depends on the updated
32   // window bounds, such as shelf visibility.
OnPostWindowStateTypeChange(WindowState * window_state,WindowStateType old_type)33   virtual void OnPostWindowStateTypeChange(WindowState* window_state,
34                                            WindowStateType old_type) {}
35 };
36 
37 }  // namespace wm
38 }  // namespace ash
39 
40 #endif  // ASH_WM_WINDOW_STATE_OBSERVER_H_
41