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 04be3199e43de13f4c4204e012e3fc42e483e071..347ff13990a948a5fd32f4f489631eb6789246eb 100644 |
--- a/sky/sdk/lib/framework/rendering/box.dart |
+++ b/sky/sdk/lib/framework/rendering/box.dart |
@@ -658,6 +658,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 { |