Upstream version 6.35.121.0
[platform/framework/web/crosswalk.git] / src / ash / shell / shell_delegate_impl.h
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 PreShutdown() 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::SessionStateDelegate* CreateSessionStateDelegate() OVERRIDE;
52   virtual ash::AccessibilityDelegate* CreateAccessibilityDelegate() OVERRIDE;
53   virtual ash::NewWindowDelegate* CreateNewWindowDelegate() OVERRIDE;
54   virtual ash::MediaDelegate* CreateMediaDelegate() OVERRIDE;
55   virtual ui::MenuModel* CreateContextMenu(
56       aura::Window* root_window,
57       ash::ShelfItemDelegate* item_delegate,
58       ash::ShelfItem* item) OVERRIDE;
59   virtual WindowTreeHostFactory* CreateWindowTreeHostFactory() OVERRIDE;
60   virtual GPUSupport* CreateGPUSupport() OVERRIDE;
61   virtual base::string16 GetProductName() const OVERRIDE;
62
63  private:
64   // Used to update Launcher. Owned by main.
65   WindowWatcher* watcher_;
66
67   ShelfDelegateImpl* shelf_delegate_;
68   content::BrowserContext* browser_context_;
69
70   DISALLOW_COPY_AND_ASSIGN(ShellDelegateImpl);
71 };
72
73 }  // namespace shell
74 }  // namespace ash
75
76 #endif  // ASH_SHELL_SHELL_DELEGATE_IMPL_H_