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

Side by Side Diff: sky/examples/raw/interactive_flex.dart

Issue 1173233002: Separate out the raw (directly manipulating sky.view) examples from the rendering (using RenderObje… (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: 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
« no previous file with comments | « sky/examples/raw/borders.dart ('k') | sky/examples/raw/justify_content.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 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 import 'dart:sky';
6 import 'dart:math' as math;
7 import 'package:sky/framework/net/image_cache.dart' as image_cache;
8 import 'package:sky/framework/app.dart';
9 import 'package:sky/framework/rendering/box.dart';
10 import 'package:sky/framework/rendering/block.dart';
11 import 'package:sky/framework/rendering/flex.dart';
12 import 'package:sky/framework/rendering/object.dart';
13 import 'package:sky/framework/rendering/paragraph.dart';
14 import '../lib/solid_color_box.dart';
15
16 class Touch {
17 final double x;
18 final double y;
19 const Touch(this.x, this.y);
20 }
21
22 class RenderImageGrow extends RenderImage {
23 final Size _startingSize;
24
25 RenderImageGrow(String src, Size size) : _startingSize = size, super(src, size );
26
27 double _growth = 0.0;
28 double get growth => _growth;
29 void set growth(double value) {
30 _growth = value;
31 double newWidth = _startingSize.width == null ? null : _startingSize.width + growth;
32 double newHeight = _startingSize.height == null ? null : _startingSize.heigh t + growth;
33 requestedSize = new Size(newWidth, newHeight);
34 }
35 }
36
37 AppView app;
38 RenderImageGrow image;
39
40 Map<int, Touch> touches = new Map();
41 void handleEvent(event) {
42 if (event is PointerEvent) {
43 if (event.type == 'pointermove')
44 image.growth = math.max(0.0, image.growth + event.x - touches[event.poin ter].x);
45 touches[event.pointer] = new Touch(event.x, event.y);
46 }
47 }
48
49 void main() {
50 void addFlexChildSolidColor(RenderFlex parent, Color backgroundColor, { int fl ex: 0 }) {
51 RenderSolidColorBox child = new RenderSolidColorBox(backgroundColor);
52 parent.add(child);
53 child.parentData.flex = flex;
54 }
55
56 var row = new RenderFlex(direction: FlexDirection.horizontal);
57
58 // Left cell
59 addFlexChildSolidColor(row, const Color(0xFF00D2B8), flex: 1);
60
61 // Resizeable image
62 image = new RenderImageGrow("https://www.dartlang.org/logos/dart-logo.png",
63 new Size(100.0, null));
64 var padding = new RenderPadding(padding: const EdgeDims.all(10.0), child: imag e);
65 row.add(padding);
66
67 RenderFlex column = new RenderFlex(direction: FlexDirection.vertical);
68
69 // Top cell
70 addFlexChildSolidColor(column, const Color(0xFF55DDCA), flex: 1);
71
72 // The internet is a beautiful place. https://baconipsum.com/
73 String meatyString = """Bacon ipsum dolor amet ham fatback tri-tip, prosciutto
74 porchetta bacon kevin meatball meatloaf pig beef ribs chicken. Brisket ribeye
75 andouille leberkas capicola meatloaf. Chicken pig ball tip pork picanha bresaola
76 alcatra. Pork pork belly alcatra, flank chuck drumstick biltong doner jowl.
77 Pancetta meatball tongue tenderloin rump tail jowl boudin.""";
78 RenderParagraph paragraph = new RenderParagraph(text: meatyString, color: cons t Color(0xFF009900));
79 padding = new RenderPadding(padding: const EdgeDims.all(10.0), child: paragrap h);
80 column.add(padding);
81
82 // Bottom cell
83 addFlexChildSolidColor(column, const Color(0xFF0081C6), flex: 2);
84
85 row.add(column);
86 column.parentData.flex = 8;
87
88 RenderDecoratedBox root = new RenderDecoratedBox(
89 decoration: new BoxDecoration(backgroundColor: const Color(0xFFFFFFFF)),
90 child: row
91 );
92
93 app = new AppView(root);
94 view.setEventCallback(handleEvent);
95 }
OLDNEW
« no previous file with comments | « sky/examples/raw/borders.dart ('k') | sky/examples/raw/justify_content.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698