UnityEngine.GUIGridSizer.GUIGridSizer C# (CSharp) Method

GUIGridSizer() private method

private GUIGridSizer ( GUIContent contents, int xCount, GUIStyle buttonStyle, GUILayoutOption options ) : System
contents GUIContent
xCount int
buttonStyle GUIStyle
options GUILayoutOption
return System
        private GUIGridSizer(GUIContent[] contents, int xCount, GUIStyle buttonStyle, GUILayoutOption[] options) : base(0f, 0f, 0f, 0f, GUIStyle.none)
        {
            this.m_MinButtonWidth = -1f;
            this.m_MaxButtonWidth = -1f;
            this.m_MinButtonHeight = -1f;
            this.m_MaxButtonHeight = -1f;
            this.m_Count = contents.Length;
            this.m_XCount = xCount;
            this.ApplyStyleSettings(buttonStyle);
            this.ApplyOptions(options);
            if ((xCount != 0) && (contents.Length != 0))
            {
                float num = Mathf.Max(buttonStyle.margin.left, buttonStyle.margin.right) * (this.m_XCount - 1);
                float num2 = Mathf.Max(buttonStyle.margin.top, buttonStyle.margin.bottom) * (this.rows - 1);
                if (buttonStyle.fixedWidth != 0f)
                {
                    this.m_MinButtonWidth = this.m_MaxButtonWidth = buttonStyle.fixedWidth;
                }
                if (buttonStyle.fixedHeight != 0f)
                {
                    this.m_MinButtonHeight = this.m_MaxButtonHeight = buttonStyle.fixedHeight;
                }
                if (this.m_MinButtonWidth == -1f)
                {
                    if (base.minWidth != 0f)
                    {
                        this.m_MinButtonWidth = (base.minWidth - num) / ((float) this.m_XCount);
                    }
                    if (base.maxWidth != 0f)
                    {
                        this.m_MaxButtonWidth = (base.maxWidth - num) / ((float) this.m_XCount);
                    }
                }
                if (this.m_MinButtonHeight == -1f)
                {
                    if (base.minHeight != 0f)
                    {
                        this.m_MinButtonHeight = (base.minHeight - num2) / ((float) this.rows);
                    }
                    if (base.maxHeight != 0f)
                    {
                        this.m_MaxButtonHeight = (base.maxHeight - num2) / ((float) this.rows);
                    }
                }
                if (((this.m_MinButtonHeight == -1f) || (this.m_MaxButtonHeight == -1f)) || ((this.m_MinButtonWidth == -1f) || (this.m_MaxButtonWidth == -1f)))
                {
                    float a = 0f;
                    float num5 = 0f;
                    foreach (GUIContent content in contents)
                    {
                        Vector2 vector = buttonStyle.CalcSize(content);
                        num5 = Mathf.Max(num5, vector.x);
                        a = Mathf.Max(a, vector.y);
                    }
                    if (this.m_MinButtonWidth == -1f)
                    {
                        if (this.m_MaxButtonWidth != -1f)
                        {
                            this.m_MinButtonWidth = Mathf.Min(num5, this.m_MaxButtonWidth);
                        }
                        else
                        {
                            this.m_MinButtonWidth = num5;
                        }
                    }
                    if (this.m_MaxButtonWidth == -1f)
                    {
                        if (this.m_MinButtonWidth != -1f)
                        {
                            this.m_MaxButtonWidth = Mathf.Max(num5, this.m_MinButtonWidth);
                        }
                        else
                        {
                            this.m_MaxButtonWidth = num5;
                        }
                    }
                    if (this.m_MinButtonHeight == -1f)
                    {
                        if (this.m_MaxButtonHeight != -1f)
                        {
                            this.m_MinButtonHeight = Mathf.Min(a, this.m_MaxButtonHeight);
                        }
                        else
                        {
                            this.m_MinButtonHeight = a;
                        }
                    }
                    if (this.m_MaxButtonHeight == -1f)
                    {
                        if (this.m_MinButtonHeight != -1f)
                        {
                            base.maxHeight = Mathf.Max(base.maxHeight, this.m_MinButtonHeight);
                        }
                        this.m_MaxButtonHeight = base.maxHeight;
                    }
                }
                base.minWidth = (this.m_MinButtonWidth * this.m_XCount) + num;
                base.maxWidth = (this.m_MaxButtonWidth * this.m_XCount) + num;
                base.minHeight = (this.m_MinButtonHeight * this.rows) + num2;
                base.maxHeight = (this.m_MaxButtonHeight * this.rows) + num2;
            }
        }