1 // Copyright (c) 2012 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 ASH_SHELL_SHELL_DELEGATE_IMPL_H_ 6 #define ASH_SHELL_SHELL_DELEGATE_IMPL_H_ 7 8 #include <string> 9 10 #include "ash/shell_delegate.h" 11 #include "base/compiler_specific.h" 12 13 namespace content { 14 class BrowserContext; 15 } 16 17 namespace keyboard { 18 class KeyboardControllerProxy; 19 } 20 21 namespace ash { 22 namespace shell { 23 24 class ShelfDelegateImpl; 25 class WindowWatcher; 26 27 class ShellDelegateImpl : public ash::ShellDelegate { 28 public: 29 ShellDelegateImpl(); 30 virtual ~ShellDelegateImpl(); 31 32 void SetWatcher(WindowWatcher* watcher); 33 void set_browser_context(content::BrowserContext* browser_context) { 34 browser_context_ = browser_context; 35 } 36 37 virtual bool IsFirstRunAfterBoot() const OVERRIDE; 38 virtual bool IsIncognitoAllowed() const OVERRIDE; 39 virtual bool IsMultiProfilesEnabled() const OVERRIDE; 40 virtual bool IsRunningInForcedAppMode() const OVERRIDE; 41 virtual void PreInit() OVERRIDE; 42 virtual void Shutdown() OVERRIDE; 43 virtual void Exit() OVERRIDE; 44 virtual keyboard::KeyboardControllerProxy* 45 CreateKeyboardControllerProxy() OVERRIDE; 46 virtual content::BrowserContext* GetActiveBrowserContext() OVERRIDE; 47 virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE; 48 virtual ShelfDelegate* CreateShelfDelegate(ShelfModel* model) OVERRIDE; 49 virtual ash::SystemTrayDelegate* CreateSystemTrayDelegate() OVERRIDE; 50 virtual ash::UserWallpaperDelegate* CreateUserWallpaperDelegate() OVERRIDE; 51 virtual ash::CapsLockDelegate* CreateCapsLockDelegate() OVERRIDE; 52 virtual ash::SessionStateDelegate* CreateSessionStateDelegate() OVERRIDE; 53 virtual ash::AccessibilityDelegate* CreateAccessibilityDelegate() OVERRIDE; 54 virtual ash::NewWindowDelegate* CreateNewWindowDelegate() OVERRIDE; 55 virtual ash::MediaDelegate* CreateMediaDelegate() OVERRIDE; 56 virtual aura::client::UserActionClient* CreateUserActionClient() OVERRIDE; 57 virtual ui::MenuModel* CreateContextMenu( 58 aura::Window* root_window) OVERRIDE; 59 virtual RootWindowHostFactory* CreateRootWindowHostFactory() OVERRIDE; 60 virtual base::string16 GetProductName() const OVERRIDE; 61 62 private: 63 // Used to update Launcher. Owned by main. 64 WindowWatcher* watcher_; 65 66 ShelfDelegateImpl* shelf_delegate_; 67 content::BrowserContext* browser_context_; 68 69 DISALLOW_COPY_AND_ASSIGN(ShellDelegateImpl); 70 }; 71 72 } // namespace shell 73 } // namespace ash 74 75 #endif // ASH_SHELL_SHELL_DELEGATE_IMPL_H_ 76