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

Unified Diff: sky/framework/components/scrollable.dart

Issue 1132063007: Rationalize Dart mojo and sky package structure (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 7 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/framework/components/scaffold.dart ('k') | sky/framework/debug/shake-to-reload.sky » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/framework/components/scrollable.dart
diff --git a/sky/framework/components/scrollable.dart b/sky/framework/components/scrollable.dart
deleted file mode 100644
index 3858a25fbf1705e514de8e7bce12bb1f237f127a..0000000000000000000000000000000000000000
--- a/sky/framework/components/scrollable.dart
+++ /dev/null
@@ -1,146 +0,0 @@
-// 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 '../animation/generators.dart';
-import '../animation/mechanics.dart';
-import '../animation/scroll_behavior.dart';
-import '../fn.dart';
-import '../theme/view_configuration.dart' as config;
-import 'dart:math' as math;
-import 'dart:sky' as sky;
-
-const double _kMillisecondsPerSecond = 1000.0;
-
-double _velocityForFlingGesture(sky.GestureEvent event) {
- return math.max(-config.kMaxFlingVelocity, math.min(config.kMaxFlingVelocity,
- -event.velocityY)) / _kMillisecondsPerSecond;
-}
-
-abstract class ScrollClient {
- bool ancestorScrolled(Scrollable ancestor);
-}
-
-abstract class Scrollable extends Component {
-
- double _scrollOffset = 0.0;
- double get scrollOffset => _scrollOffset;
-
- ScrollBehavior _scrollBehavior;
- ScrollBehavior createScrollBehavior();
- ScrollBehavior get scrollBehavior {
- if (_scrollBehavior == null)
- _scrollBehavior = createScrollBehavior();
- return _scrollBehavior;
- }
-
- Simulation _simulation;
-
- Scrollable({Object key}) : super(key: key) {
- onDidUnmount(_stopSimulation);
- }
-
- UINode buildContent();
-
- UINode build() {
- return new EventListenerNode(
- buildContent(),
- onPointerDown: _handlePointerDown,
- onPointerUp: _handlePointerUpOrCancel,
- onPointerCancel: _handlePointerUpOrCancel,
- onGestureFlingStart: _handleFlingStart,
- onGestureFlingCancel: _handleFlingCancel,
- onGestureScrollUpdate: _handleScrollUpdate,
- onWheel: _handleWheel
- );
- }
-
- List<ScrollClient> _registeredScrollClients;
-
- void registerScrollClient(ScrollClient notifiee) {
- if (_registeredScrollClients == null)
- _registeredScrollClients = new List<ScrollClient>();
- setState(() {
- _registeredScrollClients.add(notifiee);
- });
- }
-
- void unregisterScrollClient(ScrollClient notifiee) {
- if (_registeredScrollClients == null)
- return;
- setState(() {
- _registeredScrollClients.remove(notifiee);
- });
- }
-
- bool scrollTo(double newScrollOffset) {
- if (newScrollOffset == _scrollOffset)
- return false;
- setState(() {
- _scrollOffset = newScrollOffset;
- });
- if (_registeredScrollClients != null) {
- var newList = null;
- _registeredScrollClients.forEach((target) {
- if (target.ancestorScrolled(this)) {
- if (newList == null)
- newList = new List<ScrollClient>();
- newList.add(target);
- }
- });
- setState(() {
- _registeredScrollClients = newList;
- });
- }
- return true;
- }
-
- bool scrollBy(double scrollDelta) {
- var newScrollOffset = scrollBehavior.applyCurve(_scrollOffset, scrollDelta);
- return scrollTo(newScrollOffset);
- }
-
- void _stopSimulation() {
- if (_simulation == null)
- return;
- _simulation.cancel();
- _simulation = null;
- }
-
- void _startSimulation(Particle particle) {
- _stopSimulation();
- _simulation = scrollBehavior.release(particle);
- if (_simulation == null)
- return;
- _simulation.onTick.listen((_) => scrollTo(particle.position));
- }
-
- Particle _createParticle([double velocity = 0.0]) {
- return new Particle(position: _scrollOffset, velocity: velocity);
- }
-
- void _handlePointerDown(_) {
- _stopSimulation();
- }
-
- void _handlePointerUpOrCancel(_) {
- if (_simulation == null)
- _startSimulation(_createParticle());
- }
-
- void _handleScrollUpdate(sky.GestureEvent event) {
- scrollBy(-event.dy);
- }
-
- void _handleFlingStart(sky.GestureEvent event) {
- _startSimulation(_createParticle(_velocityForFlingGesture(event)));
- }
-
- void _handleFlingCancel(sky.GestureEvent event) {
- _startSimulation(_createParticle());
- }
-
- void _handleWheel(sky.WheelEvent event) {
- scrollBy(-event.offsetY);
- }
-}
« no previous file with comments | « sky/framework/components/scaffold.dart ('k') | sky/framework/debug/shake-to-reload.sky » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698