1// Copyright 2013 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_SHELF_SHELF_BEZEL_EVENT_FILTER_H_
6#define ASH_SHELF_SHELF_BEZEL_EVENT_FILTER_H_
7
8#include "ash/wm/gestures/shelf_gesture_handler.h"
9#include "ui/events/event_handler.h"
10#include "ui/gfx/rect.h"
11
12namespace ash {
13class ShelfLayoutManager;
14
15// Detects and forwards touch gestures that occur on a bezel sensor to the
16// shelf.
17class ShelfBezelEventFilter : public ui::EventHandler {
18 public:
19  explicit ShelfBezelEventFilter(ShelfLayoutManager* shelf);
20  virtual ~ShelfBezelEventFilter();
21
22  // Overridden from ui::EventHandler:
23  virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
24
25 private:
26  bool IsShelfOnBezel(const gfx::Rect& screen,
27                      const gfx::Point& point) const;
28
29  ShelfLayoutManager* shelf_;  // non-owned
30  bool in_touch_drag_;
31  ShelfGestureHandler gesture_handler_;
32  DISALLOW_COPY_AND_ASSIGN(ShelfBezelEventFilter);
33};
34
35}  // namespace ash
36
37#endif  // ASH_SHELF_SHELF_BEZEL_EVENT_FILTER_H_
38