1 // Copyright 2013 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 CONTENT_SHELL_MINIMAL_SHELL_H_ 6 #define CONTENT_SHELL_MINIMAL_SHELL_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "ui/aura/client/stacking_client.h" 11 12 namespace aura { 13 class RootWindow; 14 class Window; 15 namespace client { 16 class DefaultCaptureClient; 17 class FocusClient; 18 } 19 namespace test { 20 class TestActivationClient; 21 } 22 } 23 24 namespace gfx { 25 class Rect; 26 class Size; 27 } 28 29 namespace views { 30 namespace corewm { 31 class CompoundEventFilter; 32 class InputMethodEventFilter; 33 } 34 } 35 36 namespace content { 37 38 // Creates a minimal environment for running the shell. We can't pull in all of 39 // ash here, but we can create attach several of the same things we'd find in 40 // the ash parts of the code. 41 class MinimalShell : public aura::client::StackingClient { 42 public: 43 explicit MinimalShell(const gfx::Size& default_window_size); 44 virtual ~MinimalShell(); 45 46 // Overridden from client::StackingClient: 47 virtual aura::Window* GetDefaultParent(aura::Window* context, 48 aura::Window* window, 49 const gfx::Rect& bounds) OVERRIDE; 50 51 private: 52 scoped_ptr<aura::RootWindow> root_window_; 53 54 // Owned by RootWindow 55 views::corewm::CompoundEventFilter* root_window_event_filter_; 56 57 scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; 58 scoped_ptr<views::corewm::InputMethodEventFilter> input_method_filter_; 59 scoped_ptr<aura::test::TestActivationClient> test_activation_client_; 60 scoped_ptr<aura::client::FocusClient> focus_client_; 61 62 DISALLOW_COPY_AND_ASSIGN(MinimalShell); 63 }; 64 65 } // namespace content; 66 67 #endif // CONTENT_SHELL_MINIMAL_SHELL_H_ 68