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