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#include "ash/host/ash_window_tree_host.h" 6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ash/host/ash_window_tree_host_init_params.h" 8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/host/root_window_transformer.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ash/host/transformer_helper.h" 10a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "base/command_line.h" 11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ui/aura/window_tree_host_ozone.h" 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ui/gfx/geometry/insets.h" 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/gfx/transform.h" 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace ash { 16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace { 17a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass AshWindowTreeHostOzone : public AshWindowTreeHost, 19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public aura::WindowTreeHostOzone { 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public: 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) explicit AshWindowTreeHostOzone(const gfx::Rect& initial_bounds); 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual ~AshWindowTreeHostOzone(); 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private: 25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // AshWindowTreeHost: 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void ToggleFullScreen() OVERRIDE; 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool ConfineCursorToRootWindow() OVERRIDE; 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void UnConfineCursor() OVERRIDE; 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void SetRootWindowTransformer( 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scoped_ptr<RootWindowTransformer> transformer) OVERRIDE; 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual gfx::Insets GetHostInsets() const OVERRIDE; 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual aura::WindowTreeHost* AsWindowTreeHost() OVERRIDE; 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void SetRootTransform(const gfx::Transform& transform) OVERRIDE; 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual gfx::Transform GetRootTransform() const OVERRIDE; 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual gfx::Transform GetInverseRootTransform() const OVERRIDE; 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void UpdateRootWindowSize(const gfx::Size& host_size) OVERRIDE; 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TransformerHelper transformer_helper_; 39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch DISALLOW_COPY_AND_ASSIGN(AshWindowTreeHostOzone); 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}; 42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)AshWindowTreeHostOzone::AshWindowTreeHostOzone(const gfx::Rect& initial_bounds) 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) : aura::WindowTreeHostOzone(initial_bounds), 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) transformer_helper_(this) {} 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)AshWindowTreeHostOzone::~AshWindowTreeHostOzone() {} 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AshWindowTreeHostOzone::ToggleFullScreen() { 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NOTIMPLEMENTED(); 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool AshWindowTreeHostOzone::ConfineCursorToRootWindow() { 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return false; 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AshWindowTreeHostOzone::UnConfineCursor() { 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NOTIMPLEMENTED(); 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AshWindowTreeHostOzone::SetRootWindowTransformer( 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scoped_ptr<RootWindowTransformer> transformer) { 63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) transformer_helper_.SetRootWindowTransformer(transformer.Pass()); 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)gfx::Insets AshWindowTreeHostOzone::GetHostInsets() const { 67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return transformer_helper_.GetHostInsets(); 68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)aura::WindowTreeHost* AshWindowTreeHostOzone::AsWindowTreeHost() { 71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return this; 72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AshWindowTreeHostOzone::SetRootTransform(const gfx::Transform& transform) { 755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) transformer_helper_.SetTransform(transform); 76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 77cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 78cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)gfx::Transform AshWindowTreeHostOzone::GetRootTransform() const { 79cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return transformer_helper_.GetTransform(); 80cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 81cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 82cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)gfx::Transform AshWindowTreeHostOzone::GetInverseRootTransform() const { 83cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return transformer_helper_.GetInverseTransform(); 84cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 85cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 86cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AshWindowTreeHostOzone::UpdateRootWindowSize(const gfx::Size& host_size) { 87cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) transformer_helper_.UpdateWindowSize(host_size); 88cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 89cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 90a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace 91a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 92cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)AshWindowTreeHost* AshWindowTreeHost::Create( 93cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const AshWindowTreeHostInitParams& init_params) { 94cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return new AshWindowTreeHostOzone(init_params.initial_bounds); 95a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} 96a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 97a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace ash 98