Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(257)

Side by Side Diff: ash/accelerators/accelerator_controller.cc

Issue 155493002: Add key based scrolling on magnified screen for kiosk mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698