From 7e7ed88f2922e5477d28ee6c227e328d077b4d93 Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Thu, 28 May 2015 13:56:36 -0700 Subject: [PATCH] Add hello_fn2.dart and make Text("Hello fn2") actually render something. R=ianh@google.com Review URL: https://codereview.chromium.org/1160843005 --- examples/fn2/hello_fn2.dart | 15 ++++++++++++ sdk/lib/framework/fn2.dart | 42 ++++++++++------------------------ sdk/lib/framework/layout2.dart | 19 +++++++++++---- 3 files changed, 41 insertions(+), 35 deletions(-) create mode 100644 examples/fn2/hello_fn2.dart diff --git a/examples/fn2/hello_fn2.dart b/examples/fn2/hello_fn2.dart new file mode 100644 index 000000000..1aeda5d2e --- /dev/null +++ b/examples/fn2/hello_fn2.dart @@ -0,0 +1,15 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:sky/framework/fn2.dart'; + +class HelloWorldApp extends App { + UINode build() { + return new Text('Hello, fn2!'); + } +} + +void main() { + new HelloWorldApp(); +} \ No newline at end of file diff --git a/sdk/lib/framework/fn2.dart b/sdk/lib/framework/fn2.dart index 962c9efd6..b1e95bdb3 100644 --- a/sdk/lib/framework/fn2.dart +++ b/sdk/lib/framework/fn2.dart @@ -543,10 +543,11 @@ class Container extends OneChildListRenderNodeWrapper { ); } -class Paragraph extends OneChildListRenderNodeWrapper { +class Paragraph extends RenderNodeWrapper { - RenderCSSParagraph root; - RenderCSSParagraph createNode() => new RenderCSSParagraph(this); + RenderParagraph root; + RenderParagraph createNode() => new RenderParagraph(text); + String text; static final Paragraph _emptyContainer = new Paragraph(); @@ -554,11 +555,15 @@ class Paragraph extends OneChildListRenderNodeWrapper { Paragraph({ Object key, - List children + this.text }) : super( - key: key, - children: children + key: key ); + + void syncRenderNode(UINode old) { + super.syncRenderNode(old); + root.text = text; + } } class FlexContainer extends OneChildListRenderNodeWrapper { @@ -646,29 +651,6 @@ abstract class OneChildRenderNodeWrapper extends RenderNodeWrapper { } } -class TextFragment extends RenderNodeWrapper { - - RenderCSSInline root; - RenderCSSInline createNode() => new RenderCSSInline(this, this.data); - - static final TextFragment _emptyText = new TextFragment(''); - - RenderNodeWrapper get emptyNode => _emptyText; - - final String data; - - TextFragment(this.data, { - Object key - }) : super( - key: key - ); - - void syncRenderNode(UINode old) { - super.syncRenderNode(old); - root.data = data; - } -} - class Image extends RenderNodeWrapper { RenderCSSImage root; @@ -936,7 +918,7 @@ class Text extends Component { Text(this.data) : super(key: '*text*'); final String data; bool get interchangeable => true; - UINode build() => new Paragraph(children: [new TextFragment(data)]); + UINode build() => new Paragraph(text: data); } diff --git a/sdk/lib/framework/layout2.dart b/sdk/lib/framework/layout2.dart index ee7640811..2abb2a8e7 100644 --- a/sdk/lib/framework/layout2.dart +++ b/sdk/lib/framework/layout2.dart @@ -968,14 +968,20 @@ class RenderFlex extends RenderDecoratedBox with ContainerRenderNodeMixin