163 lines
4.5 KiB
C#
163 lines
4.5 KiB
C#
using System;
|
|
|
|
namespace UnityEngine
|
|
{
|
|
// Token: 0x0200026D RID: 621
|
|
internal sealed class GUIGridSizer : GUILayoutEntry
|
|
{
|
|
// Token: 0x06002A64 RID: 10852 RVA: 0x00036A18 File Offset: 0x00034C18
|
|
private GUIGridSizer(GUIContent[] contents, int xCount, GUIStyle buttonStyle, GUILayoutOption[] options)
|
|
: base(0f, 0f, 0f, 0f, GUIStyle.none)
|
|
{
|
|
this.m_Count = contents.Length;
|
|
this.m_XCount = xCount;
|
|
this.ApplyStyleSettings(buttonStyle);
|
|
this.ApplyOptions(options);
|
|
if (xCount != 0 && contents.Length != 0)
|
|
{
|
|
float num = (float)(Mathf.Max(buttonStyle.margin.left, buttonStyle.margin.right) * (this.m_XCount - 1));
|
|
float num2 = (float)(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 (this.minWidth != 0f)
|
|
{
|
|
this.m_MinButtonWidth = (this.minWidth - num) / (float)this.m_XCount;
|
|
}
|
|
if (this.maxWidth != 0f)
|
|
{
|
|
this.m_MaxButtonWidth = (this.maxWidth - num) / (float)this.m_XCount;
|
|
}
|
|
}
|
|
if (this.m_MinButtonHeight == -1f)
|
|
{
|
|
if (this.minHeight != 0f)
|
|
{
|
|
this.m_MinButtonHeight = (this.minHeight - num2) / (float)this.rows;
|
|
}
|
|
if (this.maxHeight != 0f)
|
|
{
|
|
this.m_MaxButtonHeight = (this.maxHeight - num2) / (float)this.rows;
|
|
}
|
|
}
|
|
if (this.m_MinButtonHeight == -1f || this.m_MaxButtonHeight == -1f || this.m_MinButtonWidth == -1f || this.m_MaxButtonWidth == -1f)
|
|
{
|
|
float num3 = 0f;
|
|
float num4 = 0f;
|
|
foreach (GUIContent guicontent in contents)
|
|
{
|
|
Vector2 vector = buttonStyle.CalcSize(guicontent);
|
|
num4 = Mathf.Max(num4, vector.x);
|
|
num3 = Mathf.Max(num3, vector.y);
|
|
}
|
|
if (this.m_MinButtonWidth == -1f)
|
|
{
|
|
if (this.m_MaxButtonWidth != -1f)
|
|
{
|
|
this.m_MinButtonWidth = Mathf.Min(num4, this.m_MaxButtonWidth);
|
|
}
|
|
else
|
|
{
|
|
this.m_MinButtonWidth = num4;
|
|
}
|
|
}
|
|
if (this.m_MaxButtonWidth == -1f)
|
|
{
|
|
if (this.m_MinButtonWidth != -1f)
|
|
{
|
|
this.m_MaxButtonWidth = Mathf.Max(num4, this.m_MinButtonWidth);
|
|
}
|
|
else
|
|
{
|
|
this.m_MaxButtonWidth = num4;
|
|
}
|
|
}
|
|
if (this.m_MinButtonHeight == -1f)
|
|
{
|
|
if (this.m_MaxButtonHeight != -1f)
|
|
{
|
|
this.m_MinButtonHeight = Mathf.Min(num3, this.m_MaxButtonHeight);
|
|
}
|
|
else
|
|
{
|
|
this.m_MinButtonHeight = num3;
|
|
}
|
|
}
|
|
if (this.m_MaxButtonHeight == -1f)
|
|
{
|
|
if (this.m_MinButtonHeight != -1f)
|
|
{
|
|
this.maxHeight = Mathf.Max(this.maxHeight, this.m_MinButtonHeight);
|
|
}
|
|
this.m_MaxButtonHeight = this.maxHeight;
|
|
}
|
|
}
|
|
this.minWidth = this.m_MinButtonWidth * (float)this.m_XCount + num;
|
|
this.maxWidth = this.m_MaxButtonWidth * (float)this.m_XCount + num;
|
|
this.minHeight = this.m_MinButtonHeight * (float)this.rows + num2;
|
|
this.maxHeight = this.m_MaxButtonHeight * (float)this.rows + num2;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002A65 RID: 10853 RVA: 0x00036DF4 File Offset: 0x00034FF4
|
|
public static Rect GetRect(GUIContent[] contents, int xCount, GUIStyle style, GUILayoutOption[] options)
|
|
{
|
|
Rect rect = new Rect(0f, 0f, 0f, 0f);
|
|
EventType type = Event.current.type;
|
|
if (type != EventType.Layout)
|
|
{
|
|
if (type == EventType.Used)
|
|
{
|
|
return GUILayoutEntry.kDummyRect;
|
|
}
|
|
rect = GUILayoutUtility.current.topLevel.GetNext().rect;
|
|
}
|
|
else
|
|
{
|
|
GUILayoutUtility.current.topLevel.Add(new GUIGridSizer(contents, xCount, style, options));
|
|
}
|
|
return rect;
|
|
}
|
|
|
|
// Token: 0x170009BD RID: 2493
|
|
// (get) Token: 0x06002A66 RID: 10854 RVA: 0x00036E88 File Offset: 0x00035088
|
|
private int rows
|
|
{
|
|
get
|
|
{
|
|
int num = this.m_Count / this.m_XCount;
|
|
if (this.m_Count % this.m_XCount != 0)
|
|
{
|
|
num++;
|
|
}
|
|
return num;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0400078B RID: 1931
|
|
private readonly int m_Count;
|
|
|
|
// Token: 0x0400078C RID: 1932
|
|
private readonly int m_XCount;
|
|
|
|
// Token: 0x0400078D RID: 1933
|
|
private readonly float m_MinButtonWidth = -1f;
|
|
|
|
// Token: 0x0400078E RID: 1934
|
|
private readonly float m_MaxButtonWidth = -1f;
|
|
|
|
// Token: 0x0400078F RID: 1935
|
|
private readonly float m_MinButtonHeight = -1f;
|
|
|
|
// Token: 0x04000790 RID: 1936
|
|
private readonly float m_MaxButtonHeight = -1f;
|
|
}
|
|
}
|