Home | History | Annotate | Download | only in shell
      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