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); set_browser_context(content::BrowserContext * browser_context)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 bool IsMultiAccountEnabled() const OVERRIDE; 42 virtual void PreInit() OVERRIDE; 43 virtual void PreShutdown() OVERRIDE; 44 virtual void Exit() OVERRIDE; 45 virtual keyboard::KeyboardControllerProxy* 46 CreateKeyboardControllerProxy() OVERRIDE; 47 virtual void VirtualKeyboardActivated(bool activated) OVERRIDE; 48 virtual void AddVirtualKeyboardStateObserver( 49 VirtualKeyboardStateObserver* observer) OVERRIDE; 50 virtual void RemoveVirtualKeyboardStateObserver( 51 VirtualKeyboardStateObserver* observer) OVERRIDE; 52 virtual content::BrowserContext* GetActiveBrowserContext() OVERRIDE; 53 virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE; 54 virtual ShelfDelegate* CreateShelfDelegate(ShelfModel* model) OVERRIDE; 55 virtual ash::SystemTrayDelegate* CreateSystemTrayDelegate() OVERRIDE; 56 virtual ash::UserWallpaperDelegate* CreateUserWallpaperDelegate() OVERRIDE; 57 virtual ash::SessionStateDelegate* CreateSessionStateDelegate() OVERRIDE; 58 virtual ash::AccessibilityDelegate* CreateAccessibilityDelegate() OVERRIDE; 59 virtual ash::NewWindowDelegate* CreateNewWindowDelegate() OVERRIDE; 60 virtual ash::MediaDelegate* CreateMediaDelegate() OVERRIDE; 61 virtual ui::MenuModel* CreateContextMenu( 62 aura::Window* root_window, 63 ash::ShelfItemDelegate* item_delegate, 64 ash::ShelfItem* item) OVERRIDE; 65 virtual GPUSupport* CreateGPUSupport() OVERRIDE; 66 virtual base::string16 GetProductName() const OVERRIDE; 67 68 private: 69 // Used to update Launcher. Owned by main. 70 WindowWatcher* watcher_; 71 72 ShelfDelegateImpl* shelf_delegate_; 73 content::BrowserContext* browser_context_; 74 75 DISALLOW_COPY_AND_ASSIGN(ShellDelegateImpl); 76 }; 77 78 } // namespace shell 79 } // namespace ash 80 81 #endif // ASH_SHELL_SHELL_DELEGATE_IMPL_H_ 82