• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/accelerators/focus_manager_factory.h"
6 
7 #include "ash/accelerators/accelerator_controller.h"
8 #include "ash/shell.h"
9 #include "ui/views/focus/focus_manager.h"
10 
11 namespace ash {
12 
AshFocusManagerFactory()13 AshFocusManagerFactory::AshFocusManagerFactory() {}
~AshFocusManagerFactory()14 AshFocusManagerFactory::~AshFocusManagerFactory() {}
15 
CreateFocusManager(views::Widget * widget,bool desktop_widget)16 views::FocusManager* AshFocusManagerFactory::CreateFocusManager(
17     views::Widget* widget,
18     bool desktop_widget) {
19   return new views::FocusManager(widget, desktop_widget ? NULL : new Delegate);
20 }
21 
ProcessAccelerator(const ui::Accelerator & accelerator)22 bool AshFocusManagerFactory::Delegate::ProcessAccelerator(
23     const ui::Accelerator& accelerator) {
24   AcceleratorController* controller =
25       Shell::GetInstance()->accelerator_controller();
26   if (controller)
27     return controller->Process(accelerator);
28   return false;
29 }
30 
31 ui::AcceleratorTarget*
GetCurrentTargetForAccelerator(const ui::Accelerator & accelerator) const32 AshFocusManagerFactory::Delegate::GetCurrentTargetForAccelerator(
33     const ui::Accelerator& accelerator) const {
34   AcceleratorController* controller =
35       Shell::GetInstance()->accelerator_controller();
36   if (controller && controller->IsRegistered(accelerator))
37     return controller;
38   return NULL;
39 }
40 
41 }  // namespace ash
42