| 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_
|
|
|