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

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

Issue 1150183005: Add a very simple RenderParagraph example using LayoutRoot. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Add support for minWidth 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:sky'; 5 import 'dart:sky';
6 import 'package:sky/framework/app.dart'; 6 import 'package:sky/framework/app.dart';
7 import 'package:sky/framework/layout2.dart'; 7 import 'package:sky/framework/layout2.dart';
8 8
9 class RenderParagraph extends RenderDecoratedBox {
10 final String text;
11 LayoutRoot _layoutRoot = new LayoutRoot();
12 Document _document;
13
14 RenderParagraph(String this.text) :
15 super(new BoxDecoration(backgroundColor: 0xFFFFFFFF)) {
16 _document = new Document();
17 _layoutRoot.rootElement = _document.createElement('p');
18 _layoutRoot.rootElement.appendChild(_document.createText(this.text));
19 }
20
21 void performLayout() {
22 _layoutRoot.maxWidth = constraints.maxWidth;
23 _layoutRoot.minWidth = constraints.minWidth;
24 _layoutRoot.layout();
25 width = _layoutRoot.rootElement.width;
26 height = _layoutRoot.rootElement.height;
27 }
28
29 void hitTestChildren(HitTestResult result, { double x, double y }) {
30 // defaultHitTestChildren(result, x: x, y: y);
31 }
32
33 void paint(RenderNodeDisplayList canvas) {
34 super.paint(canvas);
35 _layoutRoot.paint(canvas);
36 }
37 }
38
9 class RenderSolidColor extends RenderDecoratedBox { 39 class RenderSolidColor extends RenderDecoratedBox {
10 final double desiredHeight; 40 final double desiredHeight;
11 final double desiredWidth; 41 final double desiredWidth;
12 final int backgroundColor; 42 final int backgroundColor;
13 43
14 RenderSolidColor(int backgroundColor, { this.desiredHeight: double.INFINITY, 44 RenderSolidColor(int backgroundColor, { this.desiredHeight: double.INFINITY,
15 this.desiredWidth: double.INFINITY }) 45 this.desiredWidth: double.INFINITY })
16 : backgroundColor = backgroundColor, 46 : backgroundColor = backgroundColor,
17 super(new BoxDecoration(backgroundColor: backgroundColor)); 47 super(new BoxDecoration(backgroundColor: backgroundColor));
18 48
(...skipping 16 matching lines...) Expand all
35 } 65 }
36 } 66 }
37 67
38 AppView app; 68 AppView app;
39 69
40 void main() { 70 void main() {
41 var root = new RenderFlex( 71 var root = new RenderFlex(
42 direction: FlexDirection.Vertical, 72 direction: FlexDirection.Vertical,
43 decoration: new BoxDecoration(backgroundColor: 0xFF000000)); 73 decoration: new BoxDecoration(backgroundColor: 0xFF000000));
44 74
45 void addFlexChild(RenderFlex parent, int backgroundColor, { int flex: 0 }) { 75 RenderNode child = new RenderSolidColor(0xFFFFFF00);
46 RenderNode child = new RenderSolidColor(backgroundColor); 76 root.add(child);
47 parent.add(child); 77 child.parentData.flex = 2;
48 child.parentData.flex = flex;
49 }
50 78
51 // Yellow bar at top 79 // The internet is a beautiful place. https://baconipsum.com/
52 addFlexChild(root, 0xFFFFFF00, flex: 1); 80 String meatyString = """Bacon ipsum dolor amet ham fatback tri-tip, prosciutto
81 porchetta bacon kevin meatball meatloaf pig beef ribs chicken. Brisket ribeye
82 andouille leberkas capicola meatloaf. Chicken pig ball tip pork picanha bresaola
83 alcatra. Pork pork belly alcatra, flank chuck drumstick biltong doner jowl.
84 Pancetta meatball tongue tenderloin rump tail jowl boudin.""";
53 85
54 // Turquoise box 86 child = new RenderParagraph(meatyString);
55 root.add(new RenderSolidColor(0x7700FFFF, desiredHeight: 100.0, desiredWidth: 100.0)); 87 root.add(child);
56 88 child.parentData.flex = 1;
57 // Green and cyan render block with padding
58 var renderBlock = new RenderBlock(decoration: new BoxDecoration(backgroundColo r: 0xFFFFFFFF));
59
60 renderBlock.add(new RenderSolidColor(0xFF00FF00, desiredHeight: 50.0, desiredW idth: 100.0));
61 renderBlock.add(new RenderSolidColor(0x7700FFFF, desiredHeight: 100.0, desired Width: 50.0));
62
63 root.add(new RenderPadding(const EdgeDims(10.0, 10.0, 10.0, 10.0), renderBlock ));
64
65 var row = new RenderFlex(
66 direction: FlexDirection.Horizontal,
67 decoration: new BoxDecoration(backgroundColor: 0xFF333333));
68
69 // Purple and blue cells
70 addFlexChild(row, 0x77FF00FF, flex: 1);
71 addFlexChild(row, 0xFF0000FF, flex: 2);
72
73 root.add(row);
74 row.parentData.flex = 3;
75 89
76 app = new AppView(root); 90 app = new AppView(root);
77
78 } 91 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698