Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
9f74a178
Commit
9f74a178
authored
Oct 13, 2015
by
Kris Giesing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Address comments
parent
0c229008
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
83 additions
and
81 deletions
+83
-81
events.dart
packages/flutter/lib/src/gestures/events.dart
+69
-67
pointer_router.dart
packages/flutter/lib/src/gestures/pointer_router.dart
+1
-1
binding.dart
packages/flutter/lib/src/rendering/binding.dart
+1
-1
scale_test.dart
packages/unit/test/gestures/scale_test.dart
+12
-12
No files found.
packages/flutter/lib/src/gestures/events.dart
View file @
9f74a178
import
'dart:ui'
as
ui
;
///
Dart-layer version of ui.Event
///
Base class for input events.
class
InputEvent
{
InputEvent
({
this
.
type
})
:
timeStamp
=
0.0
;
const
InputEvent
({
this
.
type
,
this
.
timeStamp
:
0.0
})
;
factory
InputEvent
.
from
Sky
Event
(
ui
.
Event
event
)
{
factory
InputEvent
.
from
Ui
Event
(
ui
.
Event
event
)
{
if
(
event
is
ui
.
PointerEvent
)
return
new
PointerInputEvent
.
fromUiEvent
(
event
);
// Default event
InputEvent
result
=
new
InputEvent
();
result
.
type
=
event
.
type
;
result
.
timeStamp
=
event
.
timeStamp
;
return
new
InputEvent
(
type:
event
.
type
,
timeStamp:
event
.
timeStamp
);
}
String
type
;
double
timeStamp
;
final
String
type
;
final
double
timeStamp
;
}
///
Dart-layer version of ui.PointerInputE
vent
///
Input e
vent
class
PointerInputEvent
extends
InputEvent
{
// Map actual input pointer value to a unique value
...
...
@@ -27,8 +29,9 @@ class PointerInputEvent extends InputEvent {
static
Map
<
int
,
int
>
_pointerMap
=
new
Map
<
int
,
int
>();
static
int
_pointerCount
=
0
;
PointerInputEvent
({
const
PointerInputEvent
({
String
type
,
double
timeStamp:
0.0
,
this
.
pointer
,
this
.
kind
,
this
.
x
,
...
...
@@ -51,64 +54,63 @@ class PointerInputEvent extends InputEvent {
this
.
radiusMax
,
this
.
orientation
,
this
.
tilt
})
:
super
(
type:
type
);
PointerInputEvent
.
fromUiEvent
(
ui
.
PointerEvent
event
)
{
type
=
event
.
type
;
timeStamp
=
event
.
timeStamp
;
})
:
super
(
type:
type
,
timeStamp:
timeStamp
);
if
(
type
==
'pointerdown'
)
{
pointer
=
_pointerCount
;
factory
PointerInputEvent
.
fromUiEvent
(
ui
.
PointerEvent
event
)
{
PointerInputEvent
result
=
new
PointerInputEvent
(
type:
event
.
type
,
timeStamp:
event
.
timeStamp
,
pointer:
(
event
.
type
==
'pointerDown'
)
?
_pointerCount
:
_pointerMap
[
event
.
pointer
],
kind:
event
.
kind
,
x:
event
.
x
,
y:
event
.
y
,
dx:
event
.
dx
,
dy:
event
.
dy
,
buttons:
event
.
buttons
,
down:
event
.
down
,
primary:
event
.
primary
,
obscured:
event
.
obscured
,
pressure:
event
.
pressure
,
pressureMin:
event
.
pressureMin
,
pressureMax:
event
.
pressureMax
,
distance:
event
.
distance
,
distanceMin:
event
.
distanceMin
,
distanceMax:
event
.
distanceMax
,
radiusMajor:
event
.
radiusMajor
,
radiusMinor:
event
.
radiusMinor
,
radiusMin:
event
.
radiusMin
,
radiusMax:
event
.
radiusMax
,
orientation:
event
.
orientation
,
tilt:
event
.
tilt
);
if
(
event
.
type
==
'pointerdown'
)
{
_pointerMap
[
event
.
pointer
]
=
_pointerCount
;
_pointerCount
++;
}
else
{
pointer
=
_pointerMap
[
event
.
pointer
];
}
kind
=
event
.
kind
;
x
=
event
.
x
;
y
=
event
.
y
;
dx
=
event
.
dx
;
dy
=
event
.
dy
;
buttons
=
event
.
buttons
;
down
=
event
.
down
;
primary
=
event
.
primary
;
obscured
=
event
.
obscured
;
pressure
=
event
.
pressure
;
pressureMin
=
event
.
pressureMin
;
pressureMax
=
event
.
pressureMax
;
distance
=
event
.
distance
;
distanceMin
=
event
.
distanceMin
;
distanceMax
=
event
.
distanceMax
;
radiusMajor
=
event
.
radiusMajor
;
radiusMinor
=
event
.
radiusMinor
;
radiusMin
=
event
.
radiusMin
;
radiusMax
=
event
.
radiusMax
;
orientation
=
event
.
orientation
;
tilt
=
event
.
tilt
;
return
result
;
}
int
pointer
;
String
kind
;
double
x
;
double
y
;
double
dx
;
double
dy
;
int
buttons
;
bool
down
;
bool
primary
;
bool
obscured
;
double
pressure
;
double
pressureMin
;
double
pressureMax
;
double
distance
;
double
distanceMin
;
double
distanceMax
;
double
radiusMajor
;
double
radiusMinor
;
double
radiusMin
;
double
radiusMax
;
double
orientation
;
double
tilt
;
final
int
pointer
;
final
String
kind
;
final
double
x
;
final
double
y
;
final
double
dx
;
final
double
dy
;
final
int
buttons
;
final
bool
down
;
final
bool
primary
;
final
bool
obscured
;
final
double
pressure
;
final
double
pressureMin
;
final
double
pressureMax
;
final
double
distance
;
final
double
distanceMin
;
final
double
distanceMax
;
final
double
radiusMajor
;
final
double
radiusMinor
;
final
double
radiusMin
;
final
double
radiusMax
;
final
double
orientation
;
final
double
tilt
;
}
packages/flutter/lib/src/gestures/pointer_router.dart
View file @
9f74a178
...
...
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'
package:flutter/src/gestures/
events.dart'
;
import
'events.dart'
;
/// A callback that receives a [PointerInputEvent]
typedef
void
PointerRoute
(
PointerInputEvent
event
);
...
...
packages/flutter/lib/src/rendering/binding.dart
View file @
9f74a178
...
...
@@ -95,7 +95,7 @@ class FlutterBinding extends HitTestTarget {
bool
removeEventListener
(
EventListener
listener
)
=>
_eventListeners
.
remove
(
listener
);
void
_handleEvent
(
ui
.
Event
event
)
{
InputEvent
ourEvent
=
new
InputEvent
.
from
Sky
Event
(
event
);
InputEvent
ourEvent
=
new
InputEvent
.
from
Ui
Event
(
event
);
if
(
ourEvent
is
PointerInputEvent
)
{
_handlePointerInputEvent
(
ourEvent
);
}
else
{
...
...
packages/unit/test/gestures/scale_test.dart
View file @
9f74a178
...
...
@@ -36,7 +36,7 @@ void main() {
TestPointer
pointer1
=
new
TestPointer
(
1
);
PointerInputEvent
down
=
pointer1
.
down
(
new
ui
.
Point
(
10.0
,
10.0
));
PointerInputEvent
down
=
pointer1
.
down
(
new
Point
(
10.0
,
10.0
));
scale
.
addPointer
(
down
);
tap
.
addPointer
(
down
);
...
...
@@ -55,7 +55,7 @@ void main() {
expect
(
didEndScale
,
isFalse
);
expect
(
didTap
,
isFalse
);
router
.
route
(
pointer1
.
move
(
new
ui
.
Point
(
20.0
,
30.0
)));
router
.
route
(
pointer1
.
move
(
new
Point
(
20.0
,
30.0
)));
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
new
ui
.
Point
(
20.0
,
30.0
));
...
...
@@ -67,7 +67,7 @@ void main() {
// Two-finger scaling
TestPointer
pointer2
=
new
TestPointer
(
2
);
PointerInputEvent
down2
=
pointer2
.
down
(
new
ui
.
Point
(
10.0
,
20.0
));
PointerInputEvent
down2
=
pointer2
.
down
(
new
Point
(
10.0
,
20.0
));
scale
.
addPointer
(
down2
);
tap
.
addPointer
(
down2
);
GestureArena
.
instance
.
close
(
2
);
...
...
@@ -80,7 +80,7 @@ void main() {
expect
(
didStartScale
,
isFalse
);
// Zoom in
router
.
route
(
pointer2
.
move
(
new
ui
.
Point
(
0.0
,
10.0
)));
router
.
route
(
pointer2
.
move
(
new
Point
(
0.0
,
10.0
)));
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
new
ui
.
Point
(
10.0
,
20.0
));
...
...
@@ -91,7 +91,7 @@ void main() {
expect
(
didTap
,
isFalse
);
// Zoom out
router
.
route
(
pointer2
.
move
(
new
ui
.
Point
(
15.0
,
25.0
)));
router
.
route
(
pointer2
.
move
(
new
Point
(
15.0
,
25.0
)));
expect
(
updatedFocalPoint
,
new
ui
.
Point
(
17.5
,
27.5
));
updatedFocalPoint
=
null
;
expect
(
updatedScale
,
0.5
);
...
...
@@ -100,7 +100,7 @@ void main() {
// Three-finger scaling
TestPointer
pointer3
=
new
TestPointer
(
3
);
PointerInputEvent
down3
=
pointer3
.
down
(
new
ui
.
Point
(
25.0
,
35.0
));
PointerInputEvent
down3
=
pointer3
.
down
(
new
Point
(
25.0
,
35.0
));
scale
.
addPointer
(
down3
);
tap
.
addPointer
(
down3
);
GestureArena
.
instance
.
close
(
3
);
...
...
@@ -113,7 +113,7 @@ void main() {
expect
(
didStartScale
,
isFalse
);
// Zoom in
router
.
route
(
pointer3
.
move
(
new
ui
.
Point
(
55.0
,
65.0
)));
router
.
route
(
pointer3
.
move
(
new
Point
(
55.0
,
65.0
)));
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
new
ui
.
Point
(
30.0
,
40.0
));
...
...
@@ -124,9 +124,9 @@ void main() {
expect
(
didTap
,
isFalse
);
// Return to original positions but with different fingers
router
.
route
(
pointer1
.
move
(
new
ui
.
Point
(
25.0
,
35.0
)));
router
.
route
(
pointer2
.
move
(
new
ui
.
Point
(
20.0
,
30.0
)));
router
.
route
(
pointer3
.
move
(
new
ui
.
Point
(
15.0
,
25.0
)));
router
.
route
(
pointer1
.
move
(
new
Point
(
25.0
,
35.0
)));
router
.
route
(
pointer2
.
move
(
new
Point
(
20.0
,
30.0
)));
router
.
route
(
pointer3
.
move
(
new
Point
(
15.0
,
25.0
)));
expect
(
didStartScale
,
isFalse
);
expect
(
updatedFocalPoint
,
new
ui
.
Point
(
20.0
,
30.0
));
updatedFocalPoint
=
null
;
...
...
@@ -144,7 +144,7 @@ void main() {
expect
(
didTap
,
isFalse
);
// Continue scaling with two fingers
router
.
route
(
pointer3
.
move
(
new
ui
.
Point
(
10.0
,
20.0
)));
router
.
route
(
pointer3
.
move
(
new
Point
(
10.0
,
20.0
)));
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
new
ui
.
Point
(
15.0
,
25.0
));
...
...
@@ -161,7 +161,7 @@ void main() {
expect
(
didTap
,
isFalse
);
// Continue panning with one finger
router
.
route
(
pointer3
.
move
(
new
ui
.
Point
(
0.0
,
0.0
)));
router
.
route
(
pointer3
.
move
(
new
Point
(
0.0
,
0.0
)));
expect
(
didStartScale
,
isTrue
);
didStartScale
=
false
;
expect
(
updatedFocalPoint
,
new
ui
.
Point
(
0.0
,
0.0
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment