Index: sky/sdk/lib/framework/rendering/box.dart |
diff --git a/sky/sdk/lib/framework/rendering/box.dart b/sky/sdk/lib/framework/rendering/box.dart |
index c6c878354a103371bb426aef79612ae3cf2b46a1..41f9ed5af3665e66a9cd25df2089046ace200dc1 100644 |
--- a/sky/sdk/lib/framework/rendering/box.dart |
+++ b/sky/sdk/lib/framework/rendering/box.dart |
@@ -666,6 +666,33 @@ class RenderShadowedBox extends RenderProxyBox { |
} |
} |
+typedef void CustomPaintCallback(RenderObjectDisplayList canvas); |
+ |
+class RenderCustomPaint extends RenderProxyBox { |
+ |
+ RenderCustomPaint({ |
+ CustomPaintCallback callback, |
+ RenderBox child |
+ }) : super(child) { |
+ assert(callback != null); |
+ _callback = callback; |
+ } |
+ |
+ CustomPaintCallback _callback; |
+ void set callback (CustomPaintCallback value) { |
+ assert(value != null); |
+ if (_callback == value) |
+ return; |
+ _callback = value; |
+ markNeedsPaint(); |
+ } |
+ |
+ void paint(RenderObjectDisplayList canvas) { |
+ _callback(canvas); |
+ super.paint(canvas); |
+ } |
+} |
+ |
// RENDER VIEW LAYOUT MANAGER |
class ViewConstraints { |