public override void AddToGUIUpdateList(bool ignoreChildren = false, int order = 0) { if (!Visible) { return; } if (childrenNeedsRecalculation) { foreach (GUIComponent child in Content.Children) { ClampChildMouseRects(child); } RepositionChildren(); childrenNeedsRecalculation = false; } UpdateOrder = order; GUI.AddToUpdateList(this); if (ignoreChildren) { OnAddedToGUIUpdateList?.Invoke(this); return; } Content.AddToGUIUpdateList(true, order); int lastVisible = 0; for (int i = 0; i < Content.CountChildren; i++) { var child = Content.GetChild(i); if (!child.Visible) { continue; } if (!IsChildInsideFrame(child)) { if (lastVisible > 0) { break; } continue; } lastVisible = i; child.AddToGUIUpdateList(false, order); } if (ScrollBar.Enabled) { ScrollBar.AddToGUIUpdateList(false, order); } OnAddedToGUIUpdateList?.Invoke(this); }
public override void AddToGUIUpdateList(bool ignoreChildren = false, int order = 0) { if (!Visible) { return; } if (!ignoreChildren) { foreach (GUIComponent child in Children) { if (child == Content || child == ScrollBar) { continue; } child.AddToGUIUpdateList(ignoreChildren, order); } } foreach (GUIComponent child in Content.Children) { if (!childVisible.ContainsKey(child)) { childVisible[child] = child.Visible; } if (childVisible[child] != child.Visible) { childVisible[child] = child.Visible; childrenNeedsRecalculation = true; scrollBarNeedsRecalculation = true; break; } } if (childrenNeedsRecalculation) { RecalculateChildren(); childVisible.Clear(); } UpdateOrder = order; GUI.AddToUpdateList(this); if (ignoreChildren) { OnAddedToGUIUpdateList?.Invoke(this); return; } Content.AddToGUIUpdateList(true, order); int lastVisible = 0; for (int i = 0; i < Content.CountChildren; i++) { var child = Content.GetChild(i); if (!child.Visible) { continue; } if (!IsChildInsideFrame(child)) { if (lastVisible > 0) { break; } continue; } lastVisible = i; child.AddToGUIUpdateList(false, order); } if (ScrollBar.Enabled) { ScrollBar.AddToGUIUpdateList(false, order); } OnAddedToGUIUpdateList?.Invoke(this); }