Chromium Code Reviews| Index: apps/shell/browser/shell_desktop_controller.h |
| diff --git a/apps/shell/browser/shell_desktop_controller.h b/apps/shell/browser/shell_desktop_controller.h |
| index f1ba503ebfdf5fe9179f645811317fda8cf6a1d5..29950e205a37677b17eb5466a5dbaee791462540 100644 |
| --- a/apps/shell/browser/shell_desktop_controller.h |
| +++ b/apps/shell/browser/shell_desktop_controller.h |
| @@ -8,8 +8,8 @@ |
| #include "base/basictypes.h" |
| #include "base/compiler_specific.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "ui/aura/client/window_tree_client.h" |
| #include "ui/aura/window_tree_host_observer.h" |
| -#include "ui/gfx/geometry/size.h" |
| #if defined(OS_CHROMEOS) |
| #include "ui/display/chromeos/display_configurator.h" |
| @@ -17,13 +17,22 @@ |
| namespace aura { |
| class TestScreen; |
| +class Window; |
| class WindowTreeHost; |
| +namespace client { |
| +class DefaultCaptureClient; |
| +class FocusClient; |
| +} |
| } |
| namespace content { |
| class BrowserContext; |
| } |
| +namespace gfx { |
| +class Size; |
| +} |
| + |
| #if defined(OS_CHROMEOS) |
| namespace ui { |
| class UserActivityPowerManagerNotifier; |
| @@ -31,9 +40,10 @@ class UserActivityPowerManagerNotifier; |
| #endif |
| namespace wm { |
| +class CompoundEventFilter; |
| class CursorManager; |
| +class InputMethodEventFilter; |
| class UserActivityDetector; |
| -class WMTestHelper; |
| } |
| namespace apps { |
| @@ -41,11 +51,13 @@ namespace apps { |
| class ShellAppWindow; |
| // Handles desktop-related tasks for app_shell. |
| -class ShellDesktopController |
| +class ShellDesktopController : public aura::client::WindowTreeClient, |
| + public aura::WindowTreeHostObserver |
| #if defined(OS_CHROMEOS) |
| - : public ui::DisplayConfigurator::Observer |
| + , |
| + public ui::DisplayConfigurator::Observer |
| #endif |
| - { |
| + { |
| public: |
| ShellDesktopController(); |
| virtual ~ShellDesktopController(); |
| @@ -55,6 +67,13 @@ class ShellDesktopController |
| // we need a singleton somewhere). |
| static ShellDesktopController* instance(); |
| + aura::WindowTreeHost* host() { |
| + return host_.get(); |
| + }; |
|
tfarina
2014/05/30 20:05:51
ouch. no, no need of ; here. No presubmit lint cau
Jun Mukai
2014/05/30 20:13:32
Done.
|
| + |
| + // Creates the window that hosts the app. |
| + void CreateRootWindow(); |
| + |
| // Creates a new app window and adds it to the desktop. The desktop maintains |
| // ownership of the window. |
| ShellAppWindow* CreateAppWindow(content::BrowserContext* context); |
| @@ -62,8 +81,10 @@ class ShellDesktopController |
| // Closes and destroys the app window. |
| void CloseAppWindow(); |
| - // Returns the host for the Aura window tree. |
| - aura::WindowTreeHost* GetWindowTreeHost(); |
| + // Overridden from aura::client::WindowTreeClient: |
| + virtual aura::Window* GetDefaultParent(aura::Window* context, |
| + aura::Window* window, |
| + const gfx::Rect& bounds) OVERRIDE; |
| #if defined(OS_CHROMEOS) |
| // ui::DisplayConfigurator::Observer overrides. |
| @@ -71,10 +92,15 @@ class ShellDesktopController |
| ui::DisplayConfigurator::DisplayState>& displays) OVERRIDE; |
| #endif |
| - private: |
| - // Creates the window that hosts the app. |
| - void CreateRootWindow(); |
| + // aura::WindowTreeHostObserver overrides: |
| + virtual void OnHostCloseRequested(const aura::WindowTreeHost* host) OVERRIDE; |
| + |
| + protected: |
| + // Creates and sets the aura clients and window manager stuff. Subclass may |
| + // initialize different sets of the clients. |
| + virtual void InitWindowManager(); |
| + private: |
| // Closes and destroys the root window hosting the app. |
| void DestroyRootWindow(); |
| @@ -86,11 +112,18 @@ class ShellDesktopController |
| scoped_ptr<ui::DisplayConfigurator> display_configurator_; |
| #endif |
| - // Enable a minimal set of views::corewm to be initialized. |
| - scoped_ptr<wm::WMTestHelper> wm_test_helper_; |
| - |
| scoped_ptr<aura::TestScreen> test_screen_; |
| + scoped_ptr<aura::WindowTreeHost> host_; |
| + |
| + scoped_ptr<wm::CompoundEventFilter> root_window_event_filter_; |
| + |
| + scoped_ptr<aura::client::DefaultCaptureClient> capture_client_; |
| + |
| + scoped_ptr<wm::InputMethodEventFilter> input_method_filter_; |
| + |
| + scoped_ptr<aura::client::FocusClient> focus_client_; |
| + |
| scoped_ptr<wm::CursorManager> cursor_manager_; |
| scoped_ptr<wm::UserActivityDetector> user_activity_detector_; |