Commit 0277b075 authored by Adam Barth's avatar Adam Barth

Provide the BuildContext to createRenderObject and updateRenderObject

We'll need this for RTL support because the RTL state will live in the widget
tree. Also, remove the `oldWidget` argument to updateRenderObject because there
aren't any clients for it.
parent 183fd205
...@@ -37,7 +37,7 @@ class RenderDots extends RenderConstrainedBox { ...@@ -37,7 +37,7 @@ class RenderDots extends RenderConstrainedBox {
class Dots extends OneChildRenderObjectWidget { class Dots extends OneChildRenderObjectWidget {
Dots({ Key key, Widget child }) : super(key: key, child: child); Dots({ Key key, Widget child }) : super(key: key, child: child);
RenderDots createRenderObject() => new RenderDots(); RenderDots createRenderObject(BuildContext context) => new RenderDots();
} }
void main() { void main() {
......
...@@ -67,14 +67,14 @@ class _CheckboxRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -67,14 +67,14 @@ class _CheckboxRenderObjectWidget extends LeafRenderObjectWidget {
final Color inactiveColor; final Color inactiveColor;
final ValueChanged<bool> onChanged; final ValueChanged<bool> onChanged;
_RenderCheckbox createRenderObject() => new _RenderCheckbox( _RenderCheckbox createRenderObject(BuildContext context) => new _RenderCheckbox(
value: value, value: value,
activeColor: activeColor, activeColor: activeColor,
inactiveColor: inactiveColor, inactiveColor: inactiveColor,
onChanged: onChanged onChanged: onChanged
); );
void updateRenderObject(_RenderCheckbox renderObject, _CheckboxRenderObjectWidget oldWidget) { void updateRenderObject(BuildContext context, _RenderCheckbox renderObject) {
renderObject renderObject
..value = value ..value = value
..activeColor = activeColor ..activeColor = activeColor
......
...@@ -279,9 +279,9 @@ class InkFeatures extends OneChildRenderObjectWidget { ...@@ -279,9 +279,9 @@ class InkFeatures extends OneChildRenderObjectWidget {
final Color color; final Color color;
RenderInkFeatures createRenderObject() => new RenderInkFeatures(color: color); RenderInkFeatures createRenderObject(BuildContext context) => new RenderInkFeatures(color: color);
void updateRenderObject(RenderInkFeatures renderObject, InkFeatures oldWidget) { void updateRenderObject(BuildContext context, RenderInkFeatures renderObject) {
renderObject.color = color; renderObject.color = color;
} }
} }
......
...@@ -72,14 +72,14 @@ class _RadioRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -72,14 +72,14 @@ class _RadioRenderObjectWidget extends LeafRenderObjectWidget {
final Color activeColor; final Color activeColor;
final ValueChanged<bool> onChanged; final ValueChanged<bool> onChanged;
_RenderRadio createRenderObject() => new _RenderRadio( _RenderRadio createRenderObject(BuildContext context) => new _RenderRadio(
value: selected, value: selected,
activeColor: activeColor, activeColor: activeColor,
inactiveColor: inactiveColor, inactiveColor: inactiveColor,
onChanged: onChanged onChanged: onChanged
); );
void updateRenderObject(_RenderRadio renderObject, _RadioRenderObjectWidget oldWidget) { void updateRenderObject(BuildContext context, _RenderRadio renderObject) {
renderObject renderObject
..value = selected ..value = selected
..activeColor = activeColor ..activeColor = activeColor
......
...@@ -55,13 +55,13 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -55,13 +55,13 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget {
final Color activeColor; final Color activeColor;
final ValueChanged<double> onChanged; final ValueChanged<double> onChanged;
_RenderSlider createRenderObject() => new _RenderSlider( _RenderSlider createRenderObject(BuildContext context) => new _RenderSlider(
value: value, value: value,
activeColor: activeColor, activeColor: activeColor,
onChanged: onChanged onChanged: onChanged
); );
void updateRenderObject(_RenderSlider renderObject, _SliderRenderObjectWidget oldWidget) { void updateRenderObject(BuildContext context, _RenderSlider renderObject) {
renderObject renderObject
..value = value ..value = value
..activeColor = activeColor ..activeColor = activeColor
......
...@@ -68,7 +68,7 @@ class _SwitchRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -68,7 +68,7 @@ class _SwitchRenderObjectWidget extends LeafRenderObjectWidget {
final Color inactiveTrackColor; final Color inactiveTrackColor;
final ValueChanged<bool> onChanged; final ValueChanged<bool> onChanged;
_RenderSwitch createRenderObject() => new _RenderSwitch( _RenderSwitch createRenderObject(BuildContext context) => new _RenderSwitch(
value: value, value: value,
activeColor: activeColor, activeColor: activeColor,
inactiveColor: inactiveColor, inactiveColor: inactiveColor,
...@@ -77,7 +77,7 @@ class _SwitchRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -77,7 +77,7 @@ class _SwitchRenderObjectWidget extends LeafRenderObjectWidget {
onChanged: onChanged onChanged: onChanged
); );
void updateRenderObject(_RenderSwitch renderObject, _SwitchRenderObjectWidget oldWidget) { void updateRenderObject(BuildContext context, _RenderSwitch renderObject) {
renderObject renderObject
..value = value ..value = value
..activeColor = activeColor ..activeColor = activeColor
......
...@@ -265,13 +265,13 @@ class _TabBarWrapper extends MultiChildRenderObjectWidget { ...@@ -265,13 +265,13 @@ class _TabBarWrapper extends MultiChildRenderObjectWidget {
final bool isScrollable; final bool isScrollable;
final TabLayoutChanged onLayoutChanged; final TabLayoutChanged onLayoutChanged;
_RenderTabBar createRenderObject() { _RenderTabBar createRenderObject(BuildContext context) {
_RenderTabBar result = new _RenderTabBar(onLayoutChanged); _RenderTabBar result = new _RenderTabBar(onLayoutChanged);
updateRenderObject(result, null); updateRenderObject(context, result);
return result; return result;
} }
void updateRenderObject(_RenderTabBar renderObject, _TabBarWrapper oldWidget) { void updateRenderObject(BuildContext context, _RenderTabBar renderObject) {
renderObject renderObject
..selectedIndex = selectedIndex ..selectedIndex = selectedIndex
..indicatorColor = indicatorColor ..indicatorColor = indicatorColor
......
...@@ -19,9 +19,9 @@ class AutoLayout extends MultiChildRenderObjectWidget { ...@@ -19,9 +19,9 @@ class AutoLayout extends MultiChildRenderObjectWidget {
final AutoLayoutDelegate delegate; final AutoLayoutDelegate delegate;
RenderAutoLayout createRenderObject() => new RenderAutoLayout(delegate: delegate); RenderAutoLayout createRenderObject(BuildContext context) => new RenderAutoLayout(delegate: delegate);
void updateRenderObject(RenderAutoLayout renderObject, AutoLayout oldWidget) { void updateRenderObject(BuildContext context, RenderAutoLayout renderObject) {
renderObject.delegate = delegate; renderObject.delegate = delegate;
} }
} }
......
This diff is collapsed.
...@@ -192,9 +192,9 @@ class RenderObjectToWidgetAdapter<T extends RenderObject> extends RenderObjectWi ...@@ -192,9 +192,9 @@ class RenderObjectToWidgetAdapter<T extends RenderObject> extends RenderObjectWi
RenderObjectToWidgetElement<T> createElement() => new RenderObjectToWidgetElement<T>(this); RenderObjectToWidgetElement<T> createElement() => new RenderObjectToWidgetElement<T>(this);
RenderObjectWithChildMixin<T> createRenderObject() => container; RenderObjectWithChildMixin<T> createRenderObject(BuildContext context) => container;
void updateRenderObject(RenderObject renderObject, RenderObjectWidget oldWidget) { } void updateRenderObject(BuildContext context, RenderObject renderObject) { }
RenderObjectToWidgetElement<T> attachToRenderTree([RenderObjectToWidgetElement<T> element]) { RenderObjectToWidgetElement<T> attachToRenderTree([RenderObjectToWidgetElement<T> element]) {
BuildableElement.lockState(() { BuildableElement.lockState(() {
......
...@@ -32,9 +32,9 @@ class _ChildViewWidget extends LeafRenderObjectWidget { ...@@ -32,9 +32,9 @@ class _ChildViewWidget extends LeafRenderObjectWidget {
final ChildViewConnection child; final ChildViewConnection child;
final double scale; final double scale;
RenderChildView createRenderObject() => new RenderChildView(child: child, scale: scale); RenderChildView createRenderObject(BuildContext context) => new RenderChildView(child: child, scale: scale);
void updateRenderObject(RenderChildView renderObject, _ChildViewWidget oldWidget) { void updateRenderObject(BuildContext context, RenderChildView renderObject) {
renderObject renderObject
..child = child ..child = child
..scale = scale; ..scale = scale;
......
...@@ -365,7 +365,7 @@ class _EditableLineWidget extends LeafRenderObjectWidget { ...@@ -365,7 +365,7 @@ class _EditableLineWidget extends LeafRenderObjectWidget {
final Offset paintOffset; final Offset paintOffset;
final ViewportDimensionsChangeCallback onPaintOffsetUpdateNeeded; final ViewportDimensionsChangeCallback onPaintOffsetUpdateNeeded;
RenderEditableLine createRenderObject() { RenderEditableLine createRenderObject(BuildContext context) {
return new RenderEditableLine( return new RenderEditableLine(
text: _styledTextSpan, text: _styledTextSpan,
cursorColor: cursorColor, cursorColor: cursorColor,
...@@ -378,8 +378,7 @@ class _EditableLineWidget extends LeafRenderObjectWidget { ...@@ -378,8 +378,7 @@ class _EditableLineWidget extends LeafRenderObjectWidget {
); );
} }
void updateRenderObject(RenderEditableLine renderObject, void updateRenderObject(BuildContext context, RenderEditableLine renderObject) {
_EditableLineWidget oldWidget) {
renderObject renderObject
..text = _styledTextSpan ..text = _styledTextSpan
..cursorColor = cursorColor ..cursorColor = cursorColor
......
...@@ -485,12 +485,12 @@ abstract class RenderObjectWidget extends Widget { ...@@ -485,12 +485,12 @@ abstract class RenderObjectWidget extends Widget {
/// Constructs an instance of the RenderObject class that this /// Constructs an instance of the RenderObject class that this
/// RenderObjectWidget represents, using the configuration described by this /// RenderObjectWidget represents, using the configuration described by this
/// RenderObjectWidget. /// RenderObjectWidget.
RenderObject createRenderObject(); RenderObject createRenderObject(BuildContext context);
/// Copies the configuration described by this RenderObjectWidget to the given /// Copies the configuration described by this RenderObjectWidget to the given
/// RenderObject, which must be of the same type as returned by this class' /// RenderObject, which must be of the same type as returned by this class'
/// createRenderObject(). /// createRenderObject(BuildContext context).
void updateRenderObject(RenderObject renderObject, RenderObjectWidget oldWidget) { } void updateRenderObject(BuildContext context, RenderObject renderObject) { }
void didUnmountRenderObject(RenderObject renderObject) { } void didUnmountRenderObject(RenderObject renderObject) { }
} }
...@@ -1033,7 +1033,7 @@ class ErrorWidget extends LeafRenderObjectWidget { ...@@ -1033,7 +1033,7 @@ class ErrorWidget extends LeafRenderObjectWidget {
} catch (e) { } } catch (e) { }
return 'Error'; return 'Error';
} }
RenderBox createRenderObject() => new RenderErrorBox(message); RenderBox createRenderObject(BuildContext context) => new RenderErrorBox(message);
} }
typedef void BuildScheduler(BuildableElement element); typedef void BuildScheduler(BuildableElement element);
...@@ -1509,7 +1509,7 @@ abstract class RenderObjectElement<T extends RenderObjectWidget> extends Buildab ...@@ -1509,7 +1509,7 @@ abstract class RenderObjectElement<T extends RenderObjectWidget> extends Buildab
void mount(Element parent, dynamic newSlot) { void mount(Element parent, dynamic newSlot) {
super.mount(parent, newSlot); super.mount(parent, newSlot);
_renderObject = widget.createRenderObject(); _renderObject = widget.createRenderObject(this);
assert(() { debugUpdateRenderObjectOwner(); return true; }); assert(() { debugUpdateRenderObjectOwner(); return true; });
assert(_slot == newSlot); assert(_slot == newSlot);
attachRenderObject(newSlot); attachRenderObject(newSlot);
...@@ -1517,11 +1517,10 @@ abstract class RenderObjectElement<T extends RenderObjectWidget> extends Buildab ...@@ -1517,11 +1517,10 @@ abstract class RenderObjectElement<T extends RenderObjectWidget> extends Buildab
} }
void update(T newWidget) { void update(T newWidget) {
T oldWidget = widget;
super.update(newWidget); super.update(newWidget);
assert(widget == newWidget); assert(widget == newWidget);
assert(() { debugUpdateRenderObjectOwner(); return true; }); assert(() { debugUpdateRenderObjectOwner(); return true; });
widget.updateRenderObject(renderObject, oldWidget); widget.updateRenderObject(this, renderObject);
_dirty = false; _dirty = false;
} }
......
...@@ -303,7 +303,7 @@ class RawGestureDetectorState extends State<RawGestureDetector> { ...@@ -303,7 +303,7 @@ class RawGestureDetectorState extends State<RawGestureDetector> {
if (!config.excludeFromSemantics) { if (!config.excludeFromSemantics) {
RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject(); RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject();
context.visitChildElements((RenderObjectElement element) { context.visitChildElements((RenderObjectElement element) {
element.widget.updateRenderObject(semanticsGestureHandler, null); element.widget.updateRenderObject(context, semanticsGestureHandler);
}); });
} }
} }
...@@ -458,13 +458,13 @@ class _GestureSemantics extends OneChildRenderObjectWidget { ...@@ -458,13 +458,13 @@ class _GestureSemantics extends OneChildRenderObjectWidget {
assert(false); assert(false);
} }
RenderSemanticsGestureHandler createRenderObject() { RenderSemanticsGestureHandler createRenderObject(BuildContext context) {
RenderSemanticsGestureHandler result = new RenderSemanticsGestureHandler(); RenderSemanticsGestureHandler result = new RenderSemanticsGestureHandler();
updateRenderObject(result, null); updateRenderObject(context, result);
return result; return result;
} }
void updateRenderObject(RenderSemanticsGestureHandler renderObject, _GestureSemantics oldWidget) { void updateRenderObject(BuildContext context, RenderSemanticsGestureHandler renderObject) {
Map<Type, GestureRecognizer> recognizers = owner._recognizers; Map<Type, GestureRecognizer> recognizers = owner._recognizers;
renderObject renderObject
..onTap = recognizers.containsKey(TapGestureRecognizer) ? _handleTap : null ..onTap = recognizers.containsKey(TapGestureRecognizer) ? _handleTap : null
......
...@@ -37,7 +37,7 @@ class MixedViewport extends RenderObjectWidget { ...@@ -37,7 +37,7 @@ class MixedViewport extends RenderObjectWidget {
// we don't pass constructor arguments to the RenderBlockViewport() because until // we don't pass constructor arguments to the RenderBlockViewport() because until
// we know our children, the constructor arguments we could give have no effect // we know our children, the constructor arguments we could give have no effect
RenderBlockViewport createRenderObject() => new RenderBlockViewport(); RenderBlockViewport createRenderObject(BuildContext context) => new RenderBlockViewport();
_ChangeDescription evaluateChangesFrom(MixedViewport oldWidget) { _ChangeDescription evaluateChangesFrom(MixedViewport oldWidget) {
if (direction != oldWidget.direction || if (direction != oldWidget.direction ||
......
...@@ -242,7 +242,7 @@ class PageViewport extends VirtualViewportFromIterable { ...@@ -242,7 +242,7 @@ class PageViewport extends VirtualViewportFromIterable {
final Painter overlayPainter; final Painter overlayPainter;
final Iterable<Widget> children; final Iterable<Widget> children;
RenderList createRenderObject() => new RenderList(); RenderList createRenderObject(BuildContext context) => new RenderList();
_PageViewportElement createElement() => new _PageViewportElement(this); _PageViewportElement createElement() => new _PageViewportElement(this);
} }
......
...@@ -56,12 +56,12 @@ class PerformanceOverlay extends LeafRenderObjectWidget { ...@@ -56,12 +56,12 @@ class PerformanceOverlay extends LeafRenderObjectWidget {
/// how many frame intervals). /// how many frame intervals).
final int rasterizerThreshold; final int rasterizerThreshold;
RenderPerformanceOverlay createRenderObject() => new RenderPerformanceOverlay( RenderPerformanceOverlay createRenderObject(BuildContext context) => new RenderPerformanceOverlay(
optionsMask: optionsMask, optionsMask: optionsMask,
rasterizerThreshold: rasterizerThreshold rasterizerThreshold: rasterizerThreshold
); );
void updateRenderObject(RenderPerformanceOverlay renderObject, RenderObjectWidget oldWidget) { void updateRenderObject(BuildContext context, RenderPerformanceOverlay renderObject) {
renderObject renderObject
..optionsMask = optionsMask ..optionsMask = optionsMask
..rasterizerThreshold = rasterizerThreshold; ..rasterizerThreshold = rasterizerThreshold;
......
...@@ -80,7 +80,7 @@ class GridViewport extends VirtualViewportFromIterable { ...@@ -80,7 +80,7 @@ class GridViewport extends VirtualViewportFromIterable {
// TODO(abarth): Support horizontal scrolling; // TODO(abarth): Support horizontal scrolling;
Axis get scrollDirection => Axis.vertical; Axis get scrollDirection => Axis.vertical;
RenderGrid createRenderObject() => new RenderGrid(delegate: delegate); RenderGrid createRenderObject(BuildContext context) => new RenderGrid(delegate: delegate);
_GridViewportElement createElement() => new _GridViewportElement(this); _GridViewportElement createElement() => new _GridViewportElement(this);
} }
......
...@@ -140,7 +140,7 @@ class _VirtualListViewport extends VirtualViewport { ...@@ -140,7 +140,7 @@ class _VirtualListViewport extends VirtualViewport {
return scrollOffset - _leadingPadding; return scrollOffset - _leadingPadding;
} }
RenderList createRenderObject() => new RenderList(itemExtent: itemExtent); RenderList createRenderObject(BuildContext context) => new RenderList(itemExtent: itemExtent);
_VirtualListViewportElement createElement() => new _VirtualListViewportElement(this); _VirtualListViewportElement createElement() => new _VirtualListViewportElement(this);
} }
......
...@@ -24,9 +24,9 @@ class SpriteWidget extends OneChildRenderObjectWidget { ...@@ -24,9 +24,9 @@ class SpriteWidget extends OneChildRenderObjectWidget {
/// var mySpriteWidget = new SpriteWidget(mySpriteTree, SpriteBoxTransformMode.fixedHeight); /// var mySpriteWidget = new SpriteWidget(mySpriteTree, SpriteBoxTransformMode.fixedHeight);
SpriteWidget(this.rootNode, [this.transformMode = SpriteBoxTransformMode.letterbox]); SpriteWidget(this.rootNode, [this.transformMode = SpriteBoxTransformMode.letterbox]);
SpriteBox createRenderObject() => new SpriteBox(rootNode, transformMode); SpriteBox createRenderObject(BuildContext context) => new SpriteBox(rootNode, transformMode);
void updateRenderObject(SpriteBox renderObject, SpriteWidget oldWidget) { void updateRenderObject(BuildContext context, SpriteBox renderObject) {
renderObject renderObject
..rootNode = rootNode ..rootNode = rootNode
..transformMode = transformMode; ..transformMode = transformMode;
......
...@@ -57,9 +57,9 @@ class _ChartWrapper extends LeafRenderObjectWidget { ...@@ -57,9 +57,9 @@ class _ChartWrapper extends LeafRenderObjectWidget {
final TextTheme textTheme; final TextTheme textTheme;
final ChartData data; final ChartData data;
_RenderChart createRenderObject() => new _RenderChart(textTheme: textTheme, data: data); _RenderChart createRenderObject(BuildContext context) => new _RenderChart(textTheme: textTheme, data: data);
void updateRenderObject(_RenderChart renderObject, _ChartWrapper oldWidget) { void updateRenderObject(BuildContext context, _RenderChart renderObject) {
renderObject renderObject
..textTheme = textTheme ..textTheme = textTheme
..data = data; ..data = data;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment