Four cases:
1. visible columns are all stretch, resize all : "size all to default" reset to default weight
2. visible columns are all stretch, resize one: "size one to fit" set weight, reapply weight (todo: improve weight redistribution in case of >1 siblings)
3. visible columns are mixed, resize all: "size all to fit/default" reset stretchs to default weight, set fixed to auto width
4. visible columns are mixed, resize one: "size one to fit", redistribute weight the same way as a manual resize
+ TableSetupColumn() more consistently clear AutoFitQueue.
+ zero-clear RowCellData buffer.
//ImGui::CheckboxFlags("ImGuiTableFlags_ScrollX", &flags, ImGuiTableFlags_ScrollX); // FIXME-TABLE: Explain or fix the effect of enable Scroll on outer_size
intColumnsCount;// Number of columns declared in BeginTable()
intColumnsVisibleCount;// Number of non-hidden columns (<= ColumnsCount)
intCurrentRow;
intCurrentColumn;
ImS16InstanceCurrent;// Count of BeginTable() calls with same ID in the same frame (generally 0). This is a little bit similar to BeginCount for a window, but multiple table with same ID look are multiple tables, they are just synched.
@ -2018,9 +2017,12 @@ struct ImGuiTable
ImVector<ImGuiTableSortSpecsColumn>SortSpecsData;// FIXME-OPT: Fixed-size array / small-vector pattern, optimize for single sort spec
ImGuiTableSortSpecsSortSpecs;// Public facing sorts specs, this is what we return in TableGetSortSpecs()
ImS8SortSpecsCount;
ImS8ColumnsVisibleCount;// Number of non-hidden columns (<= ColumnsCount)
ImS8ColumnsVisibleFixedCount;// Number of non-hidden columns (<= ColumnsCount)
ImS8DeclColumnsCount;// Count calls to TableSetupColumn()
ImS8HoveredColumnBody;// Index of column whose visible region is being hovered. Important: == ColumnsCount when hovering empty region after the right-most column!
ImS8HoveredColumnBorder;// Index of column whose right-border is being hovered (for resizing).
ImS8AutoFitSingleStretchColumn;// Index of single stretch column requesting auto-fit.
ImS8ResizedColumn;// Index of column being resized. Reset when InstanceCurrent==0.
ImS8LastResizedColumn;// Index of column being resized from previous frame.
ImS8HeldHeaderColumn;// Index of column header being held.