Home | History | Annotate | Download | only in focus
      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:
     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