• 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 #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