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

Unified Diff: sky/sdk/lib/framework/fn2.dart

Issue 1152273004: Add support for transforms to container (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
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);

Powered by Google App Engine
This is Rietveld 408576698