IMGUI_APIboolTableNextColumn();// append into the next column (or first column of next row if currently in last column). Return false when column is not visible.
IMGUI_APIboolTableNextColumn();// append into the next column (or first column of next row if currently in last column). Return false when column is not visible.
IMGUI_APIboolTableSetColumnIndex(intcolumn_n);// append into the specified column. Return false when column is not visible.
IMGUI_APIboolTableSetColumnIndex(intcolumn_n);// append into the specified column. Return false when column is not visible.
IMGUI_APIintTableGetColumnIndex();// return current column index.
IMGUI_APIintTableGetColumnIndex();// return current column index.
IMGUI_APIintTableGetRowIndex();// return current row index.
// Tables: Headers & Columns declaration
// Tables: Headers & Columns declaration
// - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc.
// - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc.
// Important: this will not display anything! The name passed to TableSetupColumn() is used by TableHeadersRow() and context-menus.
// Important: this will not display anything! The name passed to TableSetupColumn() is used by TableHeadersRow() and context-menus.
@ -1037,14 +1038,14 @@ enum ImGuiTabItemFlags_
// - The default sizing policy for columns depends on whether the ScrollX flag is set on the table:
// - The default sizing policy for columns depends on whether the ScrollX flag is set on the table:
// When ScrollX is off:
// When ScrollX is off:
// - Table defaults to ImGuiTableFlags_SizingPolicyStretchX -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch.
// - Table defaults to ImGuiTableFlags_SizingPolicyStretchX -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch.
// - Columns sizing policy allowed: Fixed/Auto or Stretch.
// - Columns sizing policy allowed: Stretch (default) or Fixed/Auto.
// - Stretch Columns will share the width available in table.
// - Stretch Columns will share the width available in table.
// - Fixed Columns will generally obtain their requested width unless the Table cannot fit them all.
// - Fixed Columns will generally obtain their requested width unless the Table cannot fit them all.
// When ScrollX is on:
// When ScrollX is on:
// - Table defaults to ImGuiTableFlags_SizingPolicyFixedX -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed.
// - Table defaults to ImGuiTableFlags_SizingPolicyFixedX -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed.
// - Columns sizing policy allowed: Fixed/Auto mostly! Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable().
// - Fixed Columns can be enlarged as needed. Table will show an horizontal scrollbar if needed.
// - Fixed Columns can be enlarged as needed. Table will show an horizontal scrollbar if needed.
// - Stretch Columns, if any, will calculate their width using inner_width, assuming no scrolling (it really doesn't make sense to do otherwise).
// - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable().
// - Mixing up columns with different sizing policy is possible BUT can be tricky and has some side-effects and restrictions.
// - Mixing up columns with different sizing policy is possible BUT can be tricky and has some side-effects and restrictions.
// (their visible order and the scrolling state have subtle but necessary effects on how they can be manually resized).
// (their visible order and the scrolling state have subtle but necessary effects on how they can be manually resized).
// The typical use of mixing sizing policies is to have ScrollX disabled, one or two Stretch Column and many Fixed Columns.
// The typical use of mixing sizing policies is to have ScrollX disabled, one or two Stretch Column and many Fixed Columns.
@ -1059,7 +1060,7 @@ enum ImGuiTableFlags_
ImGuiTableFlags_MultiSortable=1<<4,// Allow sorting on multiple columns by holding Shift (sort_specs_count may be > 1). Call TableGetSortSpecs() to obtain sort specs.
ImGuiTableFlags_MultiSortable=1<<4,// Allow sorting on multiple columns by holding Shift (sort_specs_count may be > 1). Call TableGetSortSpecs() to obtain sort specs.
ImGuiTableFlags_NoSavedSettings=1<<5,// Disable persisting columns order, width and sort settings in the .ini file.
ImGuiTableFlags_NoSavedSettings=1<<5,// Disable persisting columns order, width and sort settings in the .ini file.
ImGuiTableFlags_ContextMenuInBody=1<<6,// Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow().
ImGuiTableFlags_ContextMenuInBody=1<<6,// Right-click on columns body/contents will display table context menu. By default it is available in TableHeadersRow().
// Decoration
// Decorations
ImGuiTableFlags_RowBg=1<<7,// Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent to calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)
ImGuiTableFlags_RowBg=1<<7,// Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent to calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)
ImGuiTableFlags_BordersInnerH=1<<8,// Draw horizontal borders between rows.
ImGuiTableFlags_BordersInnerH=1<<8,// Draw horizontal borders between rows.
ImGuiTableFlags_BordersOuterH=1<<9,// Draw horizontal borders at the top and bottom.
ImGuiTableFlags_BordersOuterH=1<<9,// Draw horizontal borders at the top and bottom.
@ -1073,11 +1074,11 @@ enum ImGuiTableFlags_
ImGuiTableFlags_NoBordersInBody=1<<12,// Disable vertical borders in columns Body (borders will always appears in Headers).
ImGuiTableFlags_NoBordersInBody=1<<12,// Disable vertical borders in columns Body (borders will always appears in Headers).
ImGuiTableFlags_NoBordersInBodyUntilResize=1<<13,// Disable vertical borders in columns Body until hovered for resize (borders will always appears in Headers).
ImGuiTableFlags_NoBordersInBodyUntilResize=1<<13,// Disable vertical borders in columns Body until hovered for resize (borders will always appears in Headers).
// Sizing
// Sizing
ImGuiTableFlags_SizingPolicyFixedX=1<<14,// Default if ScrollX is on. Columns will default to use _WidthFixed or _WidthAlwaysAutoResize policy. Read description above for more details.
ImGuiTableFlags_SizingPolicyFixedX=1<<14,// Default if ScrollX is on. Columns will default to use _WidthFixed or _WidthAutoResize policy. Read description above for more details.
ImGuiTableFlags_SizingPolicyStretchX=1<<15,// Default if ScrollX is off. Columns will default to use _WidthStretch policy. Read description above for more details.
ImGuiTableFlags_SizingPolicyStretchX=1<<15,// Default if ScrollX is off. Columns will default to use _WidthStretch policy. Read description above for more details.
ImGuiTableFlags_NoHeadersWidth=1<<16,// Disable header width contribution to automatic width calculation.
ImGuiTableFlags_NoHeadersWidth=1<<16,// Disable header width contribution to automatic width calculation.
ImGuiTableFlags_NoHostExtendY=1<<17,// (FIXME-TABLE: Reword as SizingPolicy?) Disable extending past the limit set by outer_size.y, only meaningful when neither of ScrollX|ScrollY are set (data below the limit will be clipped and not visible)
ImGuiTableFlags_NoHostExtendY=1<<17,// (FIXME-TABLE: Reword as SizingPolicy?) Disable extending past the limit set by outer_size.y, only meaningful when neither of ScrollX|ScrollY are set (data below the limit will be clipped and not visible)
ImGuiTableFlags_NoKeepColumnsVisible=1<<18,// Disable keeping column always minimally visible when table width gets too small and ScrllX is off.
ImGuiTableFlags_NoKeepColumnsVisible=1<<18,// Disable keeping column always minimally visible when table width gets too small and ScrollX is off.
ImGuiTableFlags_PreciseStretchWidths=1<<19,// Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.
ImGuiTableFlags_PreciseStretchWidths=1<<19,// Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.
ImGuiTableFlags_NoClip=1<<20,// Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze().
ImGuiTableFlags_NoClip=1<<20,// Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze().
// Padding
// Padding
@ -1099,9 +1100,9 @@ enum ImGuiTableColumnFlags_
ImGuiTableColumnFlags_None=0,
ImGuiTableColumnFlags_None=0,
ImGuiTableColumnFlags_DefaultHide=1<<0,// Default as a hidden column.
ImGuiTableColumnFlags_DefaultHide=1<<0,// Default as a hidden column.
ImGuiTableColumnFlags_DefaultSort=1<<1,// Default as a sorting column.
ImGuiTableColumnFlags_DefaultSort=1<<1,// Default as a sorting column.
ImGuiTableColumnFlags_WidthFixed=1<<2,// Column will keep a fixed size, preferable with horizontal scrolling enabled (default if table sizing policy is SizingPolicyFixedX and table is resizable).
ImGuiTableColumnFlags_WidthStretch=1<<2,// Column will stretch, preferable with horizontal scrolling disabled (default if table sizing policy is SizingPolicyStretchX).
ImGuiTableColumnFlags_WidthStretch=1<<3,// Column will stretch, preferable with horizontal scrolling disabled (default if table sizing policy is SizingPolicyStretchX).
ImGuiTableColumnFlags_WidthFixed=1<<3,// Column will not stretch, preferable with horizontal scrolling enabled (default if table sizing policy is SizingPolicyFixedX and table is resizable).
ImGuiTableColumnFlags_WidthAlwaysAutoResize=1<<4,// Column will keep resizing based on submitted contents (with a one frame delay) == Fixed with auto resize (default if table sizing policy is SizingPolicyFixedX and table is not resizable).
ImGuiTableColumnFlags_WidthAutoResize=1<<4,// Column will not stretch and keep resizing based on submitted contents (default if table sizing policy is SizingPolicyFixedX and table is not resizable).
ImGuiTableColumnFlags_NoDirectResize_=1<<20// [Internal] Disable user resizing this column directly (it may however we resized indirectly from its left edge)
ImGuiTableColumnFlags_NoDirectResize_=1<<20// [Internal] Disable user resizing this column directly (it may however we resized indirectly from its left edge)
flags&=~(ImGuiTableFlags_SizingPolicyMaskX_^ImGuiTableFlags_SizingPolicyFixedX);// Can't specify both sizing polices so we clear the other
flags&=~(ImGuiTableFlags_SizingPolicyMaskX_^ImGuiTableFlags_SizingPolicyFixedX);// Can't specify both sizing polices so we clear the other
ImGui::SameLine();HelpMarker("Default if _ScrollX if enabled. Makes columns use _WidthFixed by default, or _WidthAlwaysAutoResize if _Resizable is not set.");
ImGui::SameLine();HelpMarker("Default if _ScrollX if enabled. Makes columns use _WidthFixed by default, or _WidthFixedResize if _Resizable is not set.");
ImGui::SameLine();HelpMarker("Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.");
ImGui::SameLine();HelpMarker("Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.");