transient_window_stacking_client.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1// Copyright (c) 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 UI_WM_CORE_TRANSIENT_WINDOW_STACKING_CLIENT_H_
6#define UI_WM_CORE_TRANSIENT_WINDOW_STACKING_CLIENT_H_
7
8#include "ui/aura/client/window_stacking_client.h"
9#include "ui/wm/core/wm_core_export.h"
10
11namespace wm {
12
13class TransientWindowManager;
14
15class WM_CORE_EXPORT TransientWindowStackingClient
16    : public aura::client::WindowStackingClient {
17 public:
18  TransientWindowStackingClient();
19  virtual ~TransientWindowStackingClient();
20
21  // WindowStackingClient:
22  virtual bool AdjustStacking(aura::Window** child,
23                              aura::Window** target,
24                              aura::Window::StackDirection* direction) OVERRIDE;
25
26 private:
27  // Purely for DCHECKs.
28  friend class TransientWindowManager;
29
30  static TransientWindowStackingClient* instance_;
31
32  DISALLOW_COPY_AND_ASSIGN(TransientWindowStackingClient);
33};
34
35}  // namespace wm
36
37#endif  // UI_WM_CORE_TRANSIENT_WINDOW_STACKING_CLIENT_H_
38