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 #ifndef UI_VIEWS_FOCUS_FOCUS_MANAGER_DELEGATE_H_ 6 #define UI_VIEWS_FOCUS_FOCUS_MANAGER_DELEGATE_H_ 7 8 #include "ui/views/views_export.h" 9 10 namespace ui { 11 class Accelerator; 12 class AcceleratorTarget; 13 } 14 15 namespace views { 16 17 // Delegate interface for views::FocusManager. 18 class VIEWS_EXPORT FocusManagerDelegate { 19 public: ~FocusManagerDelegate()20 virtual ~FocusManagerDelegate() {} 21 22 // Activate the target associated with the specified accelerator. 23 // First, AcceleratorPressed handler of the most recently registered target 24 // is called, and if that handler processes the event (i.e. returns true), 25 // this method immediately returns. If not, we do the same thing on the next 26 // target, and so on. 27 // Returns true if an accelerator was activated. 28 virtual bool ProcessAccelerator(const ui::Accelerator& accelerator) = 0; 29 30 // Returns the AcceleratorTarget that should be activated for the specified 31 // keyboard accelerator, or NULL if no view is registered for that keyboard 32 // accelerator. 33 virtual ui::AcceleratorTarget* GetCurrentTargetForAccelerator( 34 const ui::Accelerator& accelerator) const = 0; 35 }; 36 37 } // namespace views 38 39 #endif // UI_VIEWS_FOCUS_FOCUS_MANAGER_DELEGATE_H_ 40