// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ASH_HOST_ASH_WINDOW_TREE_HOST_X11_H_ #define ASH_HOST_ASH_WINDOW_TREE_HOST_X11_H_ #include "ash/ash_export.h" #include "ash/host/ash_window_tree_host.h" #include "ash/host/transformer_helper.h" #include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "ui/aura/env_observer.h" #include "ui/aura/window_tree_host_x11.h" namespace ash { class RootWindowTransformer; class MouseCursorEventFilter; class ASH_EXPORT AshWindowTreeHostX11 : public AshWindowTreeHost, public aura::WindowTreeHostX11, public aura::EnvObserver { public: explicit AshWindowTreeHostX11(const gfx::Rect& initial_bounds); ~AshWindowTreeHostX11() override; private: // AshWindowTreeHost: void ToggleFullScreen() override; bool ConfineCursorToRootWindow() override; void UnConfineCursor() override; void SetRootWindowTransformer( scoped_ptr transformer) override; gfx::Insets GetHostInsets() const override; aura::WindowTreeHost* AsWindowTreeHost() override; void PrepareForShutdown() override; // aura::WindowTreehost: void SetBounds(const gfx::Rect& bounds) override; gfx::Transform GetRootTransform() const override; void SetRootTransform(const gfx::Transform& transform) override; gfx::Transform GetInverseRootTransform() const override; void UpdateRootWindowSize(const gfx::Size& host_size) override; void OnCursorVisibilityChangedNative(bool show) override; // aura::WindowTreeHostX11: void OnConfigureNotify() override; bool CanDispatchEvent(const ui::PlatformEvent& event) override; void TranslateAndDispatchLocatedEvent(ui::LocatedEvent* event) override; // EnvObserver overrides. void OnWindowInitialized(aura::Window* window) override; void OnHostInitialized(aura::WindowTreeHost* host) override; // ui::internal::InputMethodDelegate: ui::EventDispatchDetails DispatchKeyEventPostIME( ui::KeyEvent* event) override; #if defined(OS_CHROMEOS) // Set the CrOS touchpad "tap paused" property. It is used to temporarily // turn off the Tap-to-click feature when the mouse pointer is invisible. void SetCrOSTapPaused(bool state); #endif scoped_ptr pointer_barriers_; TransformerHelper transformer_helper_; DISALLOW_COPY_AND_ASSIGN(AshWindowTreeHostX11); }; } // namespace ash #endif // ASH_HOST_ASH_WINDOW_TREE_HOST_X11_H_