Files
Dec2017-Script-Dump/UnityEngine.UI/UI/HorizontalOrVerticalLayoutGroup.cs
2026-06-04 11:42:34 +02:00

238 lines
6.8 KiB
C#

using System;
namespace UnityEngine.UI
{
// Token: 0x02000094 RID: 148
public abstract class HorizontalOrVerticalLayoutGroup : LayoutGroup
{
// Token: 0x17000170 RID: 368
// (get) Token: 0x0600054B RID: 1355 RVA: 0x0001C41C File Offset: 0x0001A81C
// (set) Token: 0x0600054C RID: 1356 RVA: 0x0001C437 File Offset: 0x0001A837
public float spacing
{
get
{
return this.m_Spacing;
}
set
{
base.SetProperty<float>(ref this.m_Spacing, value);
}
}
// Token: 0x17000171 RID: 369
// (get) Token: 0x0600054D RID: 1357 RVA: 0x0001C448 File Offset: 0x0001A848
// (set) Token: 0x0600054E RID: 1358 RVA: 0x0001C463 File Offset: 0x0001A863
public bool childForceExpandWidth
{
get
{
return this.m_ChildForceExpandWidth;
}
set
{
base.SetProperty<bool>(ref this.m_ChildForceExpandWidth, value);
}
}
// Token: 0x17000172 RID: 370
// (get) Token: 0x0600054F RID: 1359 RVA: 0x0001C474 File Offset: 0x0001A874
// (set) Token: 0x06000550 RID: 1360 RVA: 0x0001C48F File Offset: 0x0001A88F
public bool childForceExpandHeight
{
get
{
return this.m_ChildForceExpandHeight;
}
set
{
base.SetProperty<bool>(ref this.m_ChildForceExpandHeight, value);
}
}
// Token: 0x17000173 RID: 371
// (get) Token: 0x06000551 RID: 1361 RVA: 0x0001C4A0 File Offset: 0x0001A8A0
// (set) Token: 0x06000552 RID: 1362 RVA: 0x0001C4BB File Offset: 0x0001A8BB
public bool childControlWidth
{
get
{
return this.m_ChildControlWidth;
}
set
{
base.SetProperty<bool>(ref this.m_ChildControlWidth, value);
}
}
// Token: 0x17000174 RID: 372
// (get) Token: 0x06000553 RID: 1363 RVA: 0x0001C4CC File Offset: 0x0001A8CC
// (set) Token: 0x06000554 RID: 1364 RVA: 0x0001C4E7 File Offset: 0x0001A8E7
public bool childControlHeight
{
get
{
return this.m_ChildControlHeight;
}
set
{
base.SetProperty<bool>(ref this.m_ChildControlHeight, value);
}
}
// Token: 0x06000555 RID: 1365 RVA: 0x0001C4F8 File Offset: 0x0001A8F8
protected void CalcAlongAxis(int axis, bool isVertical)
{
float num = (float)((axis != 0) ? base.padding.vertical : base.padding.horizontal);
bool flag = ((axis != 0) ? this.m_ChildControlHeight : this.m_ChildControlWidth);
bool flag2 = ((axis != 0) ? this.childForceExpandHeight : this.childForceExpandWidth);
float num2 = num;
float num3 = num;
float num4 = 0f;
bool flag3 = isVertical ^ (axis == 1);
for (int i = 0; i < base.rectChildren.Count; i++)
{
RectTransform rectTransform = base.rectChildren[i];
float num5;
float num6;
float num7;
this.GetChildSizes(rectTransform, axis, flag, flag2, out num5, out num6, out num7);
if (flag3)
{
num2 = Mathf.Max(num5 + num, num2);
num3 = Mathf.Max(num6 + num, num3);
num4 = Mathf.Max(num7, num4);
}
else
{
num2 += num5 + this.spacing;
num3 += num6 + this.spacing;
num4 += num7;
}
}
if (!flag3 && base.rectChildren.Count > 0)
{
num2 -= this.spacing;
num3 -= this.spacing;
}
num3 = Mathf.Max(num2, num3);
base.SetLayoutInputForAxis(num2, num3, num4, axis);
}
// Token: 0x06000556 RID: 1366 RVA: 0x0001C648 File Offset: 0x0001AA48
protected void SetChildrenAlongAxis(int axis, bool isVertical)
{
float num = base.rectTransform.rect.size[axis];
bool flag = ((axis != 0) ? this.m_ChildControlHeight : this.m_ChildControlWidth);
bool flag2 = ((axis != 0) ? this.childForceExpandHeight : this.childForceExpandWidth);
float alignmentOnAxis = base.GetAlignmentOnAxis(axis);
bool flag3 = isVertical ^ (axis == 1);
if (flag3)
{
float num2 = num - (float)((axis != 0) ? base.padding.vertical : base.padding.horizontal);
for (int i = 0; i < base.rectChildren.Count; i++)
{
RectTransform rectTransform = base.rectChildren[i];
float num3;
float num4;
float num5;
this.GetChildSizes(rectTransform, axis, flag, flag2, out num3, out num4, out num5);
float num6 = Mathf.Clamp(num2, num3, (num5 <= 0f) ? num4 : num);
float startOffset = base.GetStartOffset(axis, num6);
if (flag)
{
base.SetChildAlongAxis(rectTransform, axis, startOffset, num6);
}
else
{
float num7 = (num6 - rectTransform.sizeDelta[axis]) * alignmentOnAxis;
base.SetChildAlongAxis(rectTransform, axis, startOffset + num7);
}
}
}
else
{
float num8 = (float)((axis != 0) ? base.padding.top : base.padding.left);
if (base.GetTotalFlexibleSize(axis) == 0f && base.GetTotalPreferredSize(axis) < num)
{
num8 = base.GetStartOffset(axis, base.GetTotalPreferredSize(axis) - (float)((axis != 0) ? base.padding.vertical : base.padding.horizontal));
}
float num9 = 0f;
if (base.GetTotalMinSize(axis) != base.GetTotalPreferredSize(axis))
{
num9 = Mathf.Clamp01((num - base.GetTotalMinSize(axis)) / (base.GetTotalPreferredSize(axis) - base.GetTotalMinSize(axis)));
}
float num10 = 0f;
if (num > base.GetTotalPreferredSize(axis))
{
if (base.GetTotalFlexibleSize(axis) > 0f)
{
num10 = (num - base.GetTotalPreferredSize(axis)) / base.GetTotalFlexibleSize(axis);
}
}
for (int j = 0; j < base.rectChildren.Count; j++)
{
RectTransform rectTransform2 = base.rectChildren[j];
float num11;
float num12;
float num13;
this.GetChildSizes(rectTransform2, axis, flag, flag2, out num11, out num12, out num13);
float num14 = Mathf.Lerp(num11, num12, num9);
num14 += num13 * num10;
if (flag)
{
base.SetChildAlongAxis(rectTransform2, axis, num8, num14);
}
else
{
float num15 = (num14 - rectTransform2.sizeDelta[axis]) * alignmentOnAxis;
base.SetChildAlongAxis(rectTransform2, axis, num8 + num15);
}
num8 += num14 + this.spacing;
}
}
}
// Token: 0x06000557 RID: 1367 RVA: 0x0001C930 File Offset: 0x0001AD30
private void GetChildSizes(RectTransform child, int axis, bool controlSize, bool childForceExpand, out float min, out float preferred, out float flexible)
{
if (!controlSize)
{
min = child.sizeDelta[axis];
preferred = min;
flexible = 0f;
}
else
{
min = LayoutUtility.GetMinSize(child, axis);
preferred = LayoutUtility.GetPreferredSize(child, axis);
flexible = LayoutUtility.GetFlexibleSize(child, axis);
}
if (childForceExpand)
{
flexible = Mathf.Max(flexible, 1f);
}
}
// Token: 0x04000299 RID: 665
[SerializeField]
protected float m_Spacing = 0f;
// Token: 0x0400029A RID: 666
[SerializeField]
protected bool m_ChildForceExpandWidth = true;
// Token: 0x0400029B RID: 667
[SerializeField]
protected bool m_ChildForceExpandHeight = true;
// Token: 0x0400029C RID: 668
[SerializeField]
protected bool m_ChildControlWidth = true;
// Token: 0x0400029D RID: 669
[SerializeField]
protected bool m_ChildControlHeight = true;
}
}