Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Unified Diff: ui/events/gestures/gesture_sequence.h

Issue 458363002: Remove old Aura Gesture Detection Pipeline. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address sadrul's comment, and rebase. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/gestures/gesture_recognizer_impl.cc ('k') | ui/events/gestures/gesture_sequence.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/gestures/gesture_sequence.h
diff --git a/ui/events/gestures/gesture_sequence.h b/ui/events/gestures/gesture_sequence.h
deleted file mode 100644
index 3dd13fa5c92d432b9b379231044634bbe2861fe3..0000000000000000000000000000000000000000
--- a/ui/events/gestures/gesture_sequence.h
+++ /dev/null
@@ -1,262 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef UI_EVENTS_GESTURES_GESTURE_SEQUENCE_H_
-#define UI_EVENTS_GESTURES_GESTURE_SEQUENCE_H_
-
-#include "base/timer/timer.h"
-#include "ui/events/event_constants.h"
-#include "ui/events/gesture_event_details.h"
-#include "ui/events/gestures/gesture_point.h"
-#include "ui/events/gestures/gesture_recognizer.h"
-#include "ui/gfx/rect.h"
-
-namespace ui {
-class TouchEvent;
-class GestureEvent;
-
-// Gesture state.
-enum GestureState {
- GS_NO_GESTURE,
- GS_PENDING_SYNTHETIC_CLICK,
- // One finger is down: tap could occur, but scroll cannot until the number of
- // active touch points changes.
- GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL,
- // One finger is down: no gestures can occur until the number of active touch
- // points changes.
- GS_SYNTHETIC_CLICK_ABORTED,
- GS_SCROLL,
- GS_PINCH,
- GS_PENDING_TWO_FINGER_TAP,
- GS_PENDING_TWO_FINGER_TAP_NO_PINCH,
- GS_PENDING_PINCH,
- GS_PENDING_PINCH_NO_PINCH,
-};
-
-enum ScrollType {
- ST_FREE,
- ST_HORIZONTAL,
- ST_VERTICAL,
-};
-
-enum IsFirstScroll {
- FS_FIRST_SCROLL,
- FS_NOT_FIRST_SCROLL,
-};
-
-// Delegates dispatch of gesture events for which the GestureSequence does not
-// have enough context to dispatch itself.
-class EVENTS_EXPORT GestureSequenceDelegate {
- public:
- virtual void DispatchPostponedGestureEvent(GestureEvent* event) = 0;
-
- protected:
- virtual ~GestureSequenceDelegate() {}
-};
-
-// A GestureSequence recognizes gestures from touch sequences.
-class EVENTS_EXPORT GestureSequence {
- public:
- // Maximum number of points in a single gesture.
- static const int kMaxGesturePoints = 12;
-
- explicit GestureSequence(GestureSequenceDelegate* delegate);
- virtual ~GestureSequence();
-
- typedef GestureRecognizer::Gestures Gestures;
-
- // Invoked for each touch event that could contribute to the current gesture.
- // Returns list of zero or more GestureEvents identified after processing
- // TouchEvent.
- // Caller would be responsible for freeing up Gestures.
- virtual Gestures* ProcessTouchEventForGesture(const TouchEvent& event,
- EventResult status);
- const GesturePoint* points() const { return points_; }
- int point_count() const { return point_count_; }
-
- const gfx::PointF& last_touch_location() const {
- return last_touch_location_;
- }
-
- protected:
- virtual base::OneShotTimer<GestureSequence>* CreateTimer();
- base::OneShotTimer<GestureSequence>* GetLongPressTimer();
- base::OneShotTimer<GestureSequence>* GetShowPressTimer();
-
- private:
- // Recreates the axis-aligned bounding box that contains all the touch-points
- // at their most recent position.
- void RecreateBoundingBox();
-
- void ResetVelocities();
-
- GesturePoint& GesturePointForEvent(const TouchEvent& event);
-
- // Do a linear scan through points_ to find the GesturePoint
- // with id |point_id|.
- GesturePoint* GetPointByPointId(int point_id);
-
- bool IsSecondTouchDownCloseEnoughForTwoFingerTap();
-
- // Creates a gesture event with the specified parameters. The function
- // includes some common information (e.g. number of touch-points in the
- // gesture etc.) in the gesture event as well.
- GestureEvent* CreateGestureEvent(const GestureEventDetails& details,
- const gfx::PointF& location,
- int flags,
- base::Time timestamp,
- int oldest_touch_id);
-
- // Functions to be called to add GestureEvents, after successful recognition.
-
- // Tap gestures.
- void AppendTapDownGestureEvent(const GesturePoint& point, Gestures* gestures);
- void PrependTapCancelGestureEvent(const GesturePoint& point,
- Gestures* gestures);
- void AppendBeginGestureEvent(const GesturePoint& point, Gestures* gestures);
- void AppendEndGestureEvent(const GesturePoint& point, Gestures* gestures);
- void AppendClickGestureEvent(const GesturePoint& point,
- int tap_count,
- Gestures* gestures);
- void AppendDoubleClickGestureEvent(const GesturePoint& point,
- Gestures* gestures);
- void AppendLongPressGestureEvent();
- void AppendShowPressGestureEvent();
- void AppendLongTapGestureEvent(const GesturePoint& point,
- Gestures* gestures);
-
- // Scroll gestures.
- void AppendScrollGestureBegin(const GesturePoint& point,
- const gfx::PointF& location,
- Gestures* gestures);
- void AppendScrollGestureEnd(const GesturePoint& point,
- const gfx::PointF& location,
- Gestures* gestures,
- float x_velocity,
- float y_velocity);
- void AppendScrollGestureUpdate(GesturePoint& point,
- Gestures* gestures,
- IsFirstScroll is_first_scroll);
-
- // Pinch gestures.
- void AppendPinchGestureBegin(const GesturePoint& p1,
- const GesturePoint& p2,
- Gestures* gestures);
- void AppendPinchGestureEnd(const GesturePoint& p1,
- const GesturePoint& p2,
- float scale,
- Gestures* gestures);
- void AppendPinchGestureUpdate(const GesturePoint& point,
- float scale,
- Gestures* gestures);
- void AppendSwipeGesture(const GesturePoint& point,
- int swipe_x,
- int swipe_y,
- Gestures* gestures);
- void AppendTwoFingerTapGestureEvent(Gestures* gestures);
-
- void set_state(const GestureState state) { state_ = state; }
-
- // Various GestureTransitionFunctions for a signature.
- // There is, 1:many mapping from GestureTransitionFunction to Signature
- // But a Signature have only one GestureTransitionFunction.
- bool Click(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
- bool ScrollStart(const TouchEvent& event,
- GesturePoint& point,
- Gestures* gestures);
- void BreakRailScroll(const TouchEvent& event,
- GesturePoint& point,
- Gestures* gestures);
- bool ScrollUpdate(const TouchEvent& event,
- GesturePoint& point,
- Gestures* gestures,
- IsFirstScroll is_first_scroll);
- bool TouchDown(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
- bool TwoFingerTouchDown(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
- bool TwoFingerTouchMove(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
- bool TwoFingerTouchReleased(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
- bool ScrollEnd(const TouchEvent& event,
- GesturePoint& point,
- Gestures* gestures);
- bool PinchStart(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
- bool PinchUpdate(const TouchEvent& event,
- GesturePoint& point,
- Gestures* gestures);
- bool PinchEnd(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
- bool MaybeSwipe(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
-
- void TwoFingerTapOrPinch(const TouchEvent& event,
- const GesturePoint& point,
- Gestures* gestures);
-
- void StopTimersIfRequired(const TouchEvent& event);
-
- void StartRailFreeScroll(const GesturePoint& point, Gestures* gestures);
-
- // Current state of gesture recognizer.
- GestureState state_;
-
- // ui::EventFlags.
- int flags_;
-
- // We maintain the smallest axis-aligned rectangle that contains all the
- // current touch-points. This box is updated after every touch-event.
- gfx::RectF bounding_box_;
-
- // The center of the bounding box used in the latest multi-finger scroll
- // update gesture.
- gfx::PointF latest_multi_scroll_update_location_;
-
- // The last scroll update prediction offset. This is removed from the scroll
- // distance on the next update since the page has already been scrolled this
- // distance.
- gfx::Vector2dF last_scroll_prediction_offset_;
-
- // For pinch, the 'distance' represents the diagonal distance of
- // |bounding_box_|.
-
- // The distance between the two points at PINCH_START.
- float pinch_distance_start_;
-
- // This distance is updated after each PINCH_UPDATE.
- float pinch_distance_current_;
-
- // This is the time when second touch down was received. Used for determining
- // if a two finger double tap has happened.
- base::TimeDelta second_touch_time_;
-
- ScrollType scroll_type_;
- scoped_ptr<base::OneShotTimer<GestureSequence> > long_press_timer_;
- scoped_ptr<base::OneShotTimer<GestureSequence> > show_press_timer_;
-
- GesturePoint points_[kMaxGesturePoints];
- int point_count_;
-
- // Location of the last touch event.
- gfx::PointF last_touch_location_;
-
- GestureSequenceDelegate* delegate_;
-
- DISALLOW_COPY_AND_ASSIGN(GestureSequence);
-};
-
-} // namespace ui
-
-#endif // UI_EVENTS_GESTURES_GESTURE_SEQUENCE_H_
« no previous file with comments | « ui/events/gestures/gesture_recognizer_impl.cc ('k') | ui/events/gestures/gesture_sequence.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698