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