test_pointer.dart 1.38 KB
Newer Older
Adam Barth's avatar
Adam Barth committed
1 2 3 4
// 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.

5
import 'package:flutter/gestures.dart';
6

7
export 'dart:ui' show Point;
8

9 10 11 12 13
class TestPointer {
  TestPointer([ this.pointer = 1 ]);

  int pointer;
  bool isDown = false;
Ian Hickson's avatar
Ian Hickson committed
14
  Point location;
15

Ian Hickson's avatar
Ian Hickson committed
16
  PointerDownEvent down(Point newLocation, { Duration timeStamp: const Duration() }) {
17 18 19
    assert(!isDown);
    isDown = true;
    location = newLocation;
Ian Hickson's avatar
Ian Hickson committed
20 21
      return new PointerDownEvent(
      timeStamp: timeStamp,
22
      pointer: pointer,
Ian Hickson's avatar
Ian Hickson committed
23
      position: location
24 25 26
    );
  }

Ian Hickson's avatar
Ian Hickson committed
27
  PointerMoveEvent move(Point newLocation, { Duration timeStamp: const Duration() }) {
28
    assert(isDown);
Ian Hickson's avatar
Ian Hickson committed
29
    Offset delta = newLocation - location;
30
    location = newLocation;
Ian Hickson's avatar
Ian Hickson committed
31 32
    return new PointerMoveEvent(
      timeStamp: timeStamp,
33
      pointer: pointer,
Ian Hickson's avatar
Ian Hickson committed
34 35
      position: newLocation,
      delta: delta
36 37 38
    );
  }

Ian Hickson's avatar
Ian Hickson committed
39
  PointerUpEvent up({ Duration timeStamp: const Duration() }) {
40 41
    assert(isDown);
    isDown = false;
Ian Hickson's avatar
Ian Hickson committed
42 43
    return new PointerUpEvent(
      timeStamp: timeStamp,
44
      pointer: pointer,
Ian Hickson's avatar
Ian Hickson committed
45
      position: location
46 47 48
    );
  }

Ian Hickson's avatar
Ian Hickson committed
49
  PointerCancelEvent cancel({ Duration timeStamp: const Duration() }) {
50 51
    assert(isDown);
    isDown = false;
Ian Hickson's avatar
Ian Hickson committed
52 53
    return new PointerCancelEvent(
      timeStamp: timeStamp,
54
      pointer: pointer,
Ian Hickson's avatar
Ian Hickson committed
55
      position: location
56 57 58 59
    );
  }

}