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 ASH_ACCELERATORS_ACCELERATOR_DELEGATE_H_
6#define ASH_ACCELERATORS_ACCELERATOR_DELEGATE_H_
7
8#include "ash/ash_export.h"
9#include "base/macros.h"
10#include "ui/wm/core/accelerator_delegate.h"
11
12namespace ash {
13
14class ASH_EXPORT AcceleratorDelegate
15    : NON_EXPORTED_BASE(public wm::AcceleratorDelegate) {
16 public:
17  AcceleratorDelegate();
18  virtual ~AcceleratorDelegate();
19
20  // wm::AcceleratorDelegate:
21  virtual bool ProcessAccelerator(const ui::KeyEvent& event,
22                                  const ui::Accelerator& accelerator,
23                                  KeyType key_type) OVERRIDE;
24
25 private:
26  // Returns true if the window should be allowed a chance to handle
27  // system keys.
28  bool CanConsumeSystemKeys(const ui::KeyEvent& event);
29
30  bool ShouldProcessAcceleratorNow(const ui::KeyEvent& event,
31                                   const ui::Accelerator& accelerator);
32
33  DISALLOW_COPY_AND_ASSIGN(AcceleratorDelegate);
34};
35
36}  // namespace ash
37
38#endif  // ASH_ACCELERATORS_ACCELERATOR_DELEGATE_H_
39