Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ash / host / ash_window_tree_host_x11.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 ASH_HOST_ASH_WINDOW_TREE_HOST_X11_H_
6 #define ASH_HOST_ASH_WINDOW_TREE_HOST_X11_H_
7
8 #include "ash/ash_export.h"
9 #include "ash/host/ash_window_tree_host.h"
10 #include "ash/host/transformer_helper.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "ui/aura/env_observer.h"
13 #include "ui/aura/window_tree_host_x11.h"
14
15 namespace ash {
16 class RootWindowTransformer;
17 class MouseCursorEventFilter;
18
19 class ASH_EXPORT AshWindowTreeHostX11 : public AshWindowTreeHost,
20                                         public aura::WindowTreeHostX11,
21                                         public aura::EnvObserver {
22  public:
23   explicit AshWindowTreeHostX11(const gfx::Rect& initial_bounds);
24   ~AshWindowTreeHostX11() override;
25
26  private:
27   // AshWindowTreeHost:
28   void ToggleFullScreen() override;
29   bool ConfineCursorToRootWindow() override;
30   void UnConfineCursor() override;
31   void SetRootWindowTransformer(
32       scoped_ptr<RootWindowTransformer> transformer) override;
33   gfx::Insets GetHostInsets() const override;
34   aura::WindowTreeHost* AsWindowTreeHost() override;
35   void UpdateDisplayID(int64 id1, int64 id2) override;
36   void PrepareForShutdown() override;
37
38   // aura::WindowTreehost:
39   void SetBounds(const gfx::Rect& bounds) override;
40   gfx::Transform GetRootTransform() const override;
41   void SetRootTransform(const gfx::Transform& transform) override;
42   gfx::Transform GetInverseRootTransform() const override;
43   void UpdateRootWindowSize(const gfx::Size& host_size) override;
44   void OnCursorVisibilityChangedNative(bool show) override;
45
46   // aura::WindowTreeHostX11:
47   void OnConfigureNotify() override;
48   bool CanDispatchEvent(const ui::PlatformEvent& event) override;
49   void TranslateAndDispatchLocatedEvent(ui::LocatedEvent* event) override;
50
51   // EnvObserver overrides.
52   void OnWindowInitialized(aura::Window* window) override;
53   void OnHostInitialized(aura::WindowTreeHost* host) override;
54
55 #if defined(OS_CHROMEOS)
56   // Set the CrOS touchpad "tap paused" property. It is used to temporarily
57   // turn off the Tap-to-click feature when the mouse pointer is invisible.
58   void SetCrOSTapPaused(bool state);
59 #endif
60
61   scoped_ptr<XID[]> pointer_barriers_;
62
63   TransformerHelper transformer_helper_;
64
65   // The display IDs associated with this root window.
66   // In single monitor or extended mode dual monitor case, the root window
67   // is associated with one display.
68   // In mirror mode dual monitors case, the root window is associated with
69   // both displays.
70   std::pair<int64, int64> display_ids_;
71
72   DISALLOW_COPY_AND_ASSIGN(AshWindowTreeHostX11);
73 };
74
75 }  // namespace ash
76
77 #endif  // ASH_HOST_ASH_WINDOW_TREE_HOST_X11_H_