Home | History | Annotate | Download | only in core
      1 // Copyright 2014 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_WM_CORE_NESTED_ACCELERATOR_DELEGATE_H_
      6 #define UI_WM_CORE_NESTED_ACCELERATOR_DELEGATE_H_
      7 
      8 namespace ui {
      9 class Accelerator;
     10 }
     11 
     12 namespace wm {
     13 
     14 // A delegate interface that implements the behavior of nested accelerator
     15 // handling.
     16 class NestedAcceleratorDelegate {
     17  public:
     18   enum Result {
     19     RESULT_PROCESSED,
     20     RESULT_NOT_PROCESSED,
     21     // The key event should be ignored now and instead be reposted so that
     22     // next event loop.
     23     RESULT_PROCESS_LATER,
     24   };
     25 
     26   virtual ~NestedAcceleratorDelegate() {}
     27 
     28   // Attempts to process the |accelerator|.
     29   virtual Result ProcessAccelerator(const ui::Accelerator& accelerator) = 0;
     30 };
     31 
     32 }  // namespace wm
     33 
     34 #endif  // UI_WM_CORE_NESTED_ACCELERATOR_DELEGATE_H_
     35