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

Unified Diff: ui/events/gesture_detection/snap_scroll_controller.h

Issue 1287103004: Sync ui/events to chromium @ https://codereview.chromium.org/1210203002 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 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
Index: ui/events/gesture_detection/snap_scroll_controller.h
diff --git a/ui/events/gesture_detection/snap_scroll_controller.h b/ui/events/gesture_detection/snap_scroll_controller.h
index 753c2bcb20103e383fef3a58d64f20900b6f3d8a..049bcd7a3610d2b4f50c44dd9dcc63209b3264a9 100644
--- a/ui/events/gesture_detection/snap_scroll_controller.h
+++ b/ui/events/gesture_detection/snap_scroll_controller.h
@@ -7,50 +7,42 @@
#include "base/basictypes.h"
#include "ui/events/gesture_detection/gesture_detection_export.h"
-
-namespace gfx {
-class Display;
-}
+#include "ui/gfx/geometry/point_f.h"
+#include "ui/gfx/geometry/size_f.h"
+#include "ui/gfx/geometry/vector2d_f.h"
namespace ui {
class MotionEvent;
-class ZoomManager;
// Port of SnapScrollController.java from Chromium
// Controls the scroll snapping behavior based on scroll updates.
-class SnapScrollController {
+class GESTURE_DETECTION_EXPORT SnapScrollController {
public:
- explicit SnapScrollController(const gfx::Display& display);
+ SnapScrollController(float snap_bound, const gfx::SizeF& display_size);
~SnapScrollController();
+ // Sets the snap scroll mode based on the event type.
+ void SetSnapScrollMode(const MotionEvent& event,
+ bool is_scale_gesture_detection_in_progress);
+
// Updates the snap scroll mode based on the given X and Y distance to be
// moved on scroll. If the scroll update is above a threshold, the snapping
// behavior is reset.
void UpdateSnapScrollMode(float distance_x, float distance_y);
- // Sets the snap scroll mode based on the event type.
- void SetSnapScrollingMode(const MotionEvent& event,
- bool is_scale_gesture_detection_in_progress);
-
- void ResetSnapScrollMode() { snap_scroll_mode_ = SNAP_NONE; }
- bool IsSnapVertical() const { return snap_scroll_mode_ == SNAP_VERT; }
- bool IsSnapHorizontal() const { return snap_scroll_mode_ == SNAP_HORIZ; }
- bool IsSnappingScrolls() const { return snap_scroll_mode_ != SNAP_NONE; }
+ bool IsSnapVertical() const;
+ bool IsSnapHorizontal() const;
+ bool IsSnappingScrolls() const;
private:
- enum SnapMode {
- SNAP_NONE,
- SNAP_HORIZ,
- SNAP_VERT
- };
-
- float channel_distance_;
- SnapMode snap_scroll_mode_;
- float first_touch_x_;
- float first_touch_y_;
- float distance_x_;
- float distance_y_;
+ enum SnapMode { SNAP_NONE, SNAP_PENDING, SNAP_HORIZ, SNAP_VERT };
+
+ const float snap_bound_;
+ const float channel_distance_;
+ SnapMode mode_;
+ gfx::PointF down_position_;
+ gfx::Vector2dF accumulated_distance_;
DISALLOW_COPY_AND_ASSIGN(SnapScrollController);
};
« no previous file with comments | « ui/events/gesture_detection/scale_gesture_detector.cc ('k') | ui/events/gesture_detection/snap_scroll_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698