From 7adb9be998abbeb49e8821686ec189f263e245a2 Mon Sep 17 00:00:00 2001 From: Hixie Date: Wed, 27 May 2015 09:30:25 -0700 Subject: [PATCH] Replace setBoxDecoration() with a decoration property. R=abarth@chromium.org Review URL: https://codereview.chromium.org/1153893006 --- examples/raw/simple_render_tree.dart | 4 ++-- sdk/lib/framework/layout2.dart | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/examples/raw/simple_render_tree.dart b/examples/raw/simple_render_tree.dart index 7740970d99..552cf552d9 100644 --- a/examples/raw/simple_render_tree.dart +++ b/examples/raw/simple_render_tree.dart @@ -30,9 +30,9 @@ class RenderSolidColor extends RenderDecoratedBox { void handlePointer(PointerEvent event) { if (event.type == 'pointerdown') - setBoxDecoration(new BoxDecoration(backgroundColor: 0xFFFF0000)); + decoration = new BoxDecoration(backgroundColor: 0xFFFF0000); else if (event.type == 'pointerup') - setBoxDecoration(new BoxDecoration(backgroundColor: backgroundColor)); + decoration = new BoxDecoration(backgroundColor: backgroundColor); } } diff --git a/sdk/lib/framework/layout2.dart b/sdk/lib/framework/layout2.dart index 967ea8e79f..d31fce2c9b 100644 --- a/sdk/lib/framework/layout2.dart +++ b/sdk/lib/framework/layout2.dart @@ -504,6 +504,7 @@ abstract class RenderBox extends RenderNode { double height; } +// This must be immutable, because we won't notice when it changes class BoxDecoration { const BoxDecoration({ this.backgroundColor @@ -513,14 +514,15 @@ class BoxDecoration { } class RenderDecoratedBox extends RenderBox { - BoxDecoration _decoration; RenderDecoratedBox(BoxDecoration decoration) : _decoration = decoration; - void setBoxDecoration(BoxDecoration decoration) { - if (_decoration == decoration) + BoxDecoration _decoration; + BoxDecoration get decoration => _decoration; + void set decoration (BoxDecoration value) { + if (value == _decoration) return; - _decoration = decoration; + _decoration = value; markNeedsPaint(); } @@ -536,6 +538,7 @@ class RenderDecoratedBox extends RenderBox { canvas.drawRect(new sky.Rect()..setLTRB(0.0, 0.0, width, height), paint); } } + } @@ -680,7 +683,7 @@ class RenderBlock extends RenderDecoratedBox with ContainerRenderNodeMixin _padding; - void set padding(EdgeDims value) { + void set padding (EdgeDims value) { assert(value != null); if (_padding != value) { _padding = value; -- GitLab