1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef UI_WM_CORE_NESTED_ACCELERATOR_DELEGATE_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define UI_WM_CORE_NESTED_ACCELERATOR_DELEGATE_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace ui { 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class Accelerator; 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace wm { 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// A delegate interface that implements the behavior of nested accelerator 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// handling. 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class NestedAcceleratorDelegate { 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) enum Result { 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) RESULT_PROCESSED, 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) RESULT_NOT_PROCESSED, 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // The key event should be ignored now and instead be reposted so that 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // next event loop. 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) RESULT_PROCESS_LATER, 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) }; 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual ~NestedAcceleratorDelegate() {} 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Attempts to process the |accelerator|. 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual Result ProcessAccelerator(const ui::Accelerator& accelerator) = 0; 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace wm 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // UI_WM_CORE_NESTED_ACCELERATOR_DELEGATE_H_ 35