159 lines
4.2 KiB
C#
159 lines
4.2 KiB
C#
using System;
|
|
using UnityEngine.EventSystems;
|
|
|
|
namespace UnityEngine.UI
|
|
{
|
|
// Token: 0x0200008D RID: 141
|
|
[AddComponentMenu("Layout/Content Size Fitter", 141)]
|
|
[ExecuteInEditMode]
|
|
[RequireComponent(typeof(RectTransform))]
|
|
public class ContentSizeFitter : UIBehaviour, ILayoutSelfController, ILayoutController
|
|
{
|
|
// Token: 0x06000526 RID: 1318 RVA: 0x0001B2CF File Offset: 0x000196CF
|
|
protected ContentSizeFitter()
|
|
{
|
|
}
|
|
|
|
// Token: 0x17000167 RID: 359
|
|
// (get) Token: 0x06000527 RID: 1319 RVA: 0x0001B2E8 File Offset: 0x000196E8
|
|
// (set) Token: 0x06000528 RID: 1320 RVA: 0x0001B303 File Offset: 0x00019703
|
|
public ContentSizeFitter.FitMode horizontalFit
|
|
{
|
|
get
|
|
{
|
|
return this.m_HorizontalFit;
|
|
}
|
|
set
|
|
{
|
|
if (SetPropertyUtility.SetStruct<ContentSizeFitter.FitMode>(ref this.m_HorizontalFit, value))
|
|
{
|
|
this.SetDirty();
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000168 RID: 360
|
|
// (get) Token: 0x06000529 RID: 1321 RVA: 0x0001B320 File Offset: 0x00019720
|
|
// (set) Token: 0x0600052A RID: 1322 RVA: 0x0001B33B File Offset: 0x0001973B
|
|
public ContentSizeFitter.FitMode verticalFit
|
|
{
|
|
get
|
|
{
|
|
return this.m_VerticalFit;
|
|
}
|
|
set
|
|
{
|
|
if (SetPropertyUtility.SetStruct<ContentSizeFitter.FitMode>(ref this.m_VerticalFit, value))
|
|
{
|
|
this.SetDirty();
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000169 RID: 361
|
|
// (get) Token: 0x0600052B RID: 1323 RVA: 0x0001B358 File Offset: 0x00019758
|
|
private RectTransform rectTransform
|
|
{
|
|
get
|
|
{
|
|
if (this.m_Rect == null)
|
|
{
|
|
this.m_Rect = base.GetComponent<RectTransform>();
|
|
}
|
|
return this.m_Rect;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600052C RID: 1324 RVA: 0x0001B390 File Offset: 0x00019790
|
|
protected override void OnEnable()
|
|
{
|
|
base.OnEnable();
|
|
this.SetDirty();
|
|
}
|
|
|
|
// Token: 0x0600052D RID: 1325 RVA: 0x0001B39F File Offset: 0x0001979F
|
|
protected override void OnDisable()
|
|
{
|
|
this.m_Tracker.Clear();
|
|
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
|
base.OnDisable();
|
|
}
|
|
|
|
// Token: 0x0600052E RID: 1326 RVA: 0x0001B3BE File Offset: 0x000197BE
|
|
protected override void OnRectTransformDimensionsChange()
|
|
{
|
|
this.SetDirty();
|
|
}
|
|
|
|
// Token: 0x0600052F RID: 1327 RVA: 0x0001B3C8 File Offset: 0x000197C8
|
|
private void HandleSelfFittingAlongAxis(int axis)
|
|
{
|
|
ContentSizeFitter.FitMode fitMode = ((axis != 0) ? this.verticalFit : this.horizontalFit);
|
|
if (fitMode == ContentSizeFitter.FitMode.Unconstrained)
|
|
{
|
|
this.m_Tracker.Add(this, this.rectTransform, DrivenTransformProperties.None);
|
|
}
|
|
else
|
|
{
|
|
this.m_Tracker.Add(this, this.rectTransform, (axis != 0) ? DrivenTransformProperties.SizeDeltaY : DrivenTransformProperties.SizeDeltaX);
|
|
if (fitMode == ContentSizeFitter.FitMode.MinSize)
|
|
{
|
|
this.rectTransform.SetSizeWithCurrentAnchors((RectTransform.Axis)axis, LayoutUtility.GetMinSize(this.m_Rect, axis));
|
|
}
|
|
else
|
|
{
|
|
this.rectTransform.SetSizeWithCurrentAnchors((RectTransform.Axis)axis, LayoutUtility.GetPreferredSize(this.m_Rect, axis));
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000530 RID: 1328 RVA: 0x0001B470 File Offset: 0x00019870
|
|
public virtual void SetLayoutHorizontal()
|
|
{
|
|
this.m_Tracker.Clear();
|
|
this.HandleSelfFittingAlongAxis(0);
|
|
}
|
|
|
|
// Token: 0x06000531 RID: 1329 RVA: 0x0001B485 File Offset: 0x00019885
|
|
public virtual void SetLayoutVertical()
|
|
{
|
|
this.HandleSelfFittingAlongAxis(1);
|
|
}
|
|
|
|
// Token: 0x06000532 RID: 1330 RVA: 0x0001B48F File Offset: 0x0001988F
|
|
protected void SetDirty()
|
|
{
|
|
if (this.IsActive())
|
|
{
|
|
LayoutRebuilder.MarkLayoutForRebuild(this.rectTransform);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0400027F RID: 639
|
|
[SerializeField]
|
|
protected ContentSizeFitter.FitMode m_HorizontalFit = ContentSizeFitter.FitMode.Unconstrained;
|
|
|
|
// Token: 0x04000280 RID: 640
|
|
[SerializeField]
|
|
protected ContentSizeFitter.FitMode m_VerticalFit = ContentSizeFitter.FitMode.Unconstrained;
|
|
|
|
// Token: 0x04000281 RID: 641
|
|
[NonSerialized]
|
|
private RectTransform m_Rect;
|
|
|
|
// Token: 0x04000282 RID: 642
|
|
private DrivenRectTransformTracker m_Tracker;
|
|
|
|
// Token: 0x0200008E RID: 142
|
|
public enum FitMode
|
|
{
|
|
// Token: 0x04000284 RID: 644
|
|
Unconstrained,
|
|
// Token: 0x04000285 RID: 645
|
|
MinSize,
|
|
// Token: 0x04000286 RID: 646
|
|
PreferredSize
|
|
}
|
|
}
|
|
}
|