Files
2026-06-04 11:42:34 +02:00

680 lines
18 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace UnityEngine.CSSLayout
{
// Token: 0x02000513 RID: 1299
internal class CSSNode : IEnumerable<CSSNode>, IEnumerable
{
// Token: 0x06003C6B RID: 15467 RVA: 0x0006ABBC File Offset: 0x00068DBC
public CSSNode()
{
CSSLogger.Initialize();
this._cssNode = Native.CSSNodeNew();
if (this._cssNode == IntPtr.Zero)
{
throw new InvalidOperationException("Failed to allocate native memory");
}
}
// Token: 0x06003C6C RID: 15468 RVA: 0x0006ABF8 File Offset: 0x00068DF8
~CSSNode()
{
Native.CSSNodeFree(this._cssNode);
}
// Token: 0x06003C6D RID: 15469 RVA: 0x0006AC30 File Offset: 0x00068E30
public void Reset()
{
this._measureFunction = null;
this._data = null;
Native.CSSNodeReset(this._cssNode);
}
// Token: 0x17000D99 RID: 3481
// (get) Token: 0x06003C6E RID: 15470 RVA: 0x0006AC4C File Offset: 0x00068E4C
public bool IsDirty
{
get
{
return Native.CSSNodeIsDirty(this._cssNode);
}
}
// Token: 0x06003C6F RID: 15471 RVA: 0x0006AC6C File Offset: 0x00068E6C
public virtual void MarkDirty()
{
Native.CSSNodeMarkDirty(this._cssNode);
}
// Token: 0x17000D9A RID: 3482
// (get) Token: 0x06003C70 RID: 15472 RVA: 0x0006AC7C File Offset: 0x00068E7C
public bool HasNewLayout
{
get
{
return Native.CSSNodeGetHasNewLayout(this._cssNode);
}
}
// Token: 0x06003C71 RID: 15473 RVA: 0x0006AC9C File Offset: 0x00068E9C
public void MarkHasNewLayout()
{
Native.CSSNodeSetHasNewLayout(this._cssNode, true);
}
// Token: 0x17000D9B RID: 3483
// (get) Token: 0x06003C72 RID: 15474 RVA: 0x0006ACAC File Offset: 0x00068EAC
public CSSNode Parent
{
get
{
return (this._parent == null) ? null : (this._parent.Target as CSSNode);
}
}
// Token: 0x17000D9C RID: 3484
// (get) Token: 0x06003C73 RID: 15475 RVA: 0x0006ACE4 File Offset: 0x00068EE4
public bool IsMeasureDefined
{
get
{
return this._measureFunction != null;
}
}
// Token: 0x06003C74 RID: 15476 RVA: 0x0006AD08 File Offset: 0x00068F08
public void CopyStyle(CSSNode srcNode)
{
Native.CSSNodeCopyStyle(this._cssNode, srcNode._cssNode);
}
// Token: 0x17000D9D RID: 3485
// (get) Token: 0x06003C75 RID: 15477 RVA: 0x0006AD1C File Offset: 0x00068F1C
// (set) Token: 0x06003C76 RID: 15478 RVA: 0x0006AD3C File Offset: 0x00068F3C
public CSSDirection StyleDirection
{
get
{
return Native.CSSNodeStyleGetDirection(this._cssNode);
}
set
{
Native.CSSNodeStyleSetDirection(this._cssNode, value);
}
}
// Token: 0x17000D9E RID: 3486
// (get) Token: 0x06003C77 RID: 15479 RVA: 0x0006AD4C File Offset: 0x00068F4C
// (set) Token: 0x06003C78 RID: 15480 RVA: 0x0006AD6C File Offset: 0x00068F6C
public CSSFlexDirection FlexDirection
{
get
{
return Native.CSSNodeStyleGetFlexDirection(this._cssNode);
}
set
{
Native.CSSNodeStyleSetFlexDirection(this._cssNode, value);
}
}
// Token: 0x17000D9F RID: 3487
// (get) Token: 0x06003C79 RID: 15481 RVA: 0x0006AD7C File Offset: 0x00068F7C
// (set) Token: 0x06003C7A RID: 15482 RVA: 0x0006AD9C File Offset: 0x00068F9C
public CSSJustify JustifyContent
{
get
{
return Native.CSSNodeStyleGetJustifyContent(this._cssNode);
}
set
{
Native.CSSNodeStyleSetJustifyContent(this._cssNode, value);
}
}
// Token: 0x17000DA0 RID: 3488
// (get) Token: 0x06003C7B RID: 15483 RVA: 0x0006ADAC File Offset: 0x00068FAC
// (set) Token: 0x06003C7C RID: 15484 RVA: 0x0006ADCC File Offset: 0x00068FCC
public CSSAlign AlignItems
{
get
{
return Native.CSSNodeStyleGetAlignItems(this._cssNode);
}
set
{
Native.CSSNodeStyleSetAlignItems(this._cssNode, value);
}
}
// Token: 0x17000DA1 RID: 3489
// (get) Token: 0x06003C7D RID: 15485 RVA: 0x0006ADDC File Offset: 0x00068FDC
// (set) Token: 0x06003C7E RID: 15486 RVA: 0x0006ADFC File Offset: 0x00068FFC
public CSSAlign AlignSelf
{
get
{
return Native.CSSNodeStyleGetAlignSelf(this._cssNode);
}
set
{
Native.CSSNodeStyleSetAlignSelf(this._cssNode, value);
}
}
// Token: 0x17000DA2 RID: 3490
// (get) Token: 0x06003C7F RID: 15487 RVA: 0x0006AE0C File Offset: 0x0006900C
// (set) Token: 0x06003C80 RID: 15488 RVA: 0x0006AE2C File Offset: 0x0006902C
public CSSAlign AlignContent
{
get
{
return Native.CSSNodeStyleGetAlignContent(this._cssNode);
}
set
{
Native.CSSNodeStyleSetAlignContent(this._cssNode, value);
}
}
// Token: 0x17000DA3 RID: 3491
// (get) Token: 0x06003C81 RID: 15489 RVA: 0x0006AE3C File Offset: 0x0006903C
// (set) Token: 0x06003C82 RID: 15490 RVA: 0x0006AE5C File Offset: 0x0006905C
public CSSPositionType PositionType
{
get
{
return Native.CSSNodeStyleGetPositionType(this._cssNode);
}
set
{
Native.CSSNodeStyleSetPositionType(this._cssNode, value);
}
}
// Token: 0x17000DA4 RID: 3492
// (get) Token: 0x06003C83 RID: 15491 RVA: 0x0006AE6C File Offset: 0x0006906C
// (set) Token: 0x06003C84 RID: 15492 RVA: 0x0006AE8C File Offset: 0x0006908C
public CSSWrap Wrap
{
get
{
return Native.CSSNodeStyleGetFlexWrap(this._cssNode);
}
set
{
Native.CSSNodeStyleSetFlexWrap(this._cssNode, value);
}
}
// Token: 0x17000DA5 RID: 3493
// (set) Token: 0x06003C85 RID: 15493 RVA: 0x0006AE9C File Offset: 0x0006909C
public float Flex
{
set
{
Native.CSSNodeStyleSetFlex(this._cssNode, value);
}
}
// Token: 0x17000DA6 RID: 3494
// (get) Token: 0x06003C86 RID: 15494 RVA: 0x0006AEAC File Offset: 0x000690AC
// (set) Token: 0x06003C87 RID: 15495 RVA: 0x0006AECC File Offset: 0x000690CC
public float FlexGrow
{
get
{
return Native.CSSNodeStyleGetFlexGrow(this._cssNode);
}
set
{
Native.CSSNodeStyleSetFlexGrow(this._cssNode, value);
}
}
// Token: 0x17000DA7 RID: 3495
// (get) Token: 0x06003C88 RID: 15496 RVA: 0x0006AEDC File Offset: 0x000690DC
// (set) Token: 0x06003C89 RID: 15497 RVA: 0x0006AEFC File Offset: 0x000690FC
public float FlexShrink
{
get
{
return Native.CSSNodeStyleGetFlexShrink(this._cssNode);
}
set
{
Native.CSSNodeStyleSetFlexShrink(this._cssNode, value);
}
}
// Token: 0x17000DA8 RID: 3496
// (get) Token: 0x06003C8A RID: 15498 RVA: 0x0006AF0C File Offset: 0x0006910C
// (set) Token: 0x06003C8B RID: 15499 RVA: 0x0006AF2C File Offset: 0x0006912C
public float FlexBasis
{
get
{
return Native.CSSNodeStyleGetFlexBasis(this._cssNode);
}
set
{
Native.CSSNodeStyleSetFlexBasis(this._cssNode, value);
}
}
// Token: 0x06003C8C RID: 15500 RVA: 0x0006AF3C File Offset: 0x0006913C
public float GetMargin(CSSEdge edge)
{
return Native.CSSNodeStyleGetMargin(this._cssNode, edge);
}
// Token: 0x06003C8D RID: 15501 RVA: 0x0006AF60 File Offset: 0x00069160
public void SetMargin(CSSEdge edge, float value)
{
Native.CSSNodeStyleSetMargin(this._cssNode, edge, value);
}
// Token: 0x06003C8E RID: 15502 RVA: 0x0006AF70 File Offset: 0x00069170
public float GetPadding(CSSEdge edge)
{
return Native.CSSNodeStyleGetPadding(this._cssNode, edge);
}
// Token: 0x06003C8F RID: 15503 RVA: 0x0006AF94 File Offset: 0x00069194
public void SetPadding(CSSEdge edge, float padding)
{
Native.CSSNodeStyleSetPadding(this._cssNode, edge, padding);
}
// Token: 0x06003C90 RID: 15504 RVA: 0x0006AFA4 File Offset: 0x000691A4
public float GetBorder(CSSEdge edge)
{
return Native.CSSNodeStyleGetBorder(this._cssNode, edge);
}
// Token: 0x06003C91 RID: 15505 RVA: 0x0006AFC8 File Offset: 0x000691C8
public void SetBorder(CSSEdge edge, float border)
{
Native.CSSNodeStyleSetBorder(this._cssNode, edge, border);
}
// Token: 0x06003C92 RID: 15506 RVA: 0x0006AFD8 File Offset: 0x000691D8
public float GetPosition(CSSEdge edge)
{
return Native.CSSNodeStyleGetPosition(this._cssNode, edge);
}
// Token: 0x06003C93 RID: 15507 RVA: 0x0006AFFC File Offset: 0x000691FC
public void SetPosition(CSSEdge edge, float position)
{
Native.CSSNodeStyleSetPosition(this._cssNode, edge, position);
}
// Token: 0x17000DA9 RID: 3497
// (get) Token: 0x06003C94 RID: 15508 RVA: 0x0006B00C File Offset: 0x0006920C
// (set) Token: 0x06003C95 RID: 15509 RVA: 0x0006B02C File Offset: 0x0006922C
public float Width
{
get
{
return Native.CSSNodeStyleGetWidth(this._cssNode);
}
set
{
Native.CSSNodeStyleSetWidth(this._cssNode, value);
}
}
// Token: 0x17000DAA RID: 3498
// (get) Token: 0x06003C96 RID: 15510 RVA: 0x0006B03C File Offset: 0x0006923C
// (set) Token: 0x06003C97 RID: 15511 RVA: 0x0006B05C File Offset: 0x0006925C
public float Height
{
get
{
return Native.CSSNodeStyleGetHeight(this._cssNode);
}
set
{
Native.CSSNodeStyleSetHeight(this._cssNode, value);
}
}
// Token: 0x17000DAB RID: 3499
// (get) Token: 0x06003C98 RID: 15512 RVA: 0x0006B06C File Offset: 0x0006926C
// (set) Token: 0x06003C99 RID: 15513 RVA: 0x0006B08C File Offset: 0x0006928C
public float MaxWidth
{
get
{
return Native.CSSNodeStyleGetMaxWidth(this._cssNode);
}
set
{
Native.CSSNodeStyleSetMaxWidth(this._cssNode, value);
}
}
// Token: 0x17000DAC RID: 3500
// (get) Token: 0x06003C9A RID: 15514 RVA: 0x0006B09C File Offset: 0x0006929C
// (set) Token: 0x06003C9B RID: 15515 RVA: 0x0006B0BC File Offset: 0x000692BC
public float MaxHeight
{
get
{
return Native.CSSNodeStyleGetMaxHeight(this._cssNode);
}
set
{
Native.CSSNodeStyleSetMaxHeight(this._cssNode, value);
}
}
// Token: 0x17000DAD RID: 3501
// (get) Token: 0x06003C9C RID: 15516 RVA: 0x0006B0CC File Offset: 0x000692CC
// (set) Token: 0x06003C9D RID: 15517 RVA: 0x0006B0EC File Offset: 0x000692EC
public float MinWidth
{
get
{
return Native.CSSNodeStyleGetMinWidth(this._cssNode);
}
set
{
Native.CSSNodeStyleSetMinWidth(this._cssNode, value);
}
}
// Token: 0x17000DAE RID: 3502
// (get) Token: 0x06003C9E RID: 15518 RVA: 0x0006B0FC File Offset: 0x000692FC
// (set) Token: 0x06003C9F RID: 15519 RVA: 0x0006B11C File Offset: 0x0006931C
public float MinHeight
{
get
{
return Native.CSSNodeStyleGetMinHeight(this._cssNode);
}
set
{
Native.CSSNodeStyleSetMinHeight(this._cssNode, value);
}
}
// Token: 0x17000DAF RID: 3503
// (get) Token: 0x06003CA0 RID: 15520 RVA: 0x0006B12C File Offset: 0x0006932C
// (set) Token: 0x06003CA1 RID: 15521 RVA: 0x0006B14C File Offset: 0x0006934C
public float AspectRatio
{
get
{
return Native.CSSNodeStyleGetAspectRatio(this._cssNode);
}
set
{
Native.CSSNodeStyleSetAspectRatio(this._cssNode, value);
}
}
// Token: 0x17000DB0 RID: 3504
// (get) Token: 0x06003CA2 RID: 15522 RVA: 0x0006B15C File Offset: 0x0006935C
public float LayoutX
{
get
{
return Native.CSSNodeLayoutGetLeft(this._cssNode);
}
}
// Token: 0x17000DB1 RID: 3505
// (get) Token: 0x06003CA3 RID: 15523 RVA: 0x0006B17C File Offset: 0x0006937C
public float LayoutY
{
get
{
return Native.CSSNodeLayoutGetTop(this._cssNode);
}
}
// Token: 0x17000DB2 RID: 3506
// (get) Token: 0x06003CA4 RID: 15524 RVA: 0x0006B19C File Offset: 0x0006939C
public float LayoutWidth
{
get
{
return Native.CSSNodeLayoutGetWidth(this._cssNode);
}
}
// Token: 0x17000DB3 RID: 3507
// (get) Token: 0x06003CA5 RID: 15525 RVA: 0x0006B1BC File Offset: 0x000693BC
public float LayoutHeight
{
get
{
return Native.CSSNodeLayoutGetHeight(this._cssNode);
}
}
// Token: 0x17000DB4 RID: 3508
// (get) Token: 0x06003CA6 RID: 15526 RVA: 0x0006B1DC File Offset: 0x000693DC
public CSSDirection LayoutDirection
{
get
{
return Native.CSSNodeLayoutGetDirection(this._cssNode);
}
}
// Token: 0x17000DB5 RID: 3509
// (get) Token: 0x06003CA7 RID: 15527 RVA: 0x0006B1FC File Offset: 0x000693FC
// (set) Token: 0x06003CA8 RID: 15528 RVA: 0x0006B21C File Offset: 0x0006941C
public CSSOverflow Overflow
{
get
{
return Native.CSSNodeStyleGetOverflow(this._cssNode);
}
set
{
Native.CSSNodeStyleSetOverflow(this._cssNode, value);
}
}
// Token: 0x17000DB6 RID: 3510
// (get) Token: 0x06003CA9 RID: 15529 RVA: 0x0006B22C File Offset: 0x0006942C
// (set) Token: 0x06003CAA RID: 15530 RVA: 0x0006B248 File Offset: 0x00069448
public object Data
{
get
{
return this._data;
}
set
{
this._data = value;
}
}
// Token: 0x17000DB7 RID: 3511
public CSSNode this[int index]
{
get
{
return this._children[index];
}
}
// Token: 0x17000DB8 RID: 3512
// (get) Token: 0x06003CAC RID: 15532 RVA: 0x0006B278 File Offset: 0x00069478
public int Count
{
get
{
return (this._children == null) ? 0 : this._children.Count;
}
}
// Token: 0x06003CAD RID: 15533 RVA: 0x0006B2AC File Offset: 0x000694AC
public void MarkLayoutSeen()
{
Native.CSSNodeSetHasNewLayout(this._cssNode, false);
}
// Token: 0x06003CAE RID: 15534 RVA: 0x0006B2BC File Offset: 0x000694BC
public bool ValuesEqual(float f1, float f2)
{
bool flag;
if (float.IsNaN(f1) || float.IsNaN(f2))
{
flag = float.IsNaN(f1) && float.IsNaN(f2);
}
else
{
flag = Math.Abs(f2 - f1) < float.Epsilon;
}
return flag;
}
// Token: 0x06003CAF RID: 15535 RVA: 0x0006B314 File Offset: 0x00069514
public void Insert(int index, CSSNode node)
{
if (this._children == null)
{
this._children = new List<CSSNode>(4);
}
this._children.Insert(index, node);
node._parent = new WeakReference(this);
Native.CSSNodeInsertChild(this._cssNode, node._cssNode, (uint)index);
}
// Token: 0x06003CB0 RID: 15536 RVA: 0x0006B368 File Offset: 0x00069568
public void RemoveAt(int index)
{
CSSNode cssnode = this._children[index];
cssnode._parent = null;
this._children.RemoveAt(index);
Native.CSSNodeRemoveChild(this._cssNode, cssnode._cssNode);
}
// Token: 0x06003CB1 RID: 15537 RVA: 0x0006B3A8 File Offset: 0x000695A8
public void Clear()
{
if (this._children != null)
{
while (this._children.Count > 0)
{
this.RemoveAt(this._children.Count - 1);
}
}
}
// Token: 0x06003CB2 RID: 15538 RVA: 0x0006B3E4 File Offset: 0x000695E4
public int IndexOf(CSSNode node)
{
return (this._children == null) ? (-1) : this._children.IndexOf(node);
}
// Token: 0x06003CB3 RID: 15539 RVA: 0x0006B418 File Offset: 0x00069618
public void SetMeasureFunction(MeasureFunction measureFunction)
{
this._measureFunction = measureFunction;
this._cssMeasureFunc = ((measureFunction == null) ? null : new CSSMeasureFunc(this.MeasureInternal));
Native.CSSNodeSetMeasureFunc(this._cssNode, this._cssMeasureFunc);
}
// Token: 0x06003CB4 RID: 15540 RVA: 0x0006B454 File Offset: 0x00069654
public void CalculateLayout()
{
Native.CSSNodeCalculateLayout(this._cssNode, float.NaN, float.NaN, Native.CSSNodeStyleGetDirection(this._cssNode));
}
// Token: 0x06003CB5 RID: 15541 RVA: 0x0006B478 File Offset: 0x00069678
private CSSSize MeasureInternal(IntPtr node, float width, CSSMeasureMode widthMode, float height, CSSMeasureMode heightMode)
{
if (this._measureFunction == null)
{
throw new InvalidOperationException("Measure function is not defined.");
}
long num = this._measureFunction(this, width, widthMode, height, heightMode);
return new CSSSize
{
width = (float)MeasureOutput.GetWidth(num),
height = (float)MeasureOutput.GetHeight(num)
};
}
// Token: 0x06003CB6 RID: 15542 RVA: 0x0006B4DC File Offset: 0x000696DC
public string Print()
{
return this.Print((CSSPrintOptions)7);
}
// Token: 0x06003CB7 RID: 15543 RVA: 0x0006B4F8 File Offset: 0x000696F8
public string Print(CSSPrintOptions options)
{
StringBuilder sb = new StringBuilder();
CSSLogger.Func logger = CSSLogger.Logger;
CSSLogger.Logger = delegate(CSSLogLevel level, string message)
{
sb.Append(message);
};
Native.CSSNodePrint(this._cssNode, options);
CSSLogger.Logger = logger;
return sb.ToString();
}
// Token: 0x06003CB8 RID: 15544 RVA: 0x0006B554 File Offset: 0x00069754
public IEnumerator<CSSNode> GetEnumerator()
{
return (this._children == null) ? Enumerable.Empty<CSSNode>().GetEnumerator() : ((IEnumerable<CSSNode>)this._children).GetEnumerator();
}
// Token: 0x06003CB9 RID: 15545 RVA: 0x0006B590 File Offset: 0x00069790
IEnumerator IEnumerable.GetEnumerator()
{
return (this._children == null) ? Enumerable.Empty<CSSNode>().GetEnumerator() : ((IEnumerable<CSSNode>)this._children).GetEnumerator();
}
// Token: 0x06003CBA RID: 15546 RVA: 0x0006B5CC File Offset: 0x000697CC
public static int GetInstanceCount()
{
return Native.CSSNodeGetInstanceCount();
}
// Token: 0x06003CBB RID: 15547 RVA: 0x0006B5E8 File Offset: 0x000697E8
public static void SetExperimentalFeatureEnabled(CSSExperimentalFeature feature, bool enabled)
{
Native.CSSLayoutSetExperimentalFeatureEnabled(feature, enabled);
}
// Token: 0x06003CBC RID: 15548 RVA: 0x0006B5F4 File Offset: 0x000697F4
public static bool IsExperimentalFeatureEnabled(CSSExperimentalFeature feature)
{
return Native.CSSLayoutIsExperimentalFeatureEnabled(feature);
}
// Token: 0x040012C6 RID: 4806
private IntPtr _cssNode;
// Token: 0x040012C7 RID: 4807
private WeakReference _parent;
// Token: 0x040012C8 RID: 4808
private List<CSSNode> _children;
// Token: 0x040012C9 RID: 4809
private MeasureFunction _measureFunction;
// Token: 0x040012CA RID: 4810
private CSSMeasureFunc _cssMeasureFunc;
// Token: 0x040012CB RID: 4811
private object _data;
}
}