window_state_observer.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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
11namespace ash {
12namespace wm {
13class WindowState;
14
15class 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 show 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.
27  virtual void OnPreWindowShowTypeChange(WindowState* window_state,
28                                         WindowShowType old_type) {}
29
30  // Called after the window's state has been changed for the new show type.
31  // This is used to update the shell state that depends on the update
32  // window bounds, such as shelf visibility.
33  virtual void OnPostWindowShowTypeChange(WindowState* window_state,
34                                          WindowShowType old_type) {}
35};
36
37}  // namespace wm
38}  // namespace ash
39
40#endif  // ASH_WM_WINDOW_STATE_OBSERVER_H_
41