Home | History | Annotate | Download | only in shell
      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