blob: ae90555d2ba275164c5778cb47965e4e0ba65bb2 [file] [log] [blame]
[email protected]e871f1a02012-01-18 20:03:461// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]6377a002011-11-10 20:26:472// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]75859672011-12-23 01:04:565#ifndef ASH_WM_STACKING_CONTROLLER_H_
6#define ASH_WM_STACKING_CONTROLLER_H_
[email protected]6377a002011-11-10 20:26:477
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
[email protected]488b42042011-11-15 00:20:1810#include "base/memory/scoped_ptr.h"
[email protected]6377a002011-11-10 20:26:4711#include "ui/aura/client/stacking_client.h"
12
[email protected]f059c6942012-07-21 14:27:5713namespace aura{
14class RootWindow;
15}
16
[email protected]55f593352011-12-24 05:42:4617namespace ash {
[email protected]6377a002011-11-10 20:26:4718namespace internal {
19
[email protected]488b42042011-11-15 00:20:1820class AlwaysOnTopController;
21
[email protected]ee1e1a22011-12-15 01:51:1022class StackingController : public aura::client::StackingClient {
[email protected]6377a002011-11-10 20:26:4723 public:
24 StackingController();
25 virtual ~StackingController();
26
[email protected]ee1e1a22011-12-15 01:51:1027 // Overridden from aura::client::StackingClient:
[email protected]20c59762012-06-23 01:10:2428 virtual aura::Window* GetDefaultParent(aura::Window* window,
29 const gfx::Rect& bounds) OVERRIDE;
[email protected]6377a002011-11-10 20:26:4730
31 private:
[email protected]e871f1a02012-01-18 20:03:4632 // Returns corresponding system modal container for a modal window.
33 // If screen lock is not active, all system modal windows are placed into the
[email protected]55bdb502011-11-29 20:26:2534 // normal modal container.
35 // Otherwise those that originate from LockScreen container and above are
36 // placed in the screen lock modal container.
[email protected]f059c6942012-07-21 14:27:5737 aura::Window* GetSystemModalContainer(aura::RootWindow* root,
38 aura::Window* window) const;
[email protected]55bdb502011-11-29 20:26:2539
[email protected]f059c6942012-07-21 14:27:5740 // Returns the AlwaysOnTopController of the |root_window|.
[email protected]20c59762012-06-23 01:10:2441 internal::AlwaysOnTopController* GetAlwaysOnTopController(
[email protected]f059c6942012-07-21 14:27:5742 aura::RootWindow* root_window);
[email protected]488b42042011-11-15 00:20:1843
[email protected]6377a002011-11-10 20:26:4744 DISALLOW_COPY_AND_ASSIGN(StackingController);
45};
46
47} // namespace internal
[email protected]55f593352011-12-24 05:42:4648} // namespace ash
[email protected]6377a002011-11-10 20:26:4749
[email protected]75859672011-12-23 01:04:5650#endif // ASH_WM_STACKING_CONTROLLER_H_