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

Unified Diff: sky/framework/animation/scroll_curve.dart

Issue 1005633002: Factor ScrollCurve out of Scrollable (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 | « sky/examples/stocks-fn/stocksapp.dart ('k') | sky/framework/components/fixed_height_scrollable.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/framework/animation/scroll_curve.dart
diff --git a/sky/framework/animation/scroll_curve.dart b/sky/framework/animation/scroll_curve.dart
new file mode 100644
index 0000000000000000000000000000000000000000..07940aee1337040426a9e52e7a36d3f083adc384
--- /dev/null
+++ b/sky/framework/animation/scroll_curve.dart
@@ -0,0 +1,26 @@
+// Copyright 2015 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.
+
+import 'dart:math' as math;
+
+abstract class ScrollCurve {
+ // Returns the new scroll offset.
+ double apply(double scrollOffset, double scrollDelta);
+}
+
+class BoundedScrollCurve extends ScrollCurve {
+ double minOffset;
+ double maxOffset;
+
+ BoundedScrollCurve({this.minOffset: 0.0, this.maxOffset});
+
+ double apply(double scrollOffset, double scrollDelta) {
+ double newScrollOffset = scrollOffset + scrollDelta;
+ if (minOffset != null)
+ newScrollOffset = math.max(minOffset, newScrollOffset);
+ if (maxOffset != null)
+ newScrollOffset = math.min(maxOffset, newScrollOffset);
+ return newScrollOffset;
+ }
+}
« no previous file with comments | « sky/examples/stocks-fn/stocksapp.dart ('k') | sky/framework/components/fixed_height_scrollable.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698