1 // Copyright 2014 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.
5 #ifndef ASH_HOST_ASH_WINDOW_TREE_HOST_H_
6 #define ASH_HOST_ASH_WINDOW_TREE_HOST_H_
8 #include "ash/ash_export.h"
9 #include "base/memory/scoped_ptr.h"
21 class RootWindowTransformer;
23 class ASH_EXPORT AshWindowTreeHost {
25 // Creates a new AshWindowTreeHost. The caller owns the returned value.
26 static AshWindowTreeHost* Create(const gfx::Rect& initial_bounds);
28 virtual ~AshWindowTreeHost() {}
30 // Toggles the host's full screen state.
31 virtual void ToggleFullScreen() = 0;
33 // Clips the cursor to the bounds of the root window until UnConfineCursor().
34 // We would like to be able to confine the cursor to that window. However,
35 // currently, we do not have such functionality in X. So we just confine
36 // to the root window. This is ok because this option is currently only
37 // being used in fullscreen mode, so root_window bounds = window bounds.
38 virtual bool ConfineCursorToRootWindow() = 0;
39 virtual void UnConfineCursor() = 0;
41 virtual void SetRootWindowTransformer(
42 scoped_ptr<RootWindowTransformer> transformer) = 0;
44 virtual aura::WindowTreeHost* AsWindowTreeHost() = 0;
49 #endif // ASH_HOST_ASH_WINDOW_TREE_HOST_H_