@@ -62,7 +62,9 @@ class CssBoxWidget extends StatelessWidget {
6262
6363 @override
6464 Widget build (BuildContext context) {
65- final markerBox = style.listStylePosition == ListStylePosition .outside ? _generateMarkerBoxSpan (style) : null ;
65+ final markerBox = style.listStylePosition == ListStylePosition .outside
66+ ? _generateMarkerBoxSpan (style)
67+ : null ;
6668
6769 return _CSSBoxRenderer (
6870 width: style.width ?? Width .auto (),
@@ -79,11 +81,16 @@ class CssBoxWidget extends StatelessWidget {
7981 Container (
8082 decoration: BoxDecoration (
8183 border: style.border,
82- color: style.backgroundColor, //Colors the padding and content boxes
84+ color:
85+ style.backgroundColor, //Colors the padding and content boxes
8386 ),
8487 width: _shouldExpandToFillBlock () ? double .infinity : null ,
8588 padding: style.padding ?? EdgeInsets .zero,
86- child: top ? child : MediaQuery (data: MediaQuery .of (context).copyWith (textScaleFactor: 1.0 ), child: child)),
89+ child: top
90+ ? child
91+ : MediaQuery (
92+ data: MediaQuery .of (context).copyWith (textScaleFactor: 1.0 ),
93+ child: child)),
8794 if (markerBox != null ) Text .rich (markerBox),
8895 ],
8996 );
@@ -150,7 +157,8 @@ class CssBoxWidget extends StatelessWidget {
150157 child: Image .network (
151158 style.listStyleImage! .uriText,
152159 errorBuilder: (_, __, ___) {
153- if (style.marker? .content.replacementContent? .isNotEmpty ?? false ) {
160+ if (style.marker? .content.replacementContent? .isNotEmpty ??
161+ false ) {
154162 return Text .rich (
155163 TextSpan (
156164 text: style.marker! .content.replacementContent! ,
@@ -181,10 +189,14 @@ class CssBoxWidget extends StatelessWidget {
181189 /// width available to it or if it should just let its inner content
182190 /// determine the content-box's width.
183191 bool _shouldExpandToFillBlock () {
184- return (style.display == Display .block || style.display == Display .listItem) && ! childIsReplaced && ! shrinkWrap;
192+ return (style.display == Display .block ||
193+ style.display == Display .listItem) &&
194+ ! childIsReplaced &&
195+ ! shrinkWrap;
185196 }
186197
187- TextDirection _checkTextDirection (BuildContext context, TextDirection ? direction) {
198+ TextDirection _checkTextDirection (
199+ BuildContext context, TextDirection ? direction) {
188200 final textDirection = direction ?? Directionality .maybeOf (context);
189201
190202 assert (
@@ -318,7 +330,9 @@ class _CSSBoxRenderer extends MultiChildRenderObjectWidget {
318330
319331/// Implements the CSS layout algorithm
320332class _RenderCSSBox extends RenderBox
321- with ContainerRenderObjectMixin <RenderBox , CSSBoxParentData >, RenderBoxContainerDefaultsMixin <RenderBox , CSSBoxParentData > {
333+ with
334+ ContainerRenderObjectMixin <RenderBox , CSSBoxParentData >,
335+ RenderBoxContainerDefaultsMixin <RenderBox , CSSBoxParentData > {
322336 _RenderCSSBox ({
323337 required Display display,
324338 required Width width,
@@ -427,11 +441,13 @@ class _RenderCSSBox extends RenderBox
427441 }
428442 }
429443
430- static double getIntrinsicDimension (RenderBox ? firstChild, double Function (RenderBox child) mainChildSizeGetter) {
444+ static double getIntrinsicDimension (RenderBox ? firstChild,
445+ double Function (RenderBox child) mainChildSizeGetter) {
431446 double extent = 0.0 ;
432447 RenderBox ? child = firstChild;
433448 while (child != null ) {
434- final CSSBoxParentData childParentData = child.parentData! as CSSBoxParentData ;
449+ final CSSBoxParentData childParentData =
450+ child.parentData! as CSSBoxParentData ;
435451 extent = math.max (extent, mainChildSizeGetter (child));
436452 assert (child.parentData == childParentData);
437453 child = childParentData.nextSibling;
@@ -441,22 +457,26 @@ class _RenderCSSBox extends RenderBox
441457
442458 @override
443459 double computeMinIntrinsicWidth (double height) {
444- return getIntrinsicDimension (firstChild, (RenderBox child) => child.getMinIntrinsicWidth (height));
460+ return getIntrinsicDimension (
461+ firstChild, (RenderBox child) => child.getMinIntrinsicWidth (height));
445462 }
446463
447464 @override
448465 double computeMaxIntrinsicWidth (double height) {
449- return getIntrinsicDimension (firstChild, (RenderBox child) => child.getMaxIntrinsicWidth (height));
466+ return getIntrinsicDimension (
467+ firstChild, (RenderBox child) => child.getMaxIntrinsicWidth (height));
450468 }
451469
452470 @override
453471 double computeMinIntrinsicHeight (double width) {
454- return getIntrinsicDimension (firstChild, (RenderBox child) => child.getMinIntrinsicHeight (width));
472+ return getIntrinsicDimension (
473+ firstChild, (RenderBox child) => child.getMinIntrinsicHeight (width));
455474 }
456475
457476 @override
458477 double computeMaxIntrinsicHeight (double width) {
459- return getIntrinsicDimension (firstChild, (RenderBox child) => child.getMaxIntrinsicHeight (width));
478+ return getIntrinsicDimension (
479+ firstChild, (RenderBox child) => child.getMaxIntrinsicHeight (width));
460480 }
461481
462482 @override
@@ -472,7 +492,9 @@ class _RenderCSSBox extends RenderBox
472492 ).parentSize;
473493 }
474494
475- _Sizes _computeSize ({required BoxConstraints constraints, required ChildLayouter layoutChild}) {
495+ _Sizes _computeSize (
496+ {required BoxConstraints constraints,
497+ required ChildLayouter layoutChild}) {
476498 if (childCount == 0 ) {
477499 return _Sizes (constraints.biggest, Size .zero);
478500 }
@@ -491,10 +513,14 @@ class _RenderCSSBox extends RenderBox
491513 final childConstraints = constraints.copyWith (
492514 maxWidth: (this .width.unit != Unit .auto)
493515 ? this .width.value
494- : containingBlockSize.width - (margins.left? .value ?? 0 ) - (margins.right? .value ?? 0 ),
516+ : containingBlockSize.width -
517+ (margins.left? .value ?? 0 ) -
518+ (margins.right? .value ?? 0 ),
495519 maxHeight: (this .height.unit != Unit .auto)
496520 ? this .height.value
497- : containingBlockSize.height - (margins.top? .value ?? 0 ) - (margins.bottom? .value ?? 0 ),
521+ : containingBlockSize.height -
522+ (margins.top? .value ?? 0 ) -
523+ (margins.bottom? .value ?? 0 ),
498524 minWidth: (this .width.unit != Unit .auto) ? this .width.value : 0 ,
499525 minHeight: (this .height.unit != Unit .auto) ? this .height.value : 0 ,
500526 );
@@ -505,14 +531,18 @@ class _RenderCSSBox extends RenderBox
505531
506532 // Calculate used values of margins based on rules
507533 final usedMargins = _calculateUsedMargins (childSize, containingBlockSize);
508- final horizontalMargins = (usedMargins.left? .value ?? 0 ) + (usedMargins.right? .value ?? 0 );
509- final verticalMargins = (usedMargins.top? .value ?? 0 ) + (usedMargins.bottom? .value ?? 0 );
534+ final horizontalMargins =
535+ (usedMargins.left? .value ?? 0 ) + (usedMargins.right? .value ?? 0 );
536+ final verticalMargins =
537+ (usedMargins.top? .value ?? 0 ) + (usedMargins.bottom? .value ?? 0 );
510538
511539 //Calculate Width and Height of CSS Box
512540 height = childSize.height;
513541 switch (display) {
514542 case Display .block:
515- width = (shrinkWrap || childIsReplaced) ? childSize.width + horizontalMargins : containingBlockSize.width;
543+ width = (shrinkWrap || childIsReplaced)
544+ ? childSize.width + horizontalMargins
545+ : containingBlockSize.width;
516546 height = childSize.height + verticalMargins;
517547 break ;
518548 case Display .inline:
@@ -524,7 +554,9 @@ class _RenderCSSBox extends RenderBox
524554 height = childSize.height + verticalMargins;
525555 break ;
526556 case Display .listItem:
527- width = shrinkWrap ? childSize.width + horizontalMargins : containingBlockSize.width;
557+ width = shrinkWrap
558+ ? childSize.width + horizontalMargins
559+ : containingBlockSize.width;
528560 height = childSize.height + verticalMargins;
529561 break ;
530562 case Display .none:
@@ -549,10 +581,12 @@ class _RenderCSSBox extends RenderBox
549581 assert (firstChild != null );
550582 RenderBox child = firstChild! ;
551583
552- final CSSBoxParentData childParentData = child.parentData! as CSSBoxParentData ;
584+ final CSSBoxParentData childParentData =
585+ child.parentData! as CSSBoxParentData ;
553586
554587 // Calculate used margins based on constraints and child size
555- final usedMargins = _calculateUsedMargins (sizes.childSize, constraints.biggest);
588+ final usedMargins =
589+ _calculateUsedMargins (sizes.childSize, constraints.biggest);
556590 final leftMargin = usedMargins.left? .value ?? 0 ;
557591 final topMargin = usedMargins.top? .value ?? 0 ;
558592
@@ -585,8 +619,13 @@ class _RenderCSSBox extends RenderBox
585619 RenderBox ? markerBox = childParentData.nextSibling;
586620 if (markerBox != null ) {
587621 final markerBoxParentData = markerBox.parentData! as CSSBoxParentData ;
588- final distance = (child.getDistanceToBaseline (TextBaseline .alphabetic, onlyReal: true ) ?? 0 ) + topOffset;
589- final offsetHeight = distance - (markerBox.getDistanceToBaseline (TextBaseline .alphabetic) ?? markerBox.size.height);
622+ final distance = (child.getDistanceToBaseline (TextBaseline .alphabetic,
623+ onlyReal: true ) ??
624+ 0 ) +
625+ topOffset;
626+ final offsetHeight = distance -
627+ (markerBox.getDistanceToBaseline (TextBaseline .alphabetic) ??
628+ markerBox.size.height);
590629 markerBoxParentData.offset = Offset (- markerBox.size.width, offsetHeight);
591630 }
592631 }
@@ -618,7 +657,8 @@ class _RenderCSSBox extends RenderBox
618657 // width of the containing block, then consider left and right margins to
619658 // have a 0 value.
620659 if (! widthIsAuto) {
621- if ((childSize.width + marginLeft.value + marginRight.value) > containingBlockSize.width) {
660+ if ((childSize.width + marginLeft.value + marginRight.value) >
661+ containingBlockSize.width) {
622662 //Treat auto values of margin left and margin right as 0 for following rules
623663 marginLeft = Margin (0 );
624664 marginRight = Margin (0 );
@@ -630,16 +670,22 @@ class _RenderCSSBox extends RenderBox
630670 // If all values are non-auto, the box is overconstrained.
631671 // One of the margins will need to be adjusted so that the
632672 // entire width of the containing block is used.
633- if (! widthIsAuto && ! marginLeftIsAuto && ! marginRightIsAuto && ! shrinkWrap && ! childIsReplaced) {
673+ if (! widthIsAuto &&
674+ ! marginLeftIsAuto &&
675+ ! marginRightIsAuto &&
676+ ! shrinkWrap &&
677+ ! childIsReplaced) {
634678 //Ignore either left or right margin based on textDirection.
635679
636680 switch (textDirection) {
637681 case TextDirection .rtl:
638- final difference = containingBlockSize.width - childSize.width - marginRight.value;
682+ final difference =
683+ containingBlockSize.width - childSize.width - marginRight.value;
639684 marginLeft = Margin (difference);
640685 break ;
641686 case TextDirection .ltr:
642- final difference = containingBlockSize.width - childSize.width - marginLeft.value;
687+ final difference =
688+ containingBlockSize.width - childSize.width - marginLeft.value;
643689 marginRight = Margin (difference);
644690 break ;
645691 }
@@ -649,10 +695,12 @@ class _RenderCSSBox extends RenderBox
649695 if (widthIsAuto && ! marginLeftIsAuto && ! marginRightIsAuto) {
650696 widthIsAuto = false ;
651697 } else if (! widthIsAuto && marginLeftIsAuto && ! marginRightIsAuto) {
652- marginLeft = Margin (containingBlockSize.width - childSize.width - marginRight.value);
698+ marginLeft = Margin (
699+ containingBlockSize.width - childSize.width - marginRight.value);
653700 marginLeftIsAuto = false ;
654701 } else if (! widthIsAuto && ! marginLeftIsAuto && marginRightIsAuto) {
655- marginRight = Margin (containingBlockSize.width - childSize.width - marginLeft.value);
702+ marginRight = Margin (
703+ containingBlockSize.width - childSize.width - marginLeft.value);
656704 marginRightIsAuto = false ;
657705 }
658706
@@ -673,7 +721,8 @@ class _RenderCSSBox extends RenderBox
673721 //If both margin-left and margin-right are auto, their used values are equal.
674722 // This horizontally centers the element within the containing block.
675723 if (marginLeftIsAuto && marginRightIsAuto) {
676- final newMargin = Margin ((containingBlockSize.width - childSize.width) / 2 );
724+ final newMargin =
725+ Margin ((containingBlockSize.width - childSize.width) / 2 );
677726 marginLeft = newMargin;
678727 marginRight = newMargin;
679728 marginLeftIsAuto = false ;
@@ -684,7 +733,11 @@ class _RenderCSSBox extends RenderBox
684733 assert (! marginLeftIsAuto && ! marginRightIsAuto && ! widthIsAuto);
685734 }
686735
687- return Margins (left: marginLeft, right: marginRight, top: margins.top, bottom: margins.bottom);
736+ return Margins (
737+ left: marginLeft,
738+ right: marginRight,
739+ top: margins.top,
740+ bottom: margins.bottom);
688741 }
689742
690743 @override
0 commit comments