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_ACCELERATOR_FILTER_H_
6#define UI_WM_CORE_ACCELERATOR_FILTER_H_
7
8#include "base/macros.h"
9#include "base/memory/scoped_ptr.h"
10#include "ui/events/event_handler.h"
11#include "ui/wm/wm_export.h"
12
13namespace ui {
14class Accelerator;
15}
16
17namespace wm {
18class AcceleratorDelegate;
19
20// AcceleratorFilter filters key events for AcceleratorControler handling global
21// keyboard accelerators.
22class WM_EXPORT AcceleratorFilter : public ui::EventHandler {
23 public:
24  AcceleratorFilter(scoped_ptr<AcceleratorDelegate> delegate);
25  virtual ~AcceleratorFilter();
26
27  // Overridden from ui::EventHandler:
28  virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE;
29
30 private:
31  scoped_ptr<AcceleratorDelegate> delegate_;
32
33  DISALLOW_COPY_AND_ASSIGN(AcceleratorFilter);
34};
35
36ui::Accelerator CreateAcceleratorFromKeyEvent(const ui::KeyEvent& key_event);
37
38}  // namespace wm
39
40#endif  // UI_WM_CORE_ACCELERATOR_FILTER_H_
41