Home | History | Annotate | Download | only in shelf
      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 
     12 namespace ash {
     13 class ShelfLayoutManager;
     14 
     15 // Detects and forwards touch gestures that occur on a bezel sensor to the
     16 // shelf.
     17 class 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