// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ash/accelerators/focus_manager_factory.h" #include "ash/accelerators/accelerator_controller.h" #include "ash/shell.h" #include "ui/views/focus/focus_manager.h" namespace ash { AshFocusManagerFactory::AshFocusManagerFactory() {} AshFocusManagerFactory::~AshFocusManagerFactory() {} views::FocusManager* AshFocusManagerFactory::CreateFocusManager( views::Widget* widget, bool desktop_widget) { return new views::FocusManager(widget, desktop_widget ? NULL : new Delegate); } bool AshFocusManagerFactory::Delegate::ProcessAccelerator( const ui::Accelerator& accelerator) { AcceleratorController* controller = Shell::GetInstance()->accelerator_controller(); if (controller) return controller->Process(accelerator); return false; } ui::AcceleratorTarget* AshFocusManagerFactory::Delegate::GetCurrentTargetForAccelerator( const ui::Accelerator& accelerator) const { AcceleratorController* controller = Shell::GetInstance()->accelerator_controller(); if (controller && controller->IsRegistered(accelerator)) return controller; return NULL; } } // namespace ash