Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / mojo / services / view_manager / root_view_manager.h
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.
4
5 #ifndef MOJO_SERVICES_VIEW_MANAGER_ROOT_VIEW_MANAGER_H_
6 #define MOJO_SERVICES_VIEW_MANAGER_ROOT_VIEW_MANAGER_H_
7
8 #include <map>
9
10 #include "base/basictypes.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "mojo/public/cpp/gles2/gles2.h"
13 #include "mojo/services/view_manager/view_manager_export.h"
14
15 namespace aura {
16 namespace client {
17 class WindowTreeClient;
18 }
19 class WindowTreeHost;
20 }
21
22 namespace gfx {
23 class Screen;
24 }
25
26 namespace mojo {
27
28 class Shell;
29
30 namespace services {
31 namespace view_manager {
32
33 class RootNodeManager;
34
35 // RootViewManager binds the root node to an actual display.
36 class MOJO_VIEW_MANAGER_EXPORT RootViewManager {
37  public:
38   RootViewManager(Shell* shell, RootNodeManager* root_node);
39   virtual ~RootViewManager();
40
41   // See description above field for details.
42   bool in_setup() const { return in_setup_; }
43
44  private:
45   void OnCompositorCreated();
46
47   Shell* shell_;
48   RootNodeManager* root_node_manager_;
49
50   GLES2Initializer gles_initializer_;
51
52   // Returns true if adding the root node's window to |window_tree_host_|.
53   bool in_setup_;
54
55   scoped_ptr<gfx::Screen> screen_;
56   scoped_ptr<aura::WindowTreeHost> window_tree_host_;
57   scoped_ptr<aura::client::WindowTreeClient> window_tree_client_;
58
59   DISALLOW_COPY_AND_ASSIGN(RootViewManager);
60 };
61
62 }  // namespace view_manager
63 }  // namespace services
64 }  // namespace mojo
65
66 #endif  // MOJO_SERVICES_VIEW_MANAGER_ROOT_VIEW_MANAGER_H_