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

A small vendored internal class representing one column in an ImGui table implementation. It stores column metadata and runtime state such as widths, flags, visibility, ordering and sort state.

// 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;

internal class ImGuiTableColumn
{
	public string Name;
	public int UserID;
	public ImGuiTableColumnFlags DeclFlags;
	public ImGuiTableColumnFlags Flags; // effective flags (with width policy resolved)
	public float InitWidthOrWeight;
	public float WidthRequest = -1f;
	public float StretchWeight = -1f;
	public float WidthGiven;
	public float ContentWidthPrev;
	public float ContentWidthThisFrame;
	public float MinX, MaxX, WorkMinX, WorkMaxX;
	public float ClipMinX, ClipMaxX;
	public float ItemWidth;
	public bool IsUserEnabled = true;
	public bool IsUserEnabledNextFrame = true;
	public bool IsEnabled = true;
	public bool IsVisibleX = true;
	public bool IsFrozen;
	public int DisplayOrder;
	public int DisplayIndex;
	public int SortOrder = -1;
	public ImGuiSortDirection SortDirection = ImGuiSortDirection.None;
	public bool IsStretch => (Flags & ImGuiTableColumnFlags.WidthStretch) != 0;
}