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

Side by Side Diff: views/focus/focus_manager.cc

Issue 8508055: Move views::Accelerator to ui in order to use it from aura code. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase Created 9 years, 1 month 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
« no previous file with comments | « views/focus/focus_manager.h ('k') | views/focus/focus_manager_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "views/focus/focus_manager.h" 5 #include "views/focus/focus_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "build/build_config.h" 11 #include "build/build_config.h"
12 #include "ui/base/keycodes/keyboard_codes.h" 12 #include "ui/base/keycodes/keyboard_codes.h"
13 #include "views/accelerator.h" 13 #include "ui/base/models/accelerator.h"
14 #include "views/focus/focus_search.h" 14 #include "views/focus/focus_search.h"
15 #include "views/focus/view_storage.h" 15 #include "views/focus/view_storage.h"
16 #include "views/focus/widget_focus_manager.h" 16 #include "views/focus/widget_focus_manager.h"
17 #include "views/view.h" 17 #include "views/view.h"
18 #include "views/widget/root_view.h" 18 #include "views/widget/root_view.h"
19 #include "views/widget/widget.h" 19 #include "views/widget/widget.h"
20 20
21 namespace views { 21 namespace views {
22 22
23 FocusManager::FocusManager(Widget* widget) 23 FocusManager::FocusManager(Widget* widget)
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 } else if (index >= static_cast<int>(views.size())) { 79 } else if (index >= static_cast<int>(views.size())) {
80 index = 0; 80 index = 0;
81 } 81 }
82 SetFocusedViewWithReason(views[index], kReasonFocusTraversal); 82 SetFocusedViewWithReason(views[index], kReasonFocusTraversal);
83 return false; 83 return false;
84 } 84 }
85 85
86 // Process keyboard accelerators. 86 // Process keyboard accelerators.
87 // If the key combination matches an accelerator, the accelerator is 87 // If the key combination matches an accelerator, the accelerator is
88 // triggered, otherwise the key event is processed as usual. 88 // triggered, otherwise the key event is processed as usual.
89 Accelerator accelerator(event.key_code(), 89 ui::Accelerator accelerator(event.key_code(),
90 event.IsShiftDown(), 90 event.IsShiftDown(),
91 event.IsControlDown(), 91 event.IsControlDown(),
92 event.IsAltDown()); 92 event.IsAltDown());
93 if (ProcessAccelerator(accelerator)) { 93 if (ProcessAccelerator(accelerator)) {
94 // If a shortcut was activated for this keydown message, do not propagate 94 // If a shortcut was activated for this keydown message, do not propagate
95 // the event further. 95 // the event further.
96 return false; 96 return false;
97 } 97 }
98 return true; 98 return true;
99 } 99 }
100 100
101 void FocusManager::ValidateFocusedView() { 101 void FocusManager::ValidateFocusedView() {
102 if (focused_view_) { 102 if (focused_view_) {
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 reverse, 352 reverse,
353 FocusSearch::DOWN, 353 FocusSearch::DOWN,
354 false, 354 false,
355 &new_focus_traversable, 355 &new_focus_traversable,
356 &new_starting_view); 356 &new_starting_view);
357 } 357 }
358 return v; 358 return v;
359 } 359 }
360 360
361 void FocusManager::RegisterAccelerator( 361 void FocusManager::RegisterAccelerator(
362 const Accelerator& accelerator, 362 const ui::Accelerator& accelerator,
363 AcceleratorTarget* target) { 363 ui::AcceleratorTarget* target) {
364 AcceleratorTargetList& targets = accelerators_[accelerator]; 364 AcceleratorTargetList& targets = accelerators_[accelerator];
365 DCHECK(std::find(targets.begin(), targets.end(), target) == targets.end()) 365 DCHECK(std::find(targets.begin(), targets.end(), target) == targets.end())
366 << "Registering the same target multiple times"; 366 << "Registering the same target multiple times";
367 targets.push_front(target); 367 targets.push_front(target);
368 } 368 }
369 369
370 void FocusManager::UnregisterAccelerator(const Accelerator& accelerator, 370 void FocusManager::UnregisterAccelerator(const ui::Accelerator& accelerator,
371 AcceleratorTarget* target) { 371 ui::AcceleratorTarget* target) {
372 AcceleratorMap::iterator map_iter = accelerators_.find(accelerator); 372 AcceleratorMap::iterator map_iter = accelerators_.find(accelerator);
373 if (map_iter == accelerators_.end()) { 373 if (map_iter == accelerators_.end()) {
374 NOTREACHED() << "Unregistering non-existing accelerator"; 374 NOTREACHED() << "Unregistering non-existing accelerator";
375 return; 375 return;
376 } 376 }
377 377
378 AcceleratorTargetList* targets = &map_iter->second; 378 AcceleratorTargetList* targets = &map_iter->second;
379 AcceleratorTargetList::iterator target_iter = 379 AcceleratorTargetList::iterator target_iter =
380 std::find(targets->begin(), targets->end(), target); 380 std::find(targets->begin(), targets->end(), target);
381 if (target_iter == targets->end()) { 381 if (target_iter == targets->end()) {
382 NOTREACHED() << "Unregistering accelerator for wrong target"; 382 NOTREACHED() << "Unregistering accelerator for wrong target";
383 return; 383 return;
384 } 384 }
385 385
386 targets->erase(target_iter); 386 targets->erase(target_iter);
387 } 387 }
388 388
389 void FocusManager::UnregisterAccelerators(AcceleratorTarget* target) { 389 void FocusManager::UnregisterAccelerators(ui::AcceleratorTarget* target) {
390 for (AcceleratorMap::iterator map_iter = accelerators_.begin(); 390 for (AcceleratorMap::iterator map_iter = accelerators_.begin();
391 map_iter != accelerators_.end(); ++map_iter) { 391 map_iter != accelerators_.end(); ++map_iter) {
392 AcceleratorTargetList* targets = &map_iter->second; 392 AcceleratorTargetList* targets = &map_iter->second;
393 targets->remove(target); 393 targets->remove(target);
394 } 394 }
395 } 395 }
396 396
397 bool FocusManager::ProcessAccelerator(const Accelerator& accelerator) { 397 bool FocusManager::ProcessAccelerator(const ui::Accelerator& accelerator) {
398 AcceleratorMap::iterator map_iter = accelerators_.find(accelerator); 398 AcceleratorMap::iterator map_iter = accelerators_.find(accelerator);
399 if (map_iter != accelerators_.end()) { 399 if (map_iter != accelerators_.end()) {
400 // We have to copy the target list here, because an AcceleratorPressed 400 // We have to copy the target list here, because an AcceleratorPressed
401 // event handler may modify the list. 401 // event handler may modify the list.
402 AcceleratorTargetList targets(map_iter->second); 402 AcceleratorTargetList targets(map_iter->second);
403 for (AcceleratorTargetList::iterator iter = targets.begin(); 403 for (AcceleratorTargetList::iterator iter = targets.begin();
404 iter != targets.end(); ++iter) { 404 iter != targets.end(); ++iter) {
405 if ((*iter)->AcceleratorPressed(accelerator)) 405 if ((*iter)->AcceleratorPressed(accelerator))
406 return true; 406 return true;
407 } 407 }
408 } 408 }
409 return false; 409 return false;
410 } 410 }
411 411
412 AcceleratorTarget* FocusManager::GetCurrentTargetForAccelerator( 412 ui::AcceleratorTarget* FocusManager::GetCurrentTargetForAccelerator(
413 const views::Accelerator& accelerator) const { 413 const ui::Accelerator& accelerator) const {
414 AcceleratorMap::const_iterator map_iter = accelerators_.find(accelerator); 414 AcceleratorMap::const_iterator map_iter = accelerators_.find(accelerator);
415 if (map_iter == accelerators_.end() || map_iter->second.empty()) 415 if (map_iter == accelerators_.end() || map_iter->second.empty())
416 return NULL; 416 return NULL;
417 return map_iter->second.front(); 417 return map_iter->second.front();
418 } 418 }
419 419
420 void FocusManager::FocusNativeView(gfx::NativeView native_view) { 420 void FocusManager::FocusNativeView(gfx::NativeView native_view) {
421 widget_->FocusNativeView(native_view); 421 widget_->FocusNativeView(native_view);
422 } 422 }
423 423
(...skipping 13 matching lines...) Expand all
437 437
438 void FocusManager::AddFocusChangeListener(FocusChangeListener* listener) { 438 void FocusManager::AddFocusChangeListener(FocusChangeListener* listener) {
439 focus_change_listeners_.AddObserver(listener); 439 focus_change_listeners_.AddObserver(listener);
440 } 440 }
441 441
442 void FocusManager::RemoveFocusChangeListener(FocusChangeListener* listener) { 442 void FocusManager::RemoveFocusChangeListener(FocusChangeListener* listener) {
443 focus_change_listeners_.RemoveObserver(listener); 443 focus_change_listeners_.RemoveObserver(listener);
444 } 444 }
445 445
446 } // namespace views 446 } // namespace views
OLDNEW
« no previous file with comments | « views/focus/focus_manager.h ('k') | views/focus/focus_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698