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