• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_WM_GESTURES_OVERVIEW_GESTURE_HANDLER_H_
6 #define ASH_WM_GESTURES_OVERVIEW_GESTURE_HANDLER_H_
7 
8 #include "base/basictypes.h"
9 
10 namespace aura {
11 class Window;
12 }
13 
14 namespace ui {
15 class GestureEvent;
16 class ScrollEvent;
17 }
18 
19 namespace ash {
20 
21 // This handles a 3-finger swipe down gesture from the top of the screen to
22 // enter overview mode.
23 class OverviewGestureHandler {
24  public:
25   OverviewGestureHandler();
26   virtual ~OverviewGestureHandler();
27 
28   // Processes a scroll event and may start overview. Returns true if the event
29   // has been handled and should not be processed further, false otherwise.
30   bool ProcessScrollEvent(const ui::ScrollEvent& event);
31 
32   // Processes a gesture event and may start overview. Returns true if the event
33   // has been handled and should not be processed any farther, false otherwise.
34   bool ProcessGestureEvent(const ui::GestureEvent& event);
35 
36  private:
37   // True if the current/last gesture began in the top bezel.
38   bool in_top_bezel_gesture_;
39 
40   // The total distance scrolled with three fingers.
41   float scroll_x_;
42   float scroll_y_;
43 
44   DISALLOW_COPY_AND_ASSIGN(OverviewGestureHandler);
45 };
46 
47 }  // namespace ash
48 
49 #endif  // ASH_WM_GESTURES_OVERVIEW_GESTURE_HANDLER_H_
50