ash_remote_window_tree_host_win.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_REMOTE_WINDOW_TREE_HOST_WIN_H_ 6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#define ASH_HOST_REMOTE_WINDOW_TREE_HOST_WIN_H_ 7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/ash_export.h" 9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/host/ash_window_tree_host.h" 10a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/host/transformer_helper.h" 11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ui/aura/remote_window_tree_host_win.h" 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace ash { 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass ASH_EXPORT AshRemoteWindowTreeHostWin 16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch : public AshWindowTreeHost, 17a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public aura::RemoteWindowTreeHostWin { 18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public: 19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Creates an instance of AshRemoteWindowTreeHostWin 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // and sets it to RemoteWindowTreeHostWin::SetInstance. 21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch static void Init(); 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Returns the instance created in Init() method above. 24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // This also performs an extra check if the instance is same 25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // one that aura::RemoteWindowTreeHostWin::Instance() returns. 26a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch static AshRemoteWindowTreeHostWin* GetInstance(); 27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private: 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch AshRemoteWindowTreeHostWin(); 30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual ~AshRemoteWindowTreeHostWin(); 31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // AshWindowTreeHost: 33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void ToggleFullScreen() OVERRIDE; 34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual bool ConfineCursorToRootWindow() OVERRIDE; 35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void UnConfineCursor() OVERRIDE; 36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void SetRootWindowTransformer( 37a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch scoped_ptr<RootWindowTransformer> transformer) OVERRIDE; 38a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual aura::WindowTreeHost* AsWindowTreeHost() OVERRIDE; 39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // WindowTreeHostWin: 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual gfx::Transform GetRootTransform() const OVERRIDE; 42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void SetRootTransform(const gfx::Transform& transform) OVERRIDE; 43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual gfx::Transform GetInverseRootTransform() const OVERRIDE; 44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void UpdateRootWindowSize(const gfx::Size& host_size) OVERRIDE; 45a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 46a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch TransformerHelper transformer_helper_; 47a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 48a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch DISALLOW_COPY_AND_ASSIGN(AshRemoteWindowTreeHostWin); 49a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}; 50a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 51a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace ash 52a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 53a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#endif // ASH_HOST_REMOTE_WINDOW_TREE_HOST_WIN_H_ 54