Code/SboxSuperuser/Engine/Vendor/ImGui/ImGuiWindowTempData.cs

Transient per-window layout state for the vendored ImGui implementation. Stores cursor positions, line sizes, layout types, stacks, child windows, menu and column state, and temporary storage used each frame.

Native Interop
// Vendored from zeljkovranjes/sbox-imgui; see LICENSE and PROVENANCE.md in this folder.
using Sandbox;
#pragma warning disable CS0649 // Upstream reserves fields for optional widgets and features.
namespace SboxSuperuser.Engine.Vendor.ImGui;

/// <summary>
/// Transient per-window layout state, reset at the beginning of each frame.
/// </summary>
internal class ImGuiWindowTempData
{
	public Vector2 CursorPos;
	public Vector2 CursorPosPrevLine;
	public Vector2 CursorStartPos;
	public Vector2 CursorMaxPos;
	public Vector2 IdealMaxPos;
	public Vector2 CurrLineSize;
	public Vector2 PrevLineSize;
	public float CurrLineTextBaseOffset;
	public float PrevLineTextBaseOffset;
	public bool IsSameLine;
	public bool IsSetPos;
	public float Indent;
	public float ColumnsOffset;
	public float GroupOffset;
	public Vector2 CursorStartPosLossyness;

	public ImGuiLayoutType LayoutType;
	public ImGuiLayoutType ParentLayoutType;
	public int TreeDepth;
	public uint TreeHasStackDataDepthMask;
	public readonly List<ImGuiWindow> ChildWindows = new();
	public int MenuBarAppending;
	public Vector2 MenuBarOffset;
	public ImGuiMenuColumns MenuColumns = new();
	public float ItemWidth;
	public float TextWrapPos;
	public readonly List<float> ItemWidthStack = new();
	public readonly List<float> TextWrapPosStack = new();
	public ImGuiOldColumns CurrentColumns;
	public int CurrentTableIdx = -1;
	public ImGuiStorage StateStorage;
}