shell_delegate_impl.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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
13namespace ash {
14namespace shell {
15
16class LauncherDelegateImpl;
17class WindowWatcher;
18
19class ShellDelegateImpl : public ash::ShellDelegate {
20 public:
21  ShellDelegateImpl();
22  virtual ~ShellDelegateImpl();
23
24  void SetWatcher(WindowWatcher* watcher);
25
26  virtual bool IsUserLoggedIn() const OVERRIDE;
27  virtual bool IsSessionStarted() const OVERRIDE;
28  virtual bool IsGuestSession() const OVERRIDE;
29  virtual bool IsFirstRunAfterBoot() const OVERRIDE;
30  virtual bool IsRunningInForcedAppMode() const OVERRIDE;
31  virtual bool CanLockScreen() const OVERRIDE;
32  virtual void LockScreen() OVERRIDE;
33  virtual void UnlockScreen() OVERRIDE;
34  virtual bool IsScreenLocked() const OVERRIDE;
35  virtual void PreInit() OVERRIDE;
36  virtual void Shutdown() OVERRIDE;
37  virtual void Exit() OVERRIDE;
38  virtual void NewTab() OVERRIDE;
39  virtual void NewWindow(bool incognito) OVERRIDE;
40  virtual void ToggleMaximized() OVERRIDE;
41  virtual void OpenFileManager(bool as_dialog) OVERRIDE;
42  virtual void OpenCrosh() OVERRIDE;
43  virtual void OpenMobileSetup(const std::string& service_path) OVERRIDE;
44  virtual void RestoreTab() OVERRIDE;
45  virtual bool RotatePaneFocus(Shell::Direction direction) OVERRIDE;
46  virtual void ShowKeyboardOverlay() OVERRIDE;
47  virtual void ShowTaskManager() OVERRIDE;
48  virtual content::BrowserContext* GetCurrentBrowserContext() OVERRIDE;
49  virtual void ToggleSpokenFeedback(
50      AccessibilityNotificationVisibility notify) OVERRIDE;
51  virtual bool IsSpokenFeedbackEnabled() const OVERRIDE;
52  virtual void ToggleHighContrast() OVERRIDE;
53  virtual bool IsHighContrastEnabled() const OVERRIDE;
54  virtual void SetMagnifierEnabled(bool enabled) OVERRIDE;
55  virtual void SetMagnifierType(MagnifierType type) OVERRIDE;
56  virtual bool IsMagnifierEnabled() const OVERRIDE;
57  virtual MagnifierType GetMagnifierType() const OVERRIDE;
58  virtual bool ShouldAlwaysShowAccessibilityMenu() const OVERRIDE;
59  virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE;
60  virtual ash::LauncherDelegate* CreateLauncherDelegate(
61      ash::LauncherModel* model) OVERRIDE;
62  virtual ash::SystemTrayDelegate* CreateSystemTrayDelegate() OVERRIDE;
63  virtual ash::UserWallpaperDelegate* CreateUserWallpaperDelegate() OVERRIDE;
64  virtual ash::CapsLockDelegate* CreateCapsLockDelegate() OVERRIDE;
65  virtual aura::client::UserActionClient* CreateUserActionClient() OVERRIDE;
66  virtual void OpenFeedbackPage() OVERRIDE;
67  virtual void RecordUserMetricsAction(UserMetricsAction action) OVERRIDE;
68  virtual void HandleMediaNextTrack() OVERRIDE;
69  virtual void HandleMediaPlayPause() OVERRIDE;
70  virtual void HandleMediaPrevTrack() OVERRIDE;
71  virtual string16 GetTimeRemainingString(base::TimeDelta delta) OVERRIDE;
72  virtual string16 GetTimeDurationLongString(base::TimeDelta delta) OVERRIDE;
73  virtual void SaveScreenMagnifierScale(double scale) OVERRIDE;
74  virtual double GetSavedScreenMagnifierScale() OVERRIDE;
75  virtual ui::MenuModel* CreateContextMenu(
76      aura::RootWindow* root_window) OVERRIDE;
77  virtual RootWindowHostFactory* CreateRootWindowHostFactory() OVERRIDE;
78  virtual string16 GetProductName() const OVERRIDE;
79
80 private:
81  // Used to update Launcher. Owned by main.
82  WindowWatcher* watcher_;
83
84  LauncherDelegateImpl* launcher_delegate_;
85
86  bool locked_;
87  bool spoken_feedback_enabled_;
88  bool high_contrast_enabled_;
89  bool screen_magnifier_enabled_;
90  MagnifierType screen_magnifier_type_;
91
92  DISALLOW_COPY_AND_ASSIGN(ShellDelegateImpl);
93};
94
95}  // namespace shell
96}  // namespace ash
97
98#endif  // ASH_SHELL_SHELL_DELEGATE_IMPL_H_
99