| 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 <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 | 81 |
| 82 bool HandleCycleWindowMRU(WindowCycleController::Direction direction, | 82 bool HandleCycleWindowMRU(WindowCycleController::Direction direction, |
| 83 bool is_alt_down) { | 83 bool is_alt_down) { |
| 84 Shell::GetInstance()-> | 84 Shell::GetInstance()-> |
| 85 window_cycle_controller()->HandleCycleWindow(direction, is_alt_down); | 85 window_cycle_controller()->HandleCycleWindow(direction, is_alt_down); |
| 86 // Always report we handled the key, even if the window didn't change. | 86 // Always report we handled the key, even if the window didn't change. |
| 87 return true; | 87 return true; |
| 88 } | 88 } |
| 89 | 89 |
| 90 void HandleCycleWindowLinear(CycleDirection direction) { | 90 void HandleCycleWindowLinear(CycleDirection direction) { |
| 91 Shell::GetInstance()->launcher()->CycleWindowLinear(direction); | 91 Launcher::ForPrimaryDisplay()->CycleWindowLinear(direction); |
| 92 } | 92 } |
| 93 | 93 |
| 94 #if defined(OS_CHROMEOS) | 94 #if defined(OS_CHROMEOS) |
| 95 bool HandleLock() { | 95 bool HandleLock() { |
| 96 Shell::GetInstance()->delegate()->LockScreen(); | 96 Shell::GetInstance()->delegate()->LockScreen(); |
| 97 return true; | 97 return true; |
| 98 } | 98 } |
| 99 | 99 |
| 100 bool HandleFileManager(bool as_dialog) { | 100 bool HandleFileManager(bool as_dialog) { |
| 101 Shell::GetInstance()->delegate()->OpenFileManager(as_dialog); | 101 Shell::GetInstance()->delegate()->OpenFileManager(as_dialog); |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 break; | 588 break; |
| 589 case VOLUME_DOWN: | 589 case VOLUME_DOWN: |
| 590 return shell->tray_delegate()->GetVolumeControlDelegate()-> | 590 return shell->tray_delegate()->GetVolumeControlDelegate()-> |
| 591 HandleVolumeDown(accelerator); | 591 HandleVolumeDown(accelerator); |
| 592 break; | 592 break; |
| 593 case VOLUME_UP: | 593 case VOLUME_UP: |
| 594 return shell->tray_delegate()->GetVolumeControlDelegate()-> | 594 return shell->tray_delegate()->GetVolumeControlDelegate()-> |
| 595 HandleVolumeUp(accelerator); | 595 HandleVolumeUp(accelerator); |
| 596 break; | 596 break; |
| 597 case FOCUS_LAUNCHER: | 597 case FOCUS_LAUNCHER: |
| 598 if (shell->launcher()) | 598 return shell->focus_cycler()->FocusWidget( |
| 599 return shell->focus_cycler()->FocusWidget(shell->launcher()->widget()); | 599 Launcher::ForPrimaryDisplay()->widget()); |
| 600 break; | 600 break; |
| 601 case FOCUS_NEXT_PANE: | 601 case FOCUS_NEXT_PANE: |
| 602 return HandleRotatePaneFocus(Shell::FORWARD); | 602 return HandleRotatePaneFocus(Shell::FORWARD); |
| 603 case FOCUS_PREVIOUS_PANE: | 603 case FOCUS_PREVIOUS_PANE: |
| 604 return HandleRotatePaneFocus(Shell::BACKWARD); | 604 return HandleRotatePaneFocus(Shell::BACKWARD); |
| 605 case FOCUS_SYSTEM_TRAY: | 605 case FOCUS_SYSTEM_TRAY: |
| 606 if (shell->system_tray()) | 606 if (shell->system_tray()) |
| 607 return shell->focus_cycler()->FocusWidget( | 607 return shell->focus_cycler()->FocusWidget( |
| 608 shell->system_tray()->GetWidget()); | 608 shell->system_tray()->GetWidget()); |
| 609 break; | 609 break; |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 837 | 837 |
| 838 bool AcceleratorController::AcceleratorPressed( | 838 bool AcceleratorController::AcceleratorPressed( |
| 839 const ui::Accelerator& accelerator) { | 839 const ui::Accelerator& accelerator) { |
| 840 std::map<ui::Accelerator, int>::const_iterator it = | 840 std::map<ui::Accelerator, int>::const_iterator it = |
| 841 accelerators_.find(accelerator); | 841 accelerators_.find(accelerator); |
| 842 DCHECK(it != accelerators_.end()); | 842 DCHECK(it != accelerators_.end()); |
| 843 return PerformAction(static_cast<AcceleratorAction>(it->second), accelerator); | 843 return PerformAction(static_cast<AcceleratorAction>(it->second), accelerator); |
| 844 } | 844 } |
| 845 | 845 |
| 846 void AcceleratorController::SwitchToWindow(int window) { | 846 void AcceleratorController::SwitchToWindow(int window) { |
| 847 const LauncherItems& items = | 847 Launcher* launcher = Launcher::ForPrimaryDisplay(); |
| 848 Shell::GetInstance()->launcher()->model()->items(); | 848 const LauncherItems& items = launcher->model()->items(); |
| 849 int item_count = | 849 int item_count = launcher->model()->item_count(); |
| 850 Shell::GetInstance()->launcher()->model()->item_count(); | |
| 851 int indexes_left = window >= 0 ? window : item_count; | 850 int indexes_left = window >= 0 ? window : item_count; |
| 852 int found_index = -1; | 851 int found_index = -1; |
| 853 | 852 |
| 854 // Iterating until we have hit the index we are interested in which | 853 // Iterating until we have hit the index we are interested in which |
| 855 // is true once indexes_left becomes negative. | 854 // is true once indexes_left becomes negative. |
| 856 for (int i = 0; i < item_count && indexes_left >= 0; i++) { | 855 for (int i = 0; i < item_count && indexes_left >= 0; i++) { |
| 857 if (items[i].type != TYPE_APP_LIST && | 856 if (items[i].type != TYPE_APP_LIST && |
| 858 items[i].type != TYPE_BROWSER_SHORTCUT) { | 857 items[i].type != TYPE_BROWSER_SHORTCUT) { |
| 859 found_index = i; | 858 found_index = i; |
| 860 indexes_left--; | 859 indexes_left--; |
| 861 } | 860 } |
| 862 } | 861 } |
| 863 | 862 |
| 864 // There are two ways how found_index can be valid: a.) the nth item was | 863 // There are two ways how found_index can be valid: a.) the nth item was |
| 865 // found (which is true when indexes_left is -1) or b.) the last item was | 864 // found (which is true when indexes_left is -1) or b.) the last item was |
| 866 // requested (which is true when index was passed in as a negative number). | 865 // requested (which is true when index was passed in as a negative number). |
| 867 if (found_index >= 0 && (indexes_left == -1 || window < 0) && | 866 if (found_index >= 0 && (indexes_left == -1 || window < 0) && |
| 868 (items[found_index].status == ash::STATUS_RUNNING || | 867 (items[found_index].status == ash::STATUS_RUNNING || |
| 869 items[found_index].status == ash::STATUS_CLOSED)) { | 868 items[found_index].status == ash::STATUS_CLOSED)) { |
| 870 // Then set this one as active. | 869 // Then set this one as active. |
| 871 Shell::GetInstance()->launcher()->ActivateLauncherItem(found_index); | 870 launcher->ActivateLauncherItem(found_index); |
| 872 } | 871 } |
| 873 } | 872 } |
| 874 | 873 |
| 875 void AcceleratorController::RegisterAccelerators( | 874 void AcceleratorController::RegisterAccelerators( |
| 876 const AcceleratorData accelerators[], | 875 const AcceleratorData accelerators[], |
| 877 size_t accelerators_length) { | 876 size_t accelerators_length) { |
| 878 for (size_t i = 0; i < accelerators_length; ++i) { | 877 for (size_t i = 0; i < accelerators_length; ++i) { |
| 879 ui::Accelerator accelerator(accelerators[i].keycode, | 878 ui::Accelerator accelerator(accelerators[i].keycode, |
| 880 accelerators[i].modifiers); | 879 accelerators[i].modifiers); |
| 881 accelerator.set_type(accelerators[i].trigger_on_press ? | 880 accelerator.set_type(accelerators[i].trigger_on_press ? |
| 882 ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED); | 881 ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED); |
| 883 Register(accelerator, this); | 882 Register(accelerator, this); |
| 884 accelerators_.insert( | 883 accelerators_.insert( |
| 885 std::make_pair(accelerator, accelerators[i].action)); | 884 std::make_pair(accelerator, accelerators[i].action)); |
| 886 } | 885 } |
| 887 } | 886 } |
| 888 | 887 |
| 889 bool AcceleratorController::CanHandleAccelerators() const { | 888 bool AcceleratorController::CanHandleAccelerators() const { |
| 890 return true; | 889 return true; |
| 891 } | 890 } |
| 892 | 891 |
| 893 } // namespace ash | 892 } // namespace ash |
| OLD | NEW |