enum{TRT_OuterRect,TRT_WorkRect,TRT_HostClipRect,TRT_InnerClipRect,TRT_BackgroundClipRect,TRT_ColumnsRect,TRT_ColumnsClipRect,TRT_ColumnsContentHeadersUsed,TRT_ColumnsContentHeadersIdeal,TRT_ColumnsContentFrozen,TRT_ColumnsContentUnfrozen,TRT_Count};// Tables Rect Type
enum{TRT_OuterRect,TRT_InnerRect,TRT_WorkRect,TRT_HostClipRect,TRT_InnerClipRect,TRT_BackgroundClipRect,TRT_ColumnsRect,TRT_ColumnsClipRect,TRT_ColumnsContentHeadersUsed,TRT_ColumnsContentHeadersIdeal,TRT_ColumnsContentFrozen,TRT_ColumnsContentUnfrozen,TRT_Count};// Tables Rect Type
floatResizeLockMinContentsX2;// Lock minimum contents width while resizing down in order to not create feedback loops. But we allow growing the table.
floatRefScale;// Reference scale to be able to rescale columns on font/dpi changes.
ImRectOuterRect;// Note: OuterRect.Max.y is often FLT_MAX until EndTable(), unless a height has been specified in BeginTable().
ImRectOuterRect;// Note: for non-scrolling table, OuterRect.Max.y is often FLT_MAX until EndTable(), unless a height has been specified in BeginTable().
ImRectInnerRect;// InnerRect but without decoration. As with OuterRect, for non-scrolling tables, InnerRect.Max.y is
ImRectWorkRect;
ImRectInnerClipRect;
ImRectBgClipRect;// We use this to cpu-clip cell background color fill
@ -2022,7 +2023,7 @@ struct ImGuiTable
ImRectHostClipRect;// This is used to check if we can eventually merge our columns draw calls into the current draw call of the current window.
ImRectHostBackupWorkRect;// Backup of InnerWindow->WorkRect at the end of BeginTable()
ImRectHostBackupParentWorkRect;// Backup of InnerWindow->ParentWorkRect at the end of BeginTable()
ImRectHostBackupClipRect;// Backup of InnerWindow->ClipRect during PushTableBackground()/PopTableBackground()
ImRectHostBackupInnerClipRect;// Backup of InnerWindow->ClipRect during PushTableBackground()/PopTableBackground()
ImVec2HostBackupPrevLineSize;// Backup of InnerWindow->DC.PrevLineSize at the end of BeginTable()
ImVec2HostBackupCurrLineSize;// Backup of InnerWindow->DC.CurrLineSize at the end of BeginTable()
ImVec2HostBackupCursorMaxPos;// Backup of InnerWindow->DC.CursorMaxPos at the end of BeginTable()
@ -2058,8 +2059,8 @@ struct ImGuiTable
ImGuiTableColumnIdxFreezeColumnsCount;// Actual frozen columns count (== FreezeColumnsRequest, or == 0 when no scrolling offset)
ImGuiTableColumnIdxRowCellDataCurrent;// Index of current RowCellData[] entry in current row
ImGuiTableDrawChannelIdxBg1DrawChannelCurrent;// For Selectable() and other widgets drawing accross columns after the freezing line. Index within DrawSplitter.Channels[]
ImGuiTableDrawChannelIdxBg1DrawChannelUnfrozen;
ImGuiTableDrawChannelIdxBg2DrawChannelCurrent;// For Selectable() and other widgets drawing accross columns after the freezing line. Index within DrawSplitter.Channels[]
ImGuiTableDrawChannelIdxBg2DrawChannelUnfrozen;
boolIsLayoutLocked;// Set by TableUpdateLayout() which is called when beginning the first row.
boolIsInsideRow;// Set when inside TableBeginRow()/TableEndRow().
staticconstfloatTABLE_RESIZE_SEPARATOR_FEEDBACK_TIMER=0.06f;// Delay/timer before making the hover feedback (color+cursor) visible because tables/columns tends to be more cramped.
// Bg2 is used by Selectable (and possibly other widgets) to render to the background.
// Unlike our Bg0/1 channel which we uses for RowBg/CellBg/Borders and where we guarantee all shapes to be CPU-clipped, the Bg2 channel being widgets-facing will rely on regular ClipRect.