elseif(rect_type==TRT_ColumnsContentHeadersUsed){ImGuiTableColumn*c=&table->Columns[n];returnImRect(c->MinX,table->InnerClipRect.Min.y,c->MinX +c->ContentWidthHeadersUsed,table->InnerClipRect.Min.y+table->LastFirstRowHeight);}// Note: y1/y2 not always accurate
elseif(rect_type==TRT_ColumnsContentHeadersUsed){ImGuiTableColumn*c=&table->Columns[n];returnImRect(c->ContentMinX,table->InnerClipRect.Min.y,c->ContentMaxXHeadersUsed,table->InnerClipRect.Min.y+table->LastFirstRowHeight);}// Note: y1/y2 not always accurate
#define IMGUI_TABLE_MAX_COLUMNS 64 // sizeof(ImU64) * 8. This is solely because we frequently encode columns set in a ImU64.
#define IMGUI_TABLE_MAX_COLUMNS 64 // sizeof(ImU64) * 8. This is solely because we frequently encode columns set in a ImU64.
#define IMGUI_TABLE_MAX_DRAW_CHANNELS (2 + 64 * 2) // See TableUpdateDrawChannels()
#define IMGUI_TABLE_MAX_DRAW_CHANNELS (2 + 64 * 2) // See TableUpdateDrawChannels()
// [Internal] sizeof() ~ 108
// [Internal] sizeof() ~ 100
// We use the terminology "Visible" to refer to a column that is not Hidden by user or settings. However it may still be out of view and clipped (see IsClipped).
// We use the terminology "Visible" to refer to a column that is not Hidden by user or settings. However it may still be out of view and clipped (see IsClipped).
structImGuiTableColumn
structImGuiTableColumn
{
{
@ -1902,15 +1902,11 @@ struct ImGuiTableColumn
floatWidthAuto;// Automatic width
floatWidthAuto;// Automatic width
floatWidthRequest;// Master width absolute value when !(Flags & _WidthStretch). When Stretch this is derived every frame from StretchWeight in TableUpdateLayout()
floatWidthRequest;// Master width absolute value when !(Flags & _WidthStretch). When Stretch this is derived every frame from StretchWeight in TableUpdateLayout()
floatWidthGiven;// Final/actual width visible == (MaxX - MinX), locked in TableUpdateLayout(). May be > WidthRequest to honor minimum width, may be < WidthRequest to honor shrinking columns down in tight space.
floatWidthGiven;// Final/actual width visible == (MaxX - MinX), locked in TableUpdateLayout(). May be > WidthRequest to honor minimum width, may be < WidthRequest to honor shrinking columns down in tight space.
floatStartX;// Start position for the frame, currently ~(MinX + CellPaddingX)
floatContentMinX;// Start position for the frame, currently ~(MinX + CellPaddingX)
floatContentMaxPosFrozen;// Submitted contents absolute maximum position, from which we can infer width. Kept as float because we need to manipulate those between each cell change.
floatContentMaxXFrozen;// Contents maximum position for frozen rows (apart from headers), from which we can infer content width.
floatContentMaxPosUnfrozen;
floatContentMaxXUnfrozen;
floatContentMaxPosHeadersUsed;
floatContentMaxXHeadersUsed;// Contents maximum position for headers rows (regardless of freezing). TableHeader() automatically softclip itself + report ideal desired size, to avoid creating extraneous draw calls
floatContentMaxPosHeadersIdeal;
floatContentMaxXHeadersIdeal;
ImS16ContentWidthFrozen;// Contents width for frozen rows (apart from headers). Encoded as ImS16 because we actually rarely use those width.
ImS16ContentWidthUnfrozen;
ImS16ContentWidthHeadersUsed;// Contents width for headers rows (regardless of freezing). TableHeader() automatically softclip itself + report ideal desired size, to avoid creating extraneous draw calls
ImS16ContentWidthHeadersIdeal;
ImS16NameOffset;// Offset into parent ColumnsNames[]
ImS16NameOffset;// Offset into parent ColumnsNames[]
boolIsVisible;// Is the column not marked Hidden by the user? (could be clipped by scrolling, etc).
boolIsVisible;// Is the column not marked Hidden by the user? (could be clipped by scrolling, etc).