shell_delegate_impl.cc revision bb1529ce867d8845a77ec7cdf3e3003ef1771a40
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#include "ash/shell/shell_delegate_impl.h"
6
7#include <limits>
8
9#include "ash/caps_lock_delegate_stub.h"
10#include "ash/host/root_window_host_factory.h"
11#include "ash/session_state_delegate.h"
12#include "ash/session_state_delegate_stub.h"
13#include "ash/shell/context_menu.h"
14#include "ash/shell/example_factory.h"
15#include "ash/shell/launcher_delegate_impl.h"
16#include "ash/shell/toplevel_window.h"
17#include "ash/shell_window_ids.h"
18#include "ash/wm/window_util.h"
19#include "base/message_loop/message_loop.h"
20#include "ui/aura/window.h"
21#include "ui/keyboard/keyboard_controller_proxy.h"
22#include "ui/views/corewm/input_method_event_filter.h"
23
24namespace ash {
25
26namespace {
27
28class DummyKeyboardControllerProxy : public keyboard::KeyboardControllerProxy {
29 public:
30  DummyKeyboardControllerProxy() {}
31  virtual ~DummyKeyboardControllerProxy() {}
32
33 private:
34  // Overridden from keyboard::KeyboardControllerProxy:
35  virtual content::BrowserContext* GetBrowserContext() OVERRIDE {
36    return Shell::GetInstance()->browser_context();
37  }
38
39  virtual ui::InputMethod* GetInputMethod() OVERRIDE {
40    return Shell::GetInstance()->input_method_filter()->input_method();
41  }
42
43  virtual void RequestAudioInput(content::WebContents* web_contents,
44      const content::MediaStreamRequest& request,
45      const content::MediaResponseCallback& callback) OVERRIDE {
46    return;
47  }
48
49  DISALLOW_COPY_AND_ASSIGN(DummyKeyboardControllerProxy);
50};
51
52}  // namespace
53
54namespace shell {
55
56ShellDelegateImpl::ShellDelegateImpl()
57    : watcher_(NULL),
58      launcher_delegate_(NULL),
59      spoken_feedback_enabled_(false),
60      high_contrast_enabled_(false),
61      screen_magnifier_enabled_(false),
62      screen_magnifier_type_(kDefaultMagnifierType),
63      large_cursor_enabled_(false) {
64}
65
66ShellDelegateImpl::~ShellDelegateImpl() {
67}
68
69void ShellDelegateImpl::SetWatcher(WindowWatcher* watcher) {
70  watcher_ = watcher;
71  if (launcher_delegate_)
72    launcher_delegate_->set_watcher(watcher);
73}
74
75bool ShellDelegateImpl::IsFirstRunAfterBoot() const {
76  return false;
77}
78
79bool ShellDelegateImpl::IsMultiProfilesEnabled() const {
80  return false;
81}
82
83bool ShellDelegateImpl::IsRunningInForcedAppMode() const {
84  return false;
85}
86
87void ShellDelegateImpl::PreInit() {
88}
89
90void ShellDelegateImpl::Shutdown() {
91}
92
93void ShellDelegateImpl::Exit() {
94  base::MessageLoopForUI::current()->Quit();
95}
96
97void ShellDelegateImpl::NewTab() {
98}
99
100void ShellDelegateImpl::NewWindow(bool incognito) {
101  ash::shell::ToplevelWindow::CreateParams create_params;
102  create_params.can_resize = true;
103  create_params.can_maximize = true;
104  ash::shell::ToplevelWindow::CreateToplevelWindow(create_params);
105}
106
107void ShellDelegateImpl::ToggleFullscreen() {
108  ToggleMaximized();
109}
110
111void ShellDelegateImpl::ToggleMaximized() {
112  aura::Window* window = ash::wm::GetActiveWindow();
113  if (window)
114    ash::wm::ToggleMaximizedWindow(window);
115}
116
117void ShellDelegateImpl::OpenFileManager(bool as_dialog) {
118}
119
120void ShellDelegateImpl::OpenCrosh() {
121}
122
123void ShellDelegateImpl::RestoreTab() {
124}
125
126void ShellDelegateImpl::ShowKeyboardOverlay() {
127}
128
129keyboard::KeyboardControllerProxy*
130    ShellDelegateImpl::CreateKeyboardControllerProxy() {
131  return new DummyKeyboardControllerProxy();
132}
133
134void ShellDelegateImpl::ShowTaskManager() {
135}
136
137content::BrowserContext* ShellDelegateImpl::GetCurrentBrowserContext() {
138  return Shell::GetInstance()->browser_context();
139}
140
141void ShellDelegateImpl::ToggleSpokenFeedback(
142    AccessibilityNotificationVisibility notify) {
143  spoken_feedback_enabled_ = !spoken_feedback_enabled_;
144}
145
146bool ShellDelegateImpl::IsSpokenFeedbackEnabled() const {
147  return spoken_feedback_enabled_;
148}
149
150void ShellDelegateImpl::ToggleHighContrast() {
151  high_contrast_enabled_ = !high_contrast_enabled_;
152}
153
154bool ShellDelegateImpl::IsHighContrastEnabled() const {
155  return high_contrast_enabled_;
156}
157
158void ShellDelegateImpl::SetMagnifierEnabled(bool enabled) {
159  screen_magnifier_enabled_ = enabled;
160}
161
162void ShellDelegateImpl::SetMagnifierType(MagnifierType type) {
163  screen_magnifier_type_ = type;
164}
165
166bool ShellDelegateImpl::IsMagnifierEnabled() const {
167  return screen_magnifier_enabled_;
168}
169
170MagnifierType ShellDelegateImpl::GetMagnifierType() const {
171  return screen_magnifier_type_;
172}
173
174void ShellDelegateImpl::SetLargeCursorEnabled(bool enabled) {
175  large_cursor_enabled_ = enabled;
176}
177
178bool ShellDelegateImpl::IsLargeCursorEnabled() const {
179  return large_cursor_enabled_;
180}
181
182bool ShellDelegateImpl::ShouldAlwaysShowAccessibilityMenu() const {
183  return false;
184}
185
186void ShellDelegateImpl::SilenceSpokenFeedback() const {
187}
188
189app_list::AppListViewDelegate* ShellDelegateImpl::CreateAppListViewDelegate() {
190  return ash::shell::CreateAppListViewDelegate();
191}
192
193ash::LauncherDelegate* ShellDelegateImpl::CreateLauncherDelegate(
194    ash::LauncherModel* model) {
195  launcher_delegate_ = new LauncherDelegateImpl(watcher_);
196  return launcher_delegate_;
197}
198
199ash::SystemTrayDelegate* ShellDelegateImpl::CreateSystemTrayDelegate() {
200  return NULL;
201}
202
203ash::UserWallpaperDelegate* ShellDelegateImpl::CreateUserWallpaperDelegate() {
204  return NULL;
205}
206
207ash::CapsLockDelegate* ShellDelegateImpl::CreateCapsLockDelegate() {
208  return new CapsLockDelegateStub;
209}
210
211ash::SessionStateDelegate* ShellDelegateImpl::CreateSessionStateDelegate() {
212  return new SessionStateDelegateStub;
213}
214
215aura::client::UserActionClient* ShellDelegateImpl::CreateUserActionClient() {
216  return NULL;
217}
218
219void ShellDelegateImpl::OpenFeedbackPage() {
220}
221
222void ShellDelegateImpl::RecordUserMetricsAction(UserMetricsAction action) {
223}
224
225void ShellDelegateImpl::HandleMediaNextTrack() {
226}
227
228void ShellDelegateImpl::HandleMediaPlayPause() {
229}
230
231void ShellDelegateImpl::HandleMediaPrevTrack() {
232}
233
234void ShellDelegateImpl::SaveScreenMagnifierScale(double scale) {
235}
236
237double ShellDelegateImpl::GetSavedScreenMagnifierScale() {
238  return std::numeric_limits<double>::min();
239}
240
241ui::MenuModel* ShellDelegateImpl::CreateContextMenu(aura::RootWindow* root) {
242  return new ContextMenu(root);
243}
244
245RootWindowHostFactory* ShellDelegateImpl::CreateRootWindowHostFactory() {
246  return RootWindowHostFactory::Create();
247}
248
249base::string16 ShellDelegateImpl::GetProductName() const {
250  return base::string16();
251}
252
253}  // namespace shell
254}  // namespace ash
255