ash_window_tree_host.h revision a02191e04bc25c4935f804f2c080ae28663d096d
1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// found in the LICENSE file. 4a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 5a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#ifndef ASH_HOST_ASH_WINDOW_TREE_HOST_H_ 6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#define ASH_HOST_ASH_WINDOW_TREE_HOST_H_ 7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/ash_export.h" 9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "base/memory/scoped_ptr.h" 10a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace aura { 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass Window; 13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass WindowTreeHost; 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace gfx { 17a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass Rect; 18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} 19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace ash { 21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass RootWindowTransformer; 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass ASH_EXPORT AshWindowTreeHost { 24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public: 25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Creates a new AshWindowTreeHost. The caller owns the returned value. 26a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch static AshWindowTreeHost* Create(const gfx::Rect& initial_bounds); 27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual ~AshWindowTreeHost() {} 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Toggles the host's full screen state. 31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void ToggleFullScreen() = 0; 32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Clips the cursor to the bounds of the root window until UnConfineCursor(). 34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // We would like to be able to confine the cursor to that window. However, 35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // currently, we do not have such functionality in X. So we just confine 36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // to the root window. This is ok because this option is currently only 37a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // being used in fullscreen mode, so root_window bounds = window bounds. 38a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual bool ConfineCursorToRootWindow() = 0; 39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void UnConfineCursor() = 0; 40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void SetRootWindowTransformer( 42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch scoped_ptr<RootWindowTransformer> transformer) = 0; 43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual aura::WindowTreeHost* AsWindowTreeHost() = 0; 45a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}; 46a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 47a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace ash 48a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 49a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#endif // ASH_HOST_ASH_WINDOW_TREE_HOST_H_ 50