floatCellSpacingX;// Spacing between non-bordered cells
floatLastOuterHeight;// Outer height from last frame
floatLastFirstRowHeight;// Height of first row from last frame
floatColumnsTotalWidth;
floatInnerWidth;// User value passed to BeginTable(), see comments at the top of BeginTable() for details.
floatIdealTotalWidth;// Sum of ideal column width for nothing to be clipped
floatColumnsTotalWidth;// Sum of current column width
floatColumnsAutoFitWidth;// Sum of ideal column width in order nothing to be clipped, used for auto-fitting and content width submission in outer window
floatResizedColumnNextWidth;
ImRectOuterRect;// Note: OuterRect.Max.y is often FLT_MAX until EndTable(), unless a height has been specified in BeginTable().
// (can't make auto padding larger than what WorkRect knows about so right-alignment matches)
constImRectwork_rect=table->WorkRect;
constfloatpadding_auto_x=table->CellPaddingX2;
constfloatspacing_auto_x=table->CellSpacingX*(1.0f+2.0f);// CellSpacingX is >0.0f when there's no vertical border, in which case we add two extra CellSpacingX to make auto-fit look nice instead of cramped. We may want to expose this somehow.
// Add an extra 1 pixel so we can see the last column vertical line if it lies on the right-most edge.
if(table->ActiveMaskByIndex&((ImU64)1<<column_n))
max_pos_x=ImMax(max_pos_x,column->MaxX+1.0f);
}
// Override EndChild/ItemSize max extent with our own to enable auto-resize on the X axis when possible
// FIXME-TABLE: This can be improved (e.g. for Fixed columns we don't want to auto AutoFitWidth? or propagate window auto-fit to table?)
if(table->Flags&ImGuiTableFlags_ScrollX)
{
inner_window->DC.CursorMaxPos.x=max_pos_x;// Set contents width for scrolling
outer_window->DC.CursorMaxPos.x=ImMax(backup_outer_max_pos_x,backup_outer_cursor_pos_x+table->ColumnsTotalWidth+1.0f+inner_window->ScrollbarSizes.x);// For auto-fit
}
else
{
outer_window->DC.CursorMaxPos.x=ImMax(backup_outer_max_pos_x,table->WorkRect.Min.x+table->ColumnsAutoFitWidth);// For auto-fit