Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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);
        }