// 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. #ifndef UI_VIEWS_FOCUS_FOCUS_MANAGER_DELEGATE_H_ #define UI_VIEWS_FOCUS_FOCUS_MANAGER_DELEGATE_H_ #include "ui/views/views_export.h" namespace ui { class Accelerator; class AcceleratorTarget; } namespace views { // Delegate interface for views::FocusManager. class VIEWS_EXPORT FocusManagerDelegate { public: virtual ~FocusManagerDelegate() {} // Activate the target associated with the specified accelerator. // First, AcceleratorPressed handler of the most recently registered target // is called, and if that handler processes the event (i.e. returns true), // this method immediately returns. If not, we do the same thing on the next // target, and so on. // Returns true if an accelerator was activated. virtual bool ProcessAccelerator(const ui::Accelerator& accelerator) = 0; // Returns the AcceleratorTarget that should be activated for the specified // keyboard accelerator, or NULL if no view is registered for that keyboard // accelerator. virtual ui::AcceleratorTarget* GetCurrentTargetForAccelerator( const ui::Accelerator& accelerator) const = 0; }; } // namespace views #endif // UI_VIEWS_FOCUS_FOCUS_MANAGER_DELEGATE_H_