1a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ui/wm/test/wm_test_helper.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/aura/client/default_capture_client.h" 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "ui/aura/env.h" 98bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "ui/aura/test/test_focus_client.h" 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/aura/window.h" 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/wm/core/compound_event_filter.h" 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "ui/wm/core/default_activation_client.h" 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/wm/core/input_method_event_filter.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace wm { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)WMTestHelper::WMTestHelper(const gfx::Size& default_window_size, 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ui::ContextFactory* context_factory) { 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) aura::Env::CreateInstance(true); 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) aura::Env::GetInstance()->set_context_factory(context_factory); 21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) host_.reset(aura::WindowTreeHost::Create(gfx::Rect(default_window_size))); 22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) host_->InitHost(); 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) aura::client::SetWindowTreeClient(host_->window(), this); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) focus_client_.reset(new aura::test::TestFocusClient); 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) aura::client::SetFocusClient(host_->window(), focus_client_.get()); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch root_window_event_filter_.reset(new wm::CompoundEventFilter); 290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch host_->window()->AddPreTargetHandler(root_window_event_filter_.get()); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) input_method_filter_.reset(new wm::InputMethodEventFilter( 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) host_->GetAcceleratedWidget())); 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) input_method_filter_->SetInputMethodPropertyInRootWindow(host_->window()); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) root_window_event_filter_->AddHandler(input_method_filter_.get()); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu new wm::DefaultActivationClient(host_->window()); 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) capture_client_.reset( 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) new aura::client::DefaultCaptureClient(host_->window())); 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)WMTestHelper::~WMTestHelper() { 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) root_window_event_filter_->RemoveHandler(input_method_filter_.get()); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)aura::Window* WMTestHelper::GetDefaultParent(aura::Window* context, 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) aura::Window* window, 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const gfx::Rect& bounds) { 49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return host_->window(); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace wm 53