| // 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/rendering.dart'; | |
| import 'solid_color_box.dart'; | |
| RenderBox buildFlexExample() { | |
| RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.vertical); | |
| RenderDecoratedBox root = new RenderDecoratedBox( | |
| decoration: new BoxDecoration(backgroundColor: const sky.Color(0xFF000000)), | |
| child: flexRoot | |
| ); | |
| void addFlexChildSolidColor(RenderFlex parent, sky.Color backgroundColor, { int flex: 0 }) { | |
| RenderSolidColorBox child = new RenderSolidColorBox(backgroundColor); | |
| parent.add(child); | |
| child.parentData.flex = flex; | |
| } | |
| // Yellow bar at top | |
| addFlexChildSolidColor(flexRoot, const sky.Color(0xFFFFFF00), flex: 1); | |
| // Turquoise box | |
| flexRoot.add(new RenderSolidColorBox(const sky.Color(0x7700FFFF), desiredSize: new sky.Size(100.0, 100.0))); | |
| var renderDecoratedBlock = new RenderDecoratedBox( | |
| decoration: new BoxDecoration(backgroundColor: const sky.Color(0xFFFFFFFF)) | |
| ); | |
| flexRoot.add(new RenderPadding(padding: const EdgeDims.all(10.0), child: renderDecoratedBlock)); | |
| var row = new RenderFlex(direction: FlexDirection.horizontal); | |
| // Purple and blue cells | |
| addFlexChildSolidColor(row, const sky.Color(0x77FF00FF), flex: 1); | |
| addFlexChildSolidColor(row, const sky.Color(0xFF0000FF), flex: 2); | |
| var decoratedRow = new RenderDecoratedBox( | |
| decoration: new BoxDecoration(backgroundColor: const sky.Color(0xFF333333)), | |
| child: row | |
| ); | |
| flexRoot.add(decoratedRow); | |
| decoratedRow.parentData.flex = 3; | |
| return root; | |
| } | |
| void main() { | |
| new SkyBinding(root: buildFlexExample()); | |
| } |