1// Copyright (c) 2012 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_WM_SYSTEM_GESTURE_EVENT_FILTER_H_ 6#define ASH_WM_SYSTEM_GESTURE_EVENT_FILTER_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "ui/events/event_handler.h" 10 11namespace ash { 12class LongPressAffordanceHandler; 13class OverviewGestureHandler; 14class ShelfGestureHandler; 15 16namespace test { 17class SystemGestureEventFilterTest; 18} 19 20// An event filter which handles system level gesture events. 21class SystemGestureEventFilter : public ui::EventHandler { 22 public: 23 SystemGestureEventFilter(); 24 virtual ~SystemGestureEventFilter(); 25 26 // Overridden from ui::EventHandler: 27 virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE; 28 virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; 29 virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; 30 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; 31 32 private: 33 friend class ash::test::SystemGestureEventFilterTest; 34 35 scoped_ptr<LongPressAffordanceHandler> long_press_affordance_; 36 scoped_ptr<OverviewGestureHandler> overview_gesture_handler_; 37 scoped_ptr<ShelfGestureHandler> shelf_gesture_handler_; 38 39 DISALLOW_COPY_AND_ASSIGN(SystemGestureEventFilter); 40}; 41 42} // namespace ash 43 44#endif // ASH_WM_SYSTEM_GESTURE_EVENT_FILTER_H_ 45