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

Side by Side Diff: sky/examples/rendering/touch_demo.dart

Issue 1177343002: Update paths in sky_home.dart (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Fix touch demo and sector layout demos Created 5 years, 6 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import 'dart:math'; 5 import 'dart:math';
6 import 'dart:sky'; 6 import 'dart:sky';
7 import 'package:sky/framework/app.dart'; 7 import 'package:sky/framework/app.dart';
8 import 'package:sky/framework/rendering/box.dart'; 8 import 'package:sky/framework/rendering/box.dart';
Hixie 2015/06/11 22:14:09 convention is now to sort this alphabetically, wit
9 import 'package:sky/framework/rendering/object.dart'; 9 import 'package:sky/framework/rendering/object.dart';
10 import 'package:sky/framework/rendering/stack.dart';
11 import 'package:sky/framework/rendering/paragraph.dart';
12 import 'package:sky/framework/theme2/colors.dart';
10 13
11 // Material design colors. :p 14 // Material design colors. :p
12 List<int> colors = [ 15 List<Color> colors = [
13 0xFF009688, 16 Teal[500],
14 0xFFFFC107, 17 Amber[500],
15 0xFF9C27B0, 18 Purple[500],
16 0xFF03A9F4, 19 LightBlue[500],
17 0xFF673AB7, 20 DeepPurple[500],
18 0xFFCDDC39, 21 Lime[500],
19 ]; 22 ];
20 23
21 class Dot { 24 class Dot {
22 final Paint _paint; 25 final Paint _paint;
23 double x = 0.0; 26 double x = 0.0;
24 double y = 0.0; 27 double y = 0.0;
25 double radius = 0.0; 28 double radius = 0.0;
26 29
27 Dot({int color}) : _paint = new Paint()..color = color; 30 Dot({Color color}) : _paint = new Paint()..color = color;
Hixie 2015/06/11 22:14:09 spaces around the arguments list.
28 31
29 void update(PointerEvent event) { 32 void update(PointerEvent event) {
30 x = event.x; 33 x = event.x;
31 y = event.y; 34 y = event.y;
32 radius = 5 + (95 * event.pressure); 35 radius = 5 + (95 * event.pressure);
33 } 36 }
34 37
35 void paint(RenderObjectDisplayList canvas) { 38 void paint(RenderObjectDisplayList canvas) {
36 canvas.drawCircle(x, y, radius, _paint); 39 canvas.drawCircle(x, y, radius, _paint);
37 } 40 }
38 } 41 }
39 42
40 class RenderTouchDemo extends RenderBox { 43 class RenderTouchDemo extends RenderBox {
41 Map<int, Dot> dots = new Map(); 44 Map<int, Dot> dots = new Map();
42 45
43 RenderTouchDemo(); 46 RenderTouchDemo();
44 47
45 void handleEvent(Event event, BoxHitTestEntry entry) { 48 void handleEvent(Event event, BoxHitTestEntry entry) {
46 switch (event.type) { 49 switch (event.type) {
47 case 'pointerdown': 50 case 'pointerdown':
48 int color = colors[event.pointer.remainder(colors.length)]; 51 Color color = colors[event.pointer.remainder(colors.length)];
49 dots[event.pointer] = new Dot(color: color)..update(event); 52 dots[event.pointer] = new Dot(color: color)..update(event);
50 break; 53 break;
51 case 'pointerup': 54 case 'pointerup':
52 dots.remove(event.pointer); 55 dots.remove(event.pointer);
53 break; 56 break;
54 case 'pointercancel': 57 case 'pointercancel':
55 dots = new Map(); 58 dots = new Map();
56 break; 59 break;
57 case 'pointermove': 60 case 'pointermove':
58 dots[event.pointer].update(event); 61 dots[event.pointer].update(event);
59 break; 62 break;
60 } 63 }
61 markNeedsPaint(); 64 markNeedsPaint();
62 } 65 }
63 66
64 void performLayout() { 67 void performLayout() {
65 size = constraints.constrain(Size.infinite); 68 size = constraints.constrain(Size.infinite);
66 } 69 }
67 70
68 void paint(RenderObjectDisplayList canvas) { 71 void paint(RenderObjectDisplayList canvas) {
69 dots.forEach((_, Dot dot) { 72 Paint white = new Paint()..color = const Color(0xFFFFFFFF);
73 canvas.drawRect(new Rect.fromSize(size), white);
74 for (Dot dot in dots.values)
70 dot.paint(canvas); 75 dot.paint(canvas);
71 });
72 } 76 }
73 } 77 }
74 78
75 AppView app; 79 AppView app;
76 80
77 void main() { 81 void main() {
78 app = new AppView(new RenderTouchDemo()); 82 var para = new RenderParagraph(text: "Touch me!");
83 var stack = new RenderStack(children: [
84 new RenderTouchDemo(),
85 para,
86 ]);
87 // Make the paragraph not fill the whole screen so it doesn't eat events.
88 para.parentData..top = 40.0
89 ..left = 20.0;
90 app = new AppView(stack);
79 } 91 }
OLDNEW
« no previous file with comments | « no previous file | sky/sdk/lib/framework/rendering/box.dart » ('j') | sky/sdk/lib/framework/rendering/object.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698