Ejemplo n.º 1
0
        public virtual void DetermineSize(float parentWidth, float parentHeight)
        {
            if (Enabled)
            {
                if (Size.SpecialType == SpecialVector2Type.Inherit)
                {
                    float furthestX = 0, furthestY = 0;
                    for (int i = 0; i < Children.Count; i++)
                    {
                        Children[i].DetermineSize(0, 0);
                        var x = Children[i].Position.Final.X + Children[i].Size.Final.X;
                        var y = Children[i].Position.Final.Y + Children[i].Size.Final.Y;
                        furthestX = x > furthestX ? x : furthestX;
                        furthestY = y > furthestY ? y : furthestY;
                    }

                    Size.CalculateSize(furthestX - Position.Final.X, furthestY - Position.Final.Y);
                }
                else
                {
                    Size.CalculateSize(parentWidth, parentHeight);
                    for (int i = 0; i < Children.Count; i++)
                    {
                        Children[i].DetermineSize(Size.Final.X, Size.Final.Y);
                    }
                }
            }
        }