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

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: 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/render_paragraph.dart b/sky/examples/raw/render_paragraph.dart
new file mode 100644
index 0000000000000000000000000000000000000000..da59e6ad86a6dd72e75e7a4de2087b789202c21a
--- /dev/null
+++ b/sky/examples/raw/render_paragraph.dart
@@ -0,0 +1,96 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
Hixie 2015/05/28 19:14:28 This shouldn't be an example. It should be somethi
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+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;
+ BoxConstraints _constraints;
Hixie 2015/05/28 19:14:29 You can remove _constraints (dartanalyzer should h
+
+ RenderParagraph(String this.text) :
+ super(new BoxDecoration(backgroundColor: 0xFFFFFFFF)) {
+ _document = new Document();
+ _layoutRoot.rootElement = _document.createElement('p');
+ _layoutRoot.rootElement.appendChild(_document.createText(this.text));
+ }
+
+ BoxDimensions getIntrinsicDimensions(BoxConstraints constraints) {
+ assert(false);
+ return null;
+ }
+
+ void performLayout() {
+ _layoutRoot.maxWidth = constraints.constrainWidth(double.INFINITY);
Hixie 2015/05/28 19:14:28 Why not _layoutRoot.maxWidth = constraints.maxWidt
+ _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;
+ final int backgroundColor;
+
+ RenderSolidColor(int backgroundColor, { this.desiredHeight: double.INFINITY,
+ this.desiredWidth: double.INFINITY })
+ : backgroundColor = backgroundColor,
+ super(new BoxDecoration(backgroundColor: backgroundColor));
+
+ BoxDimensions getIntrinsicDimensions(BoxConstraints constraints) {
+ return new BoxDimensions.withConstraints(constraints,
+ height: desiredHeight,
+ width: desiredWidth);
+ }
+
+ void performLayout() {
+ width = constraints.constrainWidth(desiredWidth);
+ height = constraints.constrainHeight(desiredHeight);
+ }
+
+ void handlePointer(PointerEvent event) {
+ if (event.type == 'pointerdown')
+ decoration = new BoxDecoration(backgroundColor: 0xFFFF0000);
+ else if (event.type == 'pointerup')
+ decoration = new BoxDecoration(backgroundColor: backgroundColor);
+ }
+}
+
+AppView app;
+
+void main() {
+ var root = new RenderFlex(
+ direction: FlexDirection.Vertical,
+ decoration: new BoxDecoration(backgroundColor: 0xFF000000));
+
+ RenderNode child = new RenderSolidColor(0xFFFFFF00);
+ root.add(child);
+ child.parentData.flex = 2;
+
+ // 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.""";
+
+ 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