blob: 43bf75853d7c9704d59f7bbdd6b273a21973afb4 [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// 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
Torne (Richard Coles)a1401312014-03-18 10:20:56 +00008#include "base/memory/scoped_ptr.h"
Torne (Richard Coles)d0247b12013-09-19 22:36:51 +01009#include "ui/events/event_handler.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000010
11namespace ash {
Ben Murdochc5cede92014-04-10 11:22:14 +010012class LongPressAffordanceHandler;
13class OverviewGestureHandler;
14class ShelfGestureHandler;
Torne (Richard Coles)58218062012-11-14 11:43:16 +000015
16namespace test {
17class SystemGestureEventFilterTest;
18}
19
Torne (Richard Coles)58218062012-11-14 11:43:16 +000020// An event filter which handles system level gesture events.
Torne (Richard Coles)a1401312014-03-18 10:20:56 +000021class SystemGestureEventFilter : public ui::EventHandler {
Torne (Richard Coles)58218062012-11-14 11:43:16 +000022 public:
23 SystemGestureEventFilter();
24 virtual ~SystemGestureEventFilter();
25
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000026 // Overridden from ui::EventHandler:
27 virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE;
Torne (Richard Coles)0f1bc082013-11-06 12:27:47 +000028 virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE;
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000029 virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE;
30 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
Torne (Richard Coles)58218062012-11-14 11:43:16 +000031
Torne (Richard Coles)58218062012-11-14 11:43:16 +000032 private:
33 friend class ash::test::SystemGestureEventFilterTest;
34
Torne (Richard Coles)58218062012-11-14 11:43:16 +000035 scoped_ptr<LongPressAffordanceHandler> long_press_affordance_;
Torne (Richard Coles)4e180b62013-10-18 15:46:22 +010036 scoped_ptr<OverviewGestureHandler> overview_gesture_handler_;
Torne (Richard Coles)5d1f7b12014-02-21 12:16:55 +000037 scoped_ptr<ShelfGestureHandler> shelf_gesture_handler_;
Torne (Richard Coles)58218062012-11-14 11:43:16 +000038
Torne (Richard Coles)58218062012-11-14 11:43:16 +000039 DISALLOW_COPY_AND_ASSIGN(SystemGestureEventFilter);
40};
41
Torne (Richard Coles)58218062012-11-14 11:43:16 +000042} // namespace ash
43
44#endif // ASH_WM_SYSTEM_GESTURE_EVENT_FILTER_H_