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