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, 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(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 GetEnumerator() { return (this._children == null) ? Enumerable.Empty().GetEnumerator() : ((IEnumerable)this._children).GetEnumerator(); } // Token: 0x06003CB9 RID: 15545 RVA: 0x0006B590 File Offset: 0x00069790 IEnumerator IEnumerable.GetEnumerator() { return (this._children == null) ? Enumerable.Empty().GetEnumerator() : ((IEnumerable)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 _children; // Token: 0x040012C9 RID: 4809 private MeasureFunction _measureFunction; // Token: 0x040012CA RID: 4810 private CSSMeasureFunc _cssMeasureFunc; // Token: 0x040012CB RID: 4811 private object _data; } }