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

Unified Diff: sky/examples/raw/simple_render_tree.dart

Issue 1165463002: Make RenderParagraph mutable, and make it fit the new RenderNode protocols (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: git rebase -i 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 | « sky/examples/raw/sector-layout.dart ('k') | sky/sdk/lib/framework/components2/tool_bar.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/examples/raw/simple_render_tree.dart
diff --git a/sky/examples/raw/simple_render_tree.dart b/sky/examples/raw/simple_render_tree.dart
new file mode 100644
index 0000000000000000000000000000000000000000..58d4e934e2ec0c3e1126e82eb1da8dda96a32865
--- /dev/null
+++ b/sky/examples/raw/simple_render_tree.dart
@@ -0,0 +1,87 @@
+// 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 'dart:sky' as sky;
+import 'package:sky/framework/app.dart';
+import 'package:sky/framework/layout2.dart';
+
+class RenderSolidColor extends RenderDecoratedBox {
+ final sky.Size desiredSize;
+ final int backgroundColor;
+
+ RenderSolidColor(int backgroundColor, { this.desiredSize: const sky.Size.infinite() })
+ : backgroundColor = backgroundColor,
+ super(decoration: new BoxDecoration(backgroundColor: backgroundColor)) {
+ }
+
+ BoxDimensions getIntrinsicDimensions(BoxConstraints constraints) {
+ return new BoxDimensions.withConstraints(constraints,
+ width: desiredSize.width,
+ height: desiredSize.height);
+ }
+
+ void performLayout() {
+ size = constraints.constrain(desiredSize);
+ }
+
+ void handlePointer(sky.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() {
+ RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.Vertical);
+
+ RenderNode root = new RenderDecoratedBox(
+ decoration: new BoxDecoration(backgroundColor: 0xFF000000),
+ child: flexRoot
+ );
+
+ void addFlexChildSolidColor(RenderFlex parent, int backgroundColor, { int flex: 0 }) {
+ RenderNode child = new RenderSolidColor(backgroundColor);
+ parent.add(child);
+ child.parentData.flex = flex;
+ }
+
+ // Yellow bar at top
+ addFlexChildSolidColor(flexRoot, 0xFFFFFF00, flex: 1);
+
+ // Turquoise box
+ flexRoot.add(new RenderSolidColor(0x7700FFFF, desiredSize: new sky.Size(100.0, 100.0)));
+
+ // Green and cyan render block with padding
+ var renderBlock = new RenderBlock();
+
+ renderBlock.add(new RenderSolidColor(0xFF00FF00, desiredSize: new sky.Size(100.0, 50.0)));
+ renderBlock.add(new RenderSolidColor(0x7700FFFF, desiredSize: new sky.Size(50.0, 100.0)));
+
+ var renderDecoratedBlock = new RenderDecoratedBox(
+ decoration: new BoxDecoration(backgroundColor: 0xFFFFFFFF),
+ child: renderBlock
+ );
+
+ flexRoot.add(new RenderPadding(const EdgeDims(10.0, 10.0, 10.0, 10.0), renderDecoratedBlock));
+
+ var row = new RenderFlex(direction: FlexDirection.Horizontal);
+
+ // Purple and blue cells
+ addFlexChildSolidColor(row, 0x77FF00FF, flex: 1);
+ addFlexChildSolidColor(row, 0xFF0000FF, flex: 2);
+
+ var decoratedRow = new RenderDecoratedBox(
+ decoration: new BoxDecoration(backgroundColor: 0xFF333333),
+ child: row
+ );
+
+ flexRoot.add(decoratedRow);
+ decoratedRow.parentData.flex = 3;
+
+ app = new AppView(root);
+
+}
« no previous file with comments | « sky/examples/raw/sector-layout.dart ('k') | sky/sdk/lib/framework/components2/tool_bar.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698