public override void RunLayoutHorizontal(int frameId) { AwesomeLayoutBox ptr = firstChild; float contentAreaWidth = finalWidth - (paddingBorderHorizontalStart + paddingBorderHorizontalEnd); float alignment = element.style.AlignItemsHorizontal; // SpaceDistribution extraSpace = element.style.DistributeExtraSpaceHorizontal; float inset = paddingBorderHorizontalStart; while (ptr != null) { LayoutSize size = default; ptr.GetWidths(ref size); float clampedWidth = size.Clamped; float x = inset + size.marginStart; float originBase = x; float originOffset = contentAreaWidth * alignment; float alignedPosition = originBase + originOffset + (clampedWidth * -alignment); ptr.ApplyLayoutHorizontal(x, alignedPosition, size, clampedWidth, contentAreaWidth, LayoutFit.None, frameId); ptr = ptr.nextSibling; } }
protected override float ComputeContentWidth() { AwesomeLayoutBox ptr = firstChild; float retn = 0f; while (ptr != null) { LayoutSize size = default; ptr.GetWidths(ref size); // todo clamp to min/max? float clampedWidth = size.Clamped + size.marginStart + size.marginEnd; if (clampedWidth > retn) { retn = clampedWidth; } ptr = ptr.nextSibling; } return(retn); }