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 #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 
     24 namespace ash {
     25 
     26 namespace {
     27 
     28 class 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 
     54 namespace shell {
     55 
     56 ShellDelegateImpl::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 
     66 ShellDelegateImpl::~ShellDelegateImpl() {
     67 }
     68 
     69 void ShellDelegateImpl::SetWatcher(WindowWatcher* watcher) {
     70   watcher_ = watcher;
     71   if (launcher_delegate_)
     72     launcher_delegate_->set_watcher(watcher);
     73 }
     74 
     75 bool ShellDelegateImpl::IsFirstRunAfterBoot() const {
     76   return false;
     77 }
     78 
     79 bool ShellDelegateImpl::IsMultiProfilesEnabled() const {
     80   return false;
     81 }
     82 
     83 bool ShellDelegateImpl::IsRunningInForcedAppMode() const {
     84   return false;
     85 }
     86 
     87 void ShellDelegateImpl::PreInit() {
     88 }
     89 
     90 void ShellDelegateImpl::Shutdown() {
     91 }
     92 
     93 void ShellDelegateImpl::Exit() {
     94   base::MessageLoopForUI::current()->Quit();
     95 }
     96 
     97 void ShellDelegateImpl::NewTab() {
     98 }
     99 
    100 void 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 
    107 void ShellDelegateImpl::ToggleFullscreen() {
    108   ToggleMaximized();
    109 }
    110 
    111 void ShellDelegateImpl::ToggleMaximized() {
    112   aura::Window* window = ash::wm::GetActiveWindow();
    113   if (window)
    114     ash::wm::ToggleMaximizedWindow(window);
    115 }
    116 
    117 void ShellDelegateImpl::OpenFileManager(bool as_dialog) {
    118 }
    119 
    120 void ShellDelegateImpl::OpenCrosh() {
    121 }
    122 
    123 void ShellDelegateImpl::RestoreTab() {
    124 }
    125 
    126 void ShellDelegateImpl::ShowKeyboardOverlay() {
    127 }
    128 
    129 keyboard::KeyboardControllerProxy*
    130     ShellDelegateImpl::CreateKeyboardControllerProxy() {
    131   return new DummyKeyboardControllerProxy();
    132 }
    133 
    134 void ShellDelegateImpl::ShowTaskManager() {
    135 }
    136 
    137 content::BrowserContext* ShellDelegateImpl::GetCurrentBrowserContext() {
    138   return Shell::GetInstance()->browser_context();
    139 }
    140 
    141 void ShellDelegateImpl::ToggleSpokenFeedback(
    142     AccessibilityNotificationVisibility notify) {
    143   spoken_feedback_enabled_ = !spoken_feedback_enabled_;
    144 }
    145 
    146 bool ShellDelegateImpl::IsSpokenFeedbackEnabled() const {
    147   return spoken_feedback_enabled_;
    148 }
    149 
    150 void ShellDelegateImpl::ToggleHighContrast() {
    151   high_contrast_enabled_ = !high_contrast_enabled_;
    152 }
    153 
    154 bool ShellDelegateImpl::IsHighContrastEnabled() const {
    155   return high_contrast_enabled_;
    156 }
    157 
    158 void ShellDelegateImpl::SetMagnifierEnabled(bool enabled) {
    159   screen_magnifier_enabled_ = enabled;
    160 }
    161 
    162 void ShellDelegateImpl::SetMagnifierType(MagnifierType type) {
    163   screen_magnifier_type_ = type;
    164 }
    165 
    166 bool ShellDelegateImpl::IsMagnifierEnabled() const {
    167   return screen_magnifier_enabled_;
    168 }
    169 
    170 MagnifierType ShellDelegateImpl::GetMagnifierType() const {
    171   return screen_magnifier_type_;
    172 }
    173 
    174 void ShellDelegateImpl::SetLargeCursorEnabled(bool enabled) {
    175   large_cursor_enabled_ = enabled;
    176 }
    177 
    178 bool ShellDelegateImpl::IsLargeCursorEnabled() const {
    179   return large_cursor_enabled_;
    180 }
    181 
    182 bool ShellDelegateImpl::ShouldAlwaysShowAccessibilityMenu() const {
    183   return false;
    184 }
    185 
    186 void ShellDelegateImpl::SilenceSpokenFeedback() const {
    187 }
    188 
    189 app_list::AppListViewDelegate* ShellDelegateImpl::CreateAppListViewDelegate() {
    190   return ash::shell::CreateAppListViewDelegate();
    191 }
    192 
    193 ash::LauncherDelegate* ShellDelegateImpl::CreateLauncherDelegate(
    194     ash::LauncherModel* model) {
    195   launcher_delegate_ = new LauncherDelegateImpl(watcher_);
    196   return launcher_delegate_;
    197 }
    198 
    199 ash::SystemTrayDelegate* ShellDelegateImpl::CreateSystemTrayDelegate() {
    200   return NULL;
    201 }
    202 
    203 ash::UserWallpaperDelegate* ShellDelegateImpl::CreateUserWallpaperDelegate() {
    204   return NULL;
    205 }
    206 
    207 ash::CapsLockDelegate* ShellDelegateImpl::CreateCapsLockDelegate() {
    208   return new CapsLockDelegateStub;
    209 }
    210 
    211 ash::SessionStateDelegate* ShellDelegateImpl::CreateSessionStateDelegate() {
    212   return new SessionStateDelegateStub;
    213 }
    214 
    215 aura::client::UserActionClient* ShellDelegateImpl::CreateUserActionClient() {
    216   return NULL;
    217 }
    218 
    219 void ShellDelegateImpl::OpenFeedbackPage() {
    220 }
    221 
    222 void ShellDelegateImpl::RecordUserMetricsAction(UserMetricsAction action) {
    223 }
    224 
    225 void ShellDelegateImpl::HandleMediaNextTrack() {
    226 }
    227 
    228 void ShellDelegateImpl::HandleMediaPlayPause() {
    229 }
    230 
    231 void ShellDelegateImpl::HandleMediaPrevTrack() {
    232 }
    233 
    234 void ShellDelegateImpl::SaveScreenMagnifierScale(double scale) {
    235 }
    236 
    237 double ShellDelegateImpl::GetSavedScreenMagnifierScale() {
    238   return std::numeric_limits<double>::min();
    239 }
    240 
    241 ui::MenuModel* ShellDelegateImpl::CreateContextMenu(aura::RootWindow* root) {
    242   return new ContextMenu(root);
    243 }
    244 
    245 RootWindowHostFactory* ShellDelegateImpl::CreateRootWindowHostFactory() {
    246   return RootWindowHostFactory::Create();
    247 }
    248 
    249 base::string16 ShellDelegateImpl::GetProductName() const {
    250   return base::string16();
    251 }
    252 
    253 }  // namespace shell
    254 }  // namespace ash
    255