OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/accelerators/accelerator_controller.h" | 5 #include "ash/accelerators/accelerator_controller.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <iostream> | 9 #include <iostream> |
10 #include <string> | 10 #include <string> |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 } else if (ash::Shell::GetInstance()-> | 229 } else if (ash::Shell::GetInstance()-> |
230 partial_magnification_controller()->is_enabled()) { | 230 partial_magnification_controller()->is_enabled()) { |
231 float scale = delta_index > 0 ? kDefaultPartialMagnifiedScale : 1; | 231 float scale = delta_index > 0 ? kDefaultPartialMagnifiedScale : 1; |
232 ash::Shell::GetInstance()->partial_magnification_controller()-> | 232 ash::Shell::GetInstance()->partial_magnification_controller()-> |
233 SetScale(scale); | 233 SetScale(scale); |
234 } | 234 } |
235 | 235 |
236 return true; | 236 return true; |
237 } | 237 } |
238 | 238 |
| 239 bool HandleMagnifyScreenScroll( |
| 240 MagnificationController::ScrollDirection direction) { |
| 241 MagnificationController* controller = |
| 242 ash::Shell::GetInstance()->magnification_controller(); |
| 243 if (controller->IsEnabled()) { |
| 244 controller->SetScrollDirection(direction); |
| 245 return true; |
| 246 } |
| 247 return false; |
| 248 } |
| 249 |
239 bool HandleMediaNextTrack() { | 250 bool HandleMediaNextTrack() { |
240 Shell::GetInstance()->media_delegate()->HandleMediaNextTrack(); | 251 Shell::GetInstance()->media_delegate()->HandleMediaNextTrack(); |
241 return true; | 252 return true; |
242 } | 253 } |
243 | 254 |
244 bool HandleMediaPlayPause() { | 255 bool HandleMediaPlayPause() { |
245 Shell::GetInstance()->media_delegate()->HandleMediaPlayPause(); | 256 Shell::GetInstance()->media_delegate()->HandleMediaPlayPause(); |
246 return true; | 257 return true; |
247 } | 258 } |
248 | 259 |
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 actions_allowed_at_login_screen_.insert( | 802 actions_allowed_at_login_screen_.insert( |
792 kActionsAllowedAtLoginOrLockScreen[i]); | 803 kActionsAllowedAtLoginOrLockScreen[i]); |
793 actions_allowed_at_lock_screen_.insert( | 804 actions_allowed_at_lock_screen_.insert( |
794 kActionsAllowedAtLoginOrLockScreen[i]); | 805 kActionsAllowedAtLoginOrLockScreen[i]); |
795 } | 806 } |
796 for (size_t i = 0; i < kActionsAllowedAtLockScreenLength; ++i) | 807 for (size_t i = 0; i < kActionsAllowedAtLockScreenLength; ++i) |
797 actions_allowed_at_lock_screen_.insert(kActionsAllowedAtLockScreen[i]); | 808 actions_allowed_at_lock_screen_.insert(kActionsAllowedAtLockScreen[i]); |
798 for (size_t i = 0; i < kActionsAllowedAtModalWindowLength; ++i) | 809 for (size_t i = 0; i < kActionsAllowedAtModalWindowLength; ++i) |
799 actions_allowed_at_modal_window_.insert(kActionsAllowedAtModalWindow[i]); | 810 actions_allowed_at_modal_window_.insert(kActionsAllowedAtModalWindow[i]); |
800 for (size_t i = 0; i < kReservedActionsLength; ++i) | 811 for (size_t i = 0; i < kReservedActionsLength; ++i) |
801 reserved_actions_.insert(kReservedActions[i]); | 812 AddReservedAction(kReservedActions[i]); |
802 for (size_t i = 0; i < kNonrepeatableActionsLength; ++i) | 813 for (size_t i = 0; i < kNonrepeatableActionsLength; ++i) |
803 nonrepeatable_actions_.insert(kNonrepeatableActions[i]); | 814 nonrepeatable_actions_.insert(kNonrepeatableActions[i]); |
804 for (size_t i = 0; i < kActionsAllowedInAppModeLength; ++i) | 815 for (size_t i = 0; i < kActionsAllowedInAppModeLength; ++i) |
805 actions_allowed_in_app_mode_.insert(kActionsAllowedInAppMode[i]); | 816 actions_allowed_in_app_mode_.insert(kActionsAllowedInAppMode[i]); |
806 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) | 817 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) |
807 actions_needing_window_.insert(kActionsNeedingWindow[i]); | 818 actions_needing_window_.insert(kActionsNeedingWindow[i]); |
808 | 819 |
809 RegisterAccelerators(kAcceleratorData, kAcceleratorDataLength); | 820 RegisterAccelerators(kAcceleratorData, kAcceleratorDataLength); |
810 | 821 |
811 #if !defined(NDEBUG) | 822 #if !defined(NDEBUG) |
812 RegisterAccelerators(kDesktopAcceleratorData, kDesktopAcceleratorDataLength); | 823 RegisterAccelerators(kDesktopAcceleratorData, kDesktopAcceleratorDataLength); |
813 #endif | 824 #endif |
814 | 825 |
815 if (DebugShortcutsEnabled()) { | 826 if (DebugShortcutsEnabled()) { |
816 RegisterAccelerators(kDebugAcceleratorData, kDebugAcceleratorDataLength); | 827 RegisterAccelerators(kDebugAcceleratorData, kDebugAcceleratorDataLength); |
817 for (size_t i = 0; i < kReservedDebugActionsLength; ++i) | 828 for (size_t i = 0; i < kReservedDebugActionsLength; ++i) |
818 reserved_actions_.insert(kReservedDebugActions[i]); | 829 AddReservedAction(kReservedDebugActions[i]); |
819 } | 830 } |
820 | 831 |
821 #if defined(OS_CHROMEOS) | 832 #if defined(OS_CHROMEOS) |
822 keyboard_brightness_control_delegate_.reset( | 833 keyboard_brightness_control_delegate_.reset( |
823 new KeyboardBrightnessController()); | 834 new KeyboardBrightnessController()); |
824 #endif | 835 #endif |
825 } | 836 } |
826 | 837 |
| 838 void AcceleratorController::InstallMagnifierAccelerators() { |
| 839 RegisterAccelerators(kMagnifierAcceleratorData, |
| 840 kMagnifierAcceleratorDataLength); |
| 841 for (size_t i = 0; i < kMagnifierAcceleratorDataLength; i++) |
| 842 AddReservedAction(kMagnifierAcceleratorData[i].action); |
| 843 } |
| 844 |
| 845 void AcceleratorController::UninstallMagnifierAccelerators() { |
| 846 UnregisterAccelerators(kMagnifierAcceleratorData, |
| 847 kMagnifierAcceleratorDataLength); |
| 848 for (size_t i = 0; i < kMagnifierAcceleratorDataLength; i++) |
| 849 RemoveReservedAction(kMagnifierAcceleratorData[i].action); |
| 850 } |
| 851 |
827 void AcceleratorController::Register(const ui::Accelerator& accelerator, | 852 void AcceleratorController::Register(const ui::Accelerator& accelerator, |
828 ui::AcceleratorTarget* target) { | 853 ui::AcceleratorTarget* target) { |
829 accelerator_manager_->Register(accelerator, | 854 accelerator_manager_->Register(accelerator, |
830 ui::AcceleratorManager::kNormalPriority, | 855 ui::AcceleratorManager::kNormalPriority, |
831 target); | 856 target); |
832 } | 857 } |
833 | 858 |
834 void AcceleratorController::Unregister(const ui::Accelerator& accelerator, | 859 void AcceleratorController::Unregister(const ui::Accelerator& accelerator, |
835 ui::AcceleratorTarget* target) { | 860 ui::AcceleratorTarget* target) { |
836 accelerator_manager_->Unregister(accelerator, target); | 861 accelerator_manager_->Unregister(accelerator, target); |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1110 case DEBUG_TOGGLE_SHOW_FPS_COUNTER: | 1135 case DEBUG_TOGGLE_SHOW_FPS_COUNTER: |
1111 ash::debug::ToggleShowFpsCounter(); | 1136 ash::debug::ToggleShowFpsCounter(); |
1112 return true; | 1137 return true; |
1113 case DEBUG_TOGGLE_SHOW_PAINT_RECTS: | 1138 case DEBUG_TOGGLE_SHOW_PAINT_RECTS: |
1114 ash::debug::ToggleShowPaintRects(); | 1139 ash::debug::ToggleShowPaintRects(); |
1115 return true; | 1140 return true; |
1116 case MAGNIFY_SCREEN_ZOOM_IN: | 1141 case MAGNIFY_SCREEN_ZOOM_IN: |
1117 return HandleMagnifyScreen(1); | 1142 return HandleMagnifyScreen(1); |
1118 case MAGNIFY_SCREEN_ZOOM_OUT: | 1143 case MAGNIFY_SCREEN_ZOOM_OUT: |
1119 return HandleMagnifyScreen(-1); | 1144 return HandleMagnifyScreen(-1); |
| 1145 case MAGNIFY_SCREEN_UP: |
| 1146 return HandleMagnifyScreenScroll(MagnificationController::SCROLL_UP); |
| 1147 case MAGNIFY_SCREEN_DOWN: |
| 1148 return HandleMagnifyScreenScroll(MagnificationController::SCROLL_DOWN); |
| 1149 case MAGNIFY_SCREEN_LEFT: |
| 1150 return HandleMagnifyScreenScroll(MagnificationController::SCROLL_LEFT); |
| 1151 case MAGNIFY_SCREEN_RIGHT: |
| 1152 return HandleMagnifyScreenScroll(MagnificationController::SCROLL_RIGHT); |
| 1153 case MAGNIFY_SCREEN_STOP_SCROLL: |
| 1154 return HandleMagnifyScreenScroll(MagnificationController::SCROLL_NONE); |
1120 case MEDIA_NEXT_TRACK: | 1155 case MEDIA_NEXT_TRACK: |
1121 return HandleMediaNextTrack(); | 1156 return HandleMediaNextTrack(); |
1122 case MEDIA_PLAY_PAUSE: | 1157 case MEDIA_PLAY_PAUSE: |
1123 return HandleMediaPlayPause(); | 1158 return HandleMediaPlayPause(); |
1124 case MEDIA_PREV_TRACK: | 1159 case MEDIA_PREV_TRACK: |
1125 return HandleMediaPrevTrack(); | 1160 return HandleMediaPrevTrack(); |
1126 case POWER_PRESSED: // fallthrough | 1161 case POWER_PRESSED: // fallthrough |
1127 case POWER_RELEASED: | 1162 case POWER_RELEASED: |
1128 #if defined(OS_CHROMEOS) | 1163 #if defined(OS_CHROMEOS) |
1129 if (!base::SysInfo::IsRunningOnChromeOS()) { | 1164 if (!base::SysInfo::IsRunningOnChromeOS()) { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1194 ui::Accelerator accelerator(accelerators[i].keycode, | 1229 ui::Accelerator accelerator(accelerators[i].keycode, |
1195 accelerators[i].modifiers); | 1230 accelerators[i].modifiers); |
1196 accelerator.set_type(accelerators[i].trigger_on_press ? | 1231 accelerator.set_type(accelerators[i].trigger_on_press ? |
1197 ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED); | 1232 ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED); |
1198 Register(accelerator, this); | 1233 Register(accelerator, this); |
1199 accelerators_.insert( | 1234 accelerators_.insert( |
1200 std::make_pair(accelerator, accelerators[i].action)); | 1235 std::make_pair(accelerator, accelerators[i].action)); |
1201 } | 1236 } |
1202 } | 1237 } |
1203 | 1238 |
| 1239 void AcceleratorController::UnregisterAccelerators( |
| 1240 const AcceleratorData accelerators[], |
| 1241 size_t accelerators_length) { |
| 1242 for (size_t i = 0; i < accelerators_length; ++i) { |
| 1243 ui::Accelerator accelerator(accelerators[i].keycode, |
| 1244 accelerators[i].modifiers); |
| 1245 accelerator.set_type(accelerators[i].trigger_on_press ? |
| 1246 ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED); |
| 1247 Unregister(accelerator, this); |
| 1248 std::map<ui::Accelerator, int>::const_iterator it = |
| 1249 accelerators_.find(accelerator); |
| 1250 DCHECK(it != accelerators_.end()); |
| 1251 accelerators_.erase(it); |
| 1252 } |
| 1253 } |
| 1254 |
| 1255 void AcceleratorController::AddReservedAction(AcceleratorAction action) { |
| 1256 if (reserved_actions_.find(action) == reserved_actions_.end()) |
| 1257 reserved_actions_.insert(action); |
| 1258 } |
| 1259 |
| 1260 void AcceleratorController::RemoveReservedAction(AcceleratorAction action) { |
| 1261 std::set<int>::const_iterator it = reserved_actions_.find(action); |
| 1262 if (it != reserved_actions_.end()) |
| 1263 reserved_actions_.erase(it); |
| 1264 } |
| 1265 |
1204 void AcceleratorController::SetKeyboardBrightnessControlDelegate( | 1266 void AcceleratorController::SetKeyboardBrightnessControlDelegate( |
1205 scoped_ptr<KeyboardBrightnessControlDelegate> | 1267 scoped_ptr<KeyboardBrightnessControlDelegate> |
1206 keyboard_brightness_control_delegate) { | 1268 keyboard_brightness_control_delegate) { |
1207 keyboard_brightness_control_delegate_ = | 1269 keyboard_brightness_control_delegate_ = |
1208 keyboard_brightness_control_delegate.Pass(); | 1270 keyboard_brightness_control_delegate.Pass(); |
1209 } | 1271 } |
1210 | 1272 |
1211 bool AcceleratorController::CanHandleAccelerators() const { | 1273 bool AcceleratorController::CanHandleAccelerators() const { |
1212 return true; | 1274 return true; |
1213 } | 1275 } |
1214 | 1276 |
1215 } // namespace ash | 1277 } // namespace ash |
OLD | NEW |