33 absoluteChanged =
false;
41 private void propagateChangedDown()
47 child.Layout.propagateChangedDown();
50 protected bool changed =
true;
public bool Changed
58 if (Host.Parent !=
null) Host.Parent.Layout.propagateChangedDown();
59 else propagateChangedDown();
64 private void propagateDecorChangedDown()
67 foreach (CUIComponent child
in Host.Children)
69 child.Layout.propagateDecorChangedDown();
84 if (Host.Parent !=
null)
86 Host.Parent.Layout.changed =
true;
87 Host.Parent.Layout.propagateDecorChangedDown();
93 public bool ChildChanged
97 if (value) propagateChangedDown();
101 private void propagateAbsoluteChangedUp()
103 absoluteChanged =
true;
104 Host.Parent?.Layout.propagateAbsoluteChangedUp();
106 protected bool absoluteChanged =
true;
public bool AbsoluteChanged
108 get => absoluteChanged;
111 if (!value) absoluteChanged =
false;
112 if (value && Host.Parent !=
null) Host.Parent.Layout.absoluteChanged =
true;
116 protected bool decorChanged =
true;
public bool DecorChanged
121 decorChanged = value;
125 internal virtual void Update()
131 foreach (CUIComponent c
in Host.Children)
133 c.CulledOut = !c.UnCullable && !c.Real.Intersect(Host.
Real);
141 internal virtual void UpdateDecor()
145 Host.UpdatePseudoChildren();
146 DecorChanged =
false;
150 internal virtual void ResizeToContent()
157 AbsoluteChanged =
false;
160 public CUILayout() { }
161 public CUILayout(CUIComponent host)
166 public override string ToString() => this.GetType().Name;
167 public static CUILayout Parse(
string raw)
172 if (CUIReflection.CUILayoutTypes.ContainsKey(raw))
174 return (CUILayout)Activator.CreateInstance(CUIReflection.CUILayoutTypes[raw]);
177 return new CUILayoutSimple();