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

Side by Side Diff: client/touch/ScrollWatcher.dart

Issue 9382027: Move client/{base, observable, layout, touch, util, view} to samples/ui_lib . (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « client/touch/Momentum.dart ('k') | client/touch/Scrollbar.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 interface ScrollListener {
6 /**
7 * The callback invoked for a scroll event.
8 * [decelerating] specifies whether or not the content is moving due
9 * to deceleration. It should be false if the content is moving because the
10 * user is dragging the content.
11 */
12 void onScrollerMoved(double scrollX, double scrollY, bool decelerating);
13 }
14
15 /**
16 * The scroll watcher is intended to provide a single way to
17 * listen for scroll events from instances of Scroller.
18 * TODO(jacobr): this class is obsolete.
19 */
20 class ScrollWatcher {
21 Scroller _scroller;
22
23 List<ScrollListener> _listeners;
24
25 Element _scrollerEl;
26
27 ScrollWatcher(Scroller scroller)
28 : _scroller = scroller, _listeners = new List<ScrollListener>() {
29 }
30
31 void addListener(ScrollListener listener) {
32 _listeners.add(listener);
33 }
34
35 /**
36 * Send the scroll event to all listeners.
37 * [decelerating] is true if the offset is changing because of deceleration.
38 */
39 void _dispatchScroll(num scrollX, num scrollY,
40 [bool decelerating = false]) {
41 for (final listener in _listeners) {
42 listener.onScrollerMoved(scrollX, scrollY, decelerating);
43 }
44 }
45
46 /**
47 * Initializes elements and event handlers. Must be called after construction
48 * and before usage.
49 */
50 void initialize() {
51 _scrollerEl = _scroller.getElement();
52 _scroller.onContentMoved.add((e) { _onContentMoved(e); });
53 }
54
55 /**
56 * This callback is invoked any time the scroller content offset changes.
57 */
58 void _onContentMoved(Event e) {
59 num scrollX = _scroller.getHorizontalOffset();
60 num scrollY = _scroller.getVerticalOffset();
61 _dispatchScroll(scrollX, scrollY);
62 }
63 }
OLDNEW
« no previous file with comments | « client/touch/Momentum.dart ('k') | client/touch/Scrollbar.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698