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