summaryrefslogtreecommitdiffstats
path: root/ash/wm/workspace/workspace_layout_manager_delegate.h
blob: cdc76c21eca8d3c7960a7ba7f7b5936dc4b6840b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_
#define ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_

#include "ash/wm/wm_types.h"

namespace aura {
class Window;
}

namespace ash {
namespace wm {
class WindowState;
}

// A delegate which can be set to create and control a backdrop which gets
// placed below the top level window.
class WorkspaceLayoutManagerDelegate {
 public:
  WorkspaceLayoutManagerDelegate() {}
  virtual ~WorkspaceLayoutManagerDelegate() {}

  // A window got added to the layout.
  virtual void OnWindowAddedToLayout(aura::Window* child) = 0;

  // A window got removed from the layout.
  virtual void OnWindowRemovedFromLayout(aura::Window* child) = 0;

  // The visibility of a window has changed.
  virtual void OnChildWindowVisibilityChanged(aura::Window* child,
                                              bool visible) = 0;

  // The stacking order of a window has changed.
  virtual void OnWindowStackingChanged(aura::Window* window) = 0;

  // A window state type has changed.
  virtual void OnPostWindowStateTypeChange(wm::WindowState* window_state,
                                           wm::WindowStateType old_type) = 0;

  // The work area insets have changed, altering the total available space.
  virtual void OnDisplayWorkAreaInsetsChanged() = 0;
};

}  // namespace ash

#endif  // ASH_WM_WORKSPACE_WORKSPACE_LAYOUT_MANAGER_DELEGATE_H_