Tables: Expose TableSetColumnEnabled() in public api. (#3935)
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index a6e9fd3..36c1b40 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -41,6 +41,7 @@
- Scrolling: Fix scroll tracking with e.g. SetScrollHereX/Y() when WindowPadding < ItemSpacing.
- Scrolling: Fix scroll snapping on edge of scroll region when both scrollbars are enabled.
+- Tables: Expose TableSetColumnEnabled() in public api. (#3935)
- Drags, Sliders, Inputs: Specifying a NULL format to Float functions default them to "%.3f" to be
consistent with the compile-time default. (#3922)
- DragScalar: Add default value for v_speed argument to match higher-level functions. (#3922) [@eliasdaler]
diff --git a/imgui.cpp b/imgui.cpp
index 47a77b3..14c9c9b 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -7091,7 +7091,7 @@
ImGuiContext& g = *GImGui;
// Check user IM_ASSERT macro
- // (IF YOU GET A WARNING OR COMPILE ERROR HERE: it means you assert macro is incorrectly defined!
+ // (IF YOU GET A WARNING OR COMPILE ERROR HERE: it means your assert macro is incorrectly defined!
// If your macro uses multiple statements, it NEEDS to be surrounded by a 'do { ... } while (0)' block.
// This is a common C/C++ idiom to allow multiple statements macros to be used in control flow blocks.)
// #define IM_ASSERT(EXPR) if (SomeCode(EXPR)) SomeMoreCode(); // Wrong!
diff --git a/imgui.h b/imgui.h
index d1e2f1d..4867414 100644
--- a/imgui.h
+++ b/imgui.h
@@ -723,6 +723,7 @@
IMGUI_API int TableGetRowIndex(); // return current row index.
IMGUI_API const char* TableGetColumnName(int column_n = -1); // return "" if column didn't have a name declared by TableSetupColumn(). Pass -1 to use current column.
IMGUI_API ImGuiTableColumnFlags TableGetColumnFlags(int column_n = -1); // return column flags so you can query their Enabled/Visible/Sorted/Hovered status flags. Pass -1 to use current column.
+ IMGUI_API void TableSetColumnEnabled(int column_n, bool v);// change enabled/disabled state of a column, set to false to hide the column. Note that end-user can use the context menu to change this themselves (right-click in headers, or right-click in columns body with ImGuiTableFlags_ContextMenuInBody)
IMGUI_API void TableSetBgColor(ImGuiTableBgTarget target, ImU32 color, int column_n = -1); // change the color of a cell, row, or column. See ImGuiTableBgTarget_ flags for details.
// Legacy Columns API (2020: prefer using Tables!)
diff --git a/imgui_internal.h b/imgui_internal.h
index 75e7e5e..041b6f3 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -2361,7 +2361,6 @@
// Tables: Candidates for public API
IMGUI_API void TableOpenContextMenu(int column_n = -1);
- IMGUI_API void TableSetColumnEnabled(int column_n, bool enabled);
IMGUI_API void TableSetColumnWidth(int column_n, float width);
IMGUI_API void TableSetColumnSortDirection(int column_n, ImGuiSortDirection sort_direction, bool append_to_sort_specs);
IMGUI_API int TableGetHoveredColumn(); // May use (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered) instead. Return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered.
diff --git a/imgui_tables.cpp b/imgui_tables.cpp
index 3bbc0a7..c01c708 100644
--- a/imgui_tables.cpp
+++ b/imgui_tables.cpp
@@ -1491,6 +1491,9 @@
return &table->ColumnsNames.Buf[column->NameOffset];
}
+// Request enabling/disabling a column (often perceived as "showing/hiding" from users point of view)
+// Note that end-user can use the context menu to change this themselves (right-click in headers, or right-click in columns body with ImGuiTableFlags_ContextMenuInBody)
+// Request will be applied during next layout, which happens on the first call to TableNextRow() after BeginTable()
// For the getter you can use (TableGetColumnFlags() & ImGuiTableColumnFlags_IsEnabled)
void ImGui::TableSetColumnEnabled(int column_n, bool enabled)
{