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