#define IM_COL32_DISABLE IM_COL32(0,0,0,1) // Special sentinel code
#define IMGUI_TABLE_MAX_COLUMNS 64 // sizeof(ImU64) * 8. This is solely because we frequently encode columns set in a ImU64.
// [Internal] sizeof() ~ 96
// [Internal] sizeof() ~ 100
structImGuiTableColumn
{
ImRectClipRect;// Clipping rectangle for the column
ImGuiIDUserID;// Optional, value passed to TableSetupColumn()
ImGuiTableColumnFlagsFlagsIn;// Flags as input by user. See ImGuiTableColumnFlags_
ImGuiTableColumnFlagsFlagsIn;// Flags as they were provided by user. See ImGuiTableColumnFlags_
ImGuiTableColumnFlagsFlags;// Effective flags. See ImGuiTableColumnFlags_
floatResizeWeight;// ~1.0f. Master width data when (Flags & _WidthStretch)
floatMinX;// Absolute positions
@ -1836,19 +1837,19 @@ struct ImGuiTableColumn
floatWidthGiven;// == (MaxX - MinX). FIXME-TABLE: Store all persistent width in multiple of FontSize?
floatStartXRows;// Start position for the frame, currently ~(MinX + CellPaddingX)
floatStartXHeaders;
ImS16ContentWidthRowsFrozen;// Contents width. Because freezing is non correlated from headers we need all 4 variants (ImDrawCmd merging uses different data than alignment code).
ImS16ContentWidthRowsUnfrozen;// (encoded as ImS16 because we actually rarely use those width)
floatContentMaxPosRowsFrozen;// Submitted contents absolute maximum position, from which we can infer width.
floatContentMaxPosRowsUnfrozen;// (kept as float because we need to manipulate those between each cell change)
floatContentMaxPosHeadersUsed;
floatContentMaxPosHeadersDesired;
ImRectClipRect;
ImS16NameOffset;// Offset into parent ColumnsName[]
ImS16ContentWidthRowsFrozen;// Contents width. Because row freezing is not correlated with headers/not-headers we need all 4 variants (ImDrawCmd merging uses different data than alignment code).
ImS16ContentWidthRowsUnfrozen;// (encoded as ImS16 because we actually rarely use those width)
ImS16NameOffset;// Offset into parent ColumnsNames[]
boolIsActive;// Is the column not marked Hidden by the user (regardless of clipping). We're not calling this "Visible" here because visibility also depends on clipping.
boolNextIsActive;
boolIsClipped;// Set when not overlapping the host window clipping rectangle. We don't use the opposite "!Visible" name because Clipped can be altered by events.
boolSkipItems;
ImS8IndexDisplayOrder;// Index within DisplayOrder[] (column may be reordered by users)
ImS8IndexWithinActiveSet;// Index within active set (<= IndexOrder)
ImS8DrawChannelCurrent;// Index within DrawSplitter.Channels[]