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.
5 #ifndef ASH_SHELL_SHELL_DELEGATE_IMPL_H_
6 #define ASH_SHELL_SHELL_DELEGATE_IMPL_H_
10 #include "ash/shell_delegate.h"
11 #include "base/compiler_specific.h"
18 class KeyboardControllerProxy
;
24 class ShelfDelegateImpl
;
27 class ShellDelegateImpl
: public ash::ShellDelegate
{
30 ~ShellDelegateImpl() override
;
32 void SetWatcher(WindowWatcher
* watcher
);
33 void set_browser_context(content::BrowserContext
* browser_context
) {
34 browser_context_
= browser_context
;
37 bool IsFirstRunAfterBoot() const override
;
38 bool IsIncognitoAllowed() const override
;
39 bool IsMultiProfilesEnabled() const override
;
40 bool IsRunningInForcedAppMode() const override
;
41 bool IsMultiAccountEnabled() const override
;
42 bool IsForceMaximizeOnFirstRun() const override
;
43 void PreInit() override
;
44 void PreShutdown() override
;
46 keyboard::KeyboardControllerProxy
* CreateKeyboardControllerProxy() override
;
47 void VirtualKeyboardActivated(bool activated
) override
;
48 void AddVirtualKeyboardStateObserver(
49 VirtualKeyboardStateObserver
* observer
) override
;
50 void RemoveVirtualKeyboardStateObserver(
51 VirtualKeyboardStateObserver
* observer
) override
;
52 content::BrowserContext
* GetActiveBrowserContext() override
;
53 app_list::AppListViewDelegate
* GetAppListViewDelegate() override
;
54 ShelfDelegate
* CreateShelfDelegate(ShelfModel
* model
) override
;
55 ash::SystemTrayDelegate
* CreateSystemTrayDelegate() override
;
56 ash::UserWallpaperDelegate
* CreateUserWallpaperDelegate() override
;
57 ash::SessionStateDelegate
* CreateSessionStateDelegate() override
;
58 ash::AccessibilityDelegate
* CreateAccessibilityDelegate() override
;
59 ash::NewWindowDelegate
* CreateNewWindowDelegate() override
;
60 ash::MediaDelegate
* CreateMediaDelegate() override
;
61 ui::MenuModel
* CreateContextMenu(aura::Window
* root_window
,
62 ash::ShelfItemDelegate
* item_delegate
,
63 ash::ShelfItem
* item
) override
;
64 GPUSupport
* CreateGPUSupport() override
;
65 base::string16
GetProductName() const override
;
68 // Used to update Launcher. Owned by main.
69 WindowWatcher
* watcher_
;
71 ShelfDelegateImpl
* shelf_delegate_
;
72 content::BrowserContext
* browser_context_
;
73 scoped_ptr
<app_list::AppListViewDelegate
> app_list_view_delegate_
;
75 DISALLOW_COPY_AND_ASSIGN(ShellDelegateImpl
);
81 #endif // ASH_SHELL_SHELL_DELEGATE_IMPL_H_