public override void SetHorizontal(float x, float width)
{
base.SetHorizontal(x, width);
if (this.resetCoords)
{
x = 0f;
}
RectOffset padding = base.style.padding;
if (this.isVertical)
{
if (base.style != GUIStyle.none)
{
foreach (GUILayoutEntry entry in this.entries)
{
float num = Mathf.Max(entry.margin.left, padding.left);
float num2 = x + num;
float num3 = (width - Mathf.Max(entry.margin.right, padding.right)) - num;
if (entry.stretchWidth != 0)
{
entry.SetHorizontal(num2, num3);
}
else
{
entry.SetHorizontal(num2, Mathf.Clamp(num3, entry.minWidth, entry.maxWidth));
}
}
}
else
{
float num4 = x - this.margin.left;
float num5 = width + this.margin.horizontal;
foreach (GUILayoutEntry entry2 in this.entries)
{
if (entry2.stretchWidth != 0)
{
entry2.SetHorizontal(num4 + entry2.margin.left, num5 - entry2.margin.horizontal);
}
else
{
entry2.SetHorizontal(num4 + entry2.margin.left, Mathf.Clamp(num5 - entry2.margin.horizontal, entry2.minWidth, entry2.maxWidth));
}
}
}
}
else
{
if (base.style != GUIStyle.none)
{
float left = padding.left;
float right = padding.right;
if (this.entries.Count != 0)
{
left = Mathf.Max(left, (float) this.entries[0].margin.left);
right = Mathf.Max(right, (float) this.entries[this.entries.Count - 1].margin.right);
}
x += left;
width -= right + left;
}
float num8 = width - (this.spacing * (this.entries.Count - 1));
float t = 0f;
if (this.m_ChildMinWidth != this.m_ChildMaxWidth)
{
t = Mathf.Clamp((float) ((num8 - this.m_ChildMinWidth) / (this.m_ChildMaxWidth - this.m_ChildMinWidth)), (float) 0f, (float) 1f);
}
float num10 = 0f;
if ((num8 > this.m_ChildMaxWidth) && (this.m_StretchableCountX > 0))
{
num10 = (num8 - this.m_ChildMaxWidth) / ((float) this.m_StretchableCountX);
}
int num11 = 0;
bool flag = true;
foreach (GUILayoutEntry entry3 in this.entries)
{
float f = Mathf.Lerp(entry3.minWidth, entry3.maxWidth, t) + (num10 * entry3.stretchWidth);
if (entry3.style != GUILayoutUtility.spaceStyle)
{
int num13 = entry3.margin.left;
if (flag)
{
num13 = 0;
flag = false;
}
int num14 = (num11 <= num13) ? num13 : num11;
x += num14;
num11 = entry3.margin.right;
}
entry3.SetHorizontal(Mathf.Round(x), Mathf.Round(f));
x += f + this.spacing;
}
}
}