blob: 318873c608a1017fcdf88c3d8e33e8d12f33a346 [file] [log] [blame]
[email protected]262f8bd2012-03-23 19:30:271// 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
[email protected]565f32fc02013-03-05 18:51:487#include <limits>
8
[email protected]f4c92b382012-08-28 00:59:599#include "ash/caps_lock_delegate_stub.h"
[email protected]fca90ea2012-12-14 04:13:3010#include "ash/host/root_window_host_factory.h"
[email protected]fcb123d2013-04-17 15:58:4911#include "ash/session_state_delegate.h"
12#include "ash/session_state_delegate_stub.h"
[email protected]565f32fc02013-03-05 18:51:4813#include "ash/shell/context_menu.h"
[email protected]262f8bd2012-03-23 19:30:2714#include "ash/shell/example_factory.h"
15#include "ash/shell/launcher_delegate_impl.h"
[email protected]b77236f72012-03-25 03:07:1916#include "ash/shell/toplevel_window.h"
[email protected]262f8bd2012-03-23 19:30:2717#include "ash/shell_window_ids.h"
[email protected]ab177392012-10-10 02:34:0418#include "ash/wm/window_util.h"
[email protected]9e3e6352013-07-17 04:07:5119#include "base/message_loop/message_loop.h"
[email protected]262f8bd2012-03-23 19:30:2720#include "ui/aura/window.h"
[email protected]f1d5c3a2013-04-23 17:42:5621#include "ui/keyboard/keyboard_controller_proxy.h"
22#include "ui/views/corewm/input_method_event_filter.h"
[email protected]262f8bd2012-03-23 19:30:2723
24namespace ash {
[email protected]f1d5c3a2013-04-23 17:42:5625
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
[email protected]9fa9b2a2013-05-24 17:51:1043 virtual void RequestAudioInput(content::WebContents* web_contents,
44 const content::MediaStreamRequest& request,
45 const content::MediaResponseCallback& callback) OVERRIDE {
46 return;
47 }
48
[email protected]f1d5c3a2013-04-23 17:42:5649 DISALLOW_COPY_AND_ASSIGN(DummyKeyboardControllerProxy);
50};
51
52} // namespace
53
[email protected]262f8bd2012-03-23 19:30:2754namespace shell {
55
56ShellDelegateImpl::ShellDelegateImpl()
57 : watcher_(NULL),
58 launcher_delegate_(NULL),
[email protected]db63363f2012-11-29 14:30:1259 spoken_feedback_enabled_(false),
60 high_contrast_enabled_(false),
[email protected]7585f4c2013-01-10 18:26:4161 screen_magnifier_enabled_(false),
[email protected]57999022013-06-07 12:52:0362 screen_magnifier_type_(kDefaultMagnifierType),
63 large_cursor_enabled_(false) {
[email protected]262f8bd2012-03-23 19:30:2764}
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
[email protected]5c85d5d2012-12-03 14:22:5675bool ShellDelegateImpl::IsFirstRunAfterBoot() const {
[email protected]697f04c2012-10-03 01:15:1076 return false;
77}
78
[email protected]e718e6f2013-04-15 16:01:5979bool ShellDelegateImpl::IsMultiProfilesEnabled() const {
80 return false;
81}
82
[email protected]565f32fc02013-03-05 18:51:4883bool ShellDelegateImpl::IsRunningInForcedAppMode() const {
84 return false;
85}
86
[email protected]dcc990722013-03-24 16:35:2087void ShellDelegateImpl::PreInit() {
88}
89
[email protected]cae97652012-04-20 03:12:1290void ShellDelegateImpl::Shutdown() {
[email protected]3528b7d2012-04-18 10:46:3691}
92
[email protected]262f8bd2012-03-23 19:30:2793void ShellDelegateImpl::Exit() {
[email protected]bd9a7f32013-04-30 20:25:4294 base::MessageLoopForUI::current()->Quit();
[email protected]262f8bd2012-03-23 19:30:2795}
96
[email protected]343dc062012-05-25 03:16:5797void ShellDelegateImpl::NewTab() {
98}
99
[email protected]b77236f72012-03-25 03:07:19100void 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
[email protected]e9e90252013-04-24 09:05:57107void ShellDelegateImpl::ToggleFullscreen() {
108 ToggleMaximized();
109}
110
[email protected]ab177392012-10-10 02:34:04111void ShellDelegateImpl::ToggleMaximized() {
112 aura::Window* window = ash::wm::GetActiveWindow();
113 if (window)
114 ash::wm::ToggleMaximizedWindow(window);
115}
116
[email protected]41bd6d872013-02-25 14:15:54117void ShellDelegateImpl::OpenFileManager(bool as_dialog) {
[email protected]cae97652012-04-20 03:12:12118}
119
120void ShellDelegateImpl::OpenCrosh() {
121}
122
[email protected]343dc062012-05-25 03:16:57123void ShellDelegateImpl::RestoreTab() {
124}
125
[email protected]b509fc32012-05-24 21:56:56126void ShellDelegateImpl::ShowKeyboardOverlay() {
[email protected]e6ae78c32012-05-15 19:14:24127}
128
[email protected]86459e2c2013-04-10 13:39:24129keyboard::KeyboardControllerProxy*
130 ShellDelegateImpl::CreateKeyboardControllerProxy() {
[email protected]f1d5c3a2013-04-23 17:42:56131 return new DummyKeyboardControllerProxy();
[email protected]86459e2c2013-04-10 13:39:24132}
133
[email protected]343dc062012-05-25 03:16:57134void ShellDelegateImpl::ShowTaskManager() {
135}
136
[email protected]24af4972012-05-04 19:42:18137content::BrowserContext* ShellDelegateImpl::GetCurrentBrowserContext() {
138 return Shell::GetInstance()->browser_context();
139}
140
[email protected]467585b2012-12-13 04:52:36141void ShellDelegateImpl::ToggleSpokenFeedback(
142 AccessibilityNotificationVisibility notify) {
[email protected]7f2af2192012-06-16 11:29:12143 spoken_feedback_enabled_ = !spoken_feedback_enabled_;
144}
145
146bool ShellDelegateImpl::IsSpokenFeedbackEnabled() const {
147 return spoken_feedback_enabled_;
[email protected]ce3d7682012-05-02 23:01:41148}
149
[email protected]db63363f2012-11-29 14:30:12150void ShellDelegateImpl::ToggleHighContrast() {
151 high_contrast_enabled_ = !high_contrast_enabled_;
152}
153
154bool ShellDelegateImpl::IsHighContrastEnabled() const {
155 return high_contrast_enabled_;
156}
157
[email protected]7585f4c2013-01-10 18:26:41158void ShellDelegateImpl::SetMagnifierEnabled(bool enabled) {
159 screen_magnifier_enabled_ = enabled;
160}
161
162void ShellDelegateImpl::SetMagnifierType(MagnifierType type) {
[email protected]db63363f2012-11-29 14:30:12163 screen_magnifier_type_ = type;
164}
165
[email protected]7585f4c2013-01-10 18:26:41166bool ShellDelegateImpl::IsMagnifierEnabled() const {
167 return screen_magnifier_enabled_;
168}
169
[email protected]db63363f2012-11-29 14:30:12170MagnifierType ShellDelegateImpl::GetMagnifierType() const {
171 return screen_magnifier_type_;
172}
173
[email protected]57999022013-06-07 12:52:03174void ShellDelegateImpl::SetLargeCursorEnabled(bool enabled) {
175 large_cursor_enabled_ = enabled;
176}
177
178bool ShellDelegateImpl::IsLargeCursorEnabled() const {
179 return large_cursor_enabled_;
180}
181
[email protected]db63363f2012-11-29 14:30:12182bool ShellDelegateImpl::ShouldAlwaysShowAccessibilityMenu() const {
183 return false;
184}
185
[email protected]319b944a2013-05-02 22:14:09186void ShellDelegateImpl::SilenceSpokenFeedback() const {
187}
188
[email protected]0039db92012-05-09 04:11:45189app_list::AppListViewDelegate* ShellDelegateImpl::CreateAppListViewDelegate() {
[email protected]262f8bd2012-03-23 19:30:27190 return ash::shell::CreateAppListViewDelegate();
191}
192
[email protected]262f8bd2012-03-23 19:30:27193ash::LauncherDelegate* ShellDelegateImpl::CreateLauncherDelegate(
194 ash::LauncherModel* model) {
195 launcher_delegate_ = new LauncherDelegateImpl(watcher_);
196 return launcher_delegate_;
197}
198
[email protected]51ed5992012-11-07 10:14:39199ash::SystemTrayDelegate* ShellDelegateImpl::CreateSystemTrayDelegate() {
[email protected]262f8bd2012-03-23 19:30:27200 return NULL;
201}
202
203ash::UserWallpaperDelegate* ShellDelegateImpl::CreateUserWallpaperDelegate() {
204 return NULL;
205}
[email protected]4d7ce4352012-07-13 06:56:06206
[email protected]f4c92b382012-08-28 00:59:59207ash::CapsLockDelegate* ShellDelegateImpl::CreateCapsLockDelegate() {
208 return new CapsLockDelegateStub;
209}
210
[email protected]fcb123d2013-04-17 15:58:49211ash::SessionStateDelegate* ShellDelegateImpl::CreateSessionStateDelegate() {
212 return new SessionStateDelegateStub;
213}
214
[email protected]c28853612012-05-31 22:43:44215aura::client::UserActionClient* ShellDelegateImpl::CreateUserActionClient() {
216 return NULL;
217}
[email protected]262f8bd2012-03-23 19:30:27218
[email protected]4d7ce4352012-07-13 06:56:06219void ShellDelegateImpl::OpenFeedbackPage() {
220}
221
[email protected]6cae3d0b2012-07-20 00:58:48222void ShellDelegateImpl::RecordUserMetricsAction(UserMetricsAction action) {
223}
224
[email protected]e54e8192012-08-27 17:38:00225void ShellDelegateImpl::HandleMediaNextTrack() {
226}
227
228void ShellDelegateImpl::HandleMediaPlayPause() {
229}
230
231void ShellDelegateImpl::HandleMediaPrevTrack() {
232}
233
[email protected]ed95e022013-04-11 04:03:32234base::string16 ShellDelegateImpl::GetTimeRemainingString(
235 base::TimeDelta delta) {
236 return base::string16();
[email protected]4468dd12012-08-30 17:17:20237}
238
[email protected]ed95e022013-04-11 04:03:32239base::string16 ShellDelegateImpl::GetTimeDurationLongString(
240 base::TimeDelta delta) {
241 return base::string16();
[email protected]b98beff2012-11-28 18:52:02242}
243
[email protected]4da73a712012-09-27 19:12:48244void ShellDelegateImpl::SaveScreenMagnifierScale(double scale) {
245}
246
247double ShellDelegateImpl::GetSavedScreenMagnifierScale() {
248 return std::numeric_limits<double>::min();
249}
250
[email protected]431552c2012-10-23 00:38:33251ui::MenuModel* ShellDelegateImpl::CreateContextMenu(aura::RootWindow* root) {
252 return new ContextMenu(root);
253}
254
[email protected]fca90ea2012-12-14 04:13:30255RootWindowHostFactory* ShellDelegateImpl::CreateRootWindowHostFactory() {
256 return RootWindowHostFactory::Create();
257}
258
[email protected]ed95e022013-04-11 04:03:32259base::string16 ShellDelegateImpl::GetProductName() const {
260 return base::string16();
[email protected]5673bf52013-02-01 06:14:24261}
262
[email protected]262f8bd2012-03-23 19:30:27263} // namespace shell
264} // namespace ash