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

Unified 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, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/examples/raw/render_paragraph.dart
diff --git a/sky/examples/raw/simple_render_tree.dart b/sky/examples/raw/render_paragraph.dart
similarity index 50%
copy from sky/examples/raw/simple_render_tree.dart
copy to sky/examples/raw/render_paragraph.dart
index f2db8ee3dfd263b09c9a35bf6f406940a9f6d167..7092f93494e025e26960456d434c3f26ed097f39 100644
--- a/sky/examples/raw/simple_render_tree.dart
+++ b/sky/examples/raw/render_paragraph.dart
@@ -6,6 +6,36 @@ import 'dart:sky';
import 'package:sky/framework/app.dart';
import 'package:sky/framework/layout2.dart';
+class RenderParagraph extends RenderDecoratedBox {
+ final String text;
+ LayoutRoot _layoutRoot = new LayoutRoot();
+ Document _document;
+
+ RenderParagraph(String this.text) :
+ super(new BoxDecoration(backgroundColor: 0xFFFFFFFF)) {
+ _document = new Document();
+ _layoutRoot.rootElement = _document.createElement('p');
+ _layoutRoot.rootElement.appendChild(_document.createText(this.text));
+ }
+
+ void performLayout() {
+ _layoutRoot.maxWidth = constraints.maxWidth;
+ _layoutRoot.minWidth = constraints.minWidth;
+ _layoutRoot.layout();
+ width = _layoutRoot.rootElement.width;
+ height = _layoutRoot.rootElement.height;
+ }
+
+ void hitTestChildren(HitTestResult result, { double x, double y }) {
+ // defaultHitTestChildren(result, x: x, y: y);
+ }
+
+ void paint(RenderNodeDisplayList canvas) {
+ super.paint(canvas);
+ _layoutRoot.paint(canvas);
+ }
+}
+
class RenderSolidColor extends RenderDecoratedBox {
final double desiredHeight;
final double desiredWidth;
@@ -42,37 +72,20 @@ void main() {
direction: FlexDirection.Vertical,
decoration: new BoxDecoration(backgroundColor: 0xFF000000));
- void addFlexChild(RenderFlex parent, int backgroundColor, { int flex: 0 }) {
- RenderNode child = new RenderSolidColor(backgroundColor);
- parent.add(child);
- child.parentData.flex = flex;
- }
-
- // Yellow bar at top
- addFlexChild(root, 0xFFFFFF00, flex: 1);
-
- // Turquoise box
- root.add(new RenderSolidColor(0x7700FFFF, desiredHeight: 100.0, desiredWidth: 100.0));
-
- // Green and cyan render block with padding
- var renderBlock = new RenderBlock(decoration: new BoxDecoration(backgroundColor: 0xFFFFFFFF));
+ RenderNode child = new RenderSolidColor(0xFFFFFF00);
+ root.add(child);
+ child.parentData.flex = 2;
- renderBlock.add(new RenderSolidColor(0xFF00FF00, desiredHeight: 50.0, desiredWidth: 100.0));
- renderBlock.add(new RenderSolidColor(0x7700FFFF, desiredHeight: 100.0, desiredWidth: 50.0));
+ // The internet is a beautiful place. https://baconipsum.com/
+ String meatyString = """Bacon ipsum dolor amet ham fatback tri-tip, prosciutto
+porchetta bacon kevin meatball meatloaf pig beef ribs chicken. Brisket ribeye
+andouille leberkas capicola meatloaf. Chicken pig ball tip pork picanha bresaola
+alcatra. Pork pork belly alcatra, flank chuck drumstick biltong doner jowl.
+Pancetta meatball tongue tenderloin rump tail jowl boudin.""";
- root.add(new RenderPadding(const EdgeDims(10.0, 10.0, 10.0, 10.0), renderBlock));
-
- var row = new RenderFlex(
- direction: FlexDirection.Horizontal,
- decoration: new BoxDecoration(backgroundColor: 0xFF333333));
-
- // Purple and blue cells
- addFlexChild(row, 0x77FF00FF, flex: 1);
- addFlexChild(row, 0xFF0000FF, flex: 2);
-
- root.add(row);
- row.parentData.flex = 3;
+ child = new RenderParagraph(meatyString);
+ root.add(child);
+ child.parentData.flex = 1;
app = new AppView(root);
-
}
« 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