| Index: sky/sdk/lib/framework/fn2.dart
|
| diff --git a/sky/sdk/lib/framework/fn2.dart b/sky/sdk/lib/framework/fn2.dart
|
| index 427f58b47c82e416863c54e292ca106e3f27f14c..10b93c563bbfd0351f6aa6f04a38e9e0da3812a2 100644
|
| --- a/sky/sdk/lib/framework/fn2.dart
|
| +++ b/sky/sdk/lib/framework/fn2.dart
|
| @@ -4,12 +4,13 @@
|
|
|
| library fn;
|
|
|
| +import 'app.dart';
|
| import 'dart:async';
|
| import 'dart:collection';
|
| import 'dart:mirrors';
|
| import 'dart:sky' as sky;
|
| +import 'package:vector_math/vector_math.dart';
|
| import 'reflect.dart' as reflect;
|
| -import 'app.dart';
|
| import 'rendering/block.dart';
|
| import 'rendering/box.dart';
|
| import 'rendering/flex.dart';
|
| @@ -395,6 +396,21 @@ class SizedBox extends OneChildRenderNodeWrapper {
|
| }
|
| }
|
|
|
| +class Transform extends OneChildRenderNodeWrapper {
|
| + RenderTransform root;
|
| + final Matrix4 transform;
|
| +
|
| + Transform({ this.transform, UINode child, Object key })
|
| + : super(child: child, key: key);
|
| +
|
| + RenderTransform createNode() => new RenderTransform(transform: transform);
|
| +
|
| + void syncRenderNode(Transform old) {
|
| + super.syncRenderNode(old);
|
| + root.transform = transform;
|
| + }
|
| +}
|
| +
|
| final List<UINode> _emptyList = new List<UINode>();
|
|
|
| abstract class OneChildListRenderNodeWrapper extends RenderNodeWrapper {
|
| @@ -850,6 +866,7 @@ abstract class Component extends UINode {
|
|
|
| class Container extends Component {
|
| final UINode child;
|
| + final Matrix4 transform;
|
| final EdgeDims margin;
|
| final BoxDecoration decoration;
|
| final sky.Size desiredSize;
|
| @@ -858,6 +875,7 @@ class Container extends Component {
|
| Container({
|
| Object key,
|
| this.child,
|
| + this.transform,
|
| this.margin,
|
| this.decoration,
|
| this.desiredSize,
|
| @@ -867,6 +885,9 @@ class Container extends Component {
|
| UINode build() {
|
| UINode current = child;
|
|
|
| + if (transform != null)
|
| + current = new Transform(transform: transform, child: current);
|
| +
|
| if (padding != null)
|
| current = new Padding(padding: padding, child: current);
|
|
|
|
|