|
@@ -688,17 +688,19 @@ namespace ImGui
|
|
|
IMGUI_API void TableSetBgColor(ImGuiTableBgTarget bg_target, ImU32 color, int column_n = -1); // change the color of a cell, row, or column. See ImGuiTableBgTarget_ flags for details.
|
|
|
// Tables: Headers & Columns declaration
|
|
|
// - Use TableSetupColumn() to specify label, resizing policy, default width, id, various other flags etc.
|
|
|
- // - The name passed to TableSetupColumn() is used by TableAutoHeaders() and by the context-menu
|
|
|
- // - Use TableAutoHeaders() to submit the whole header row, otherwise you may treat the header row as a regular row, manually call TableHeader() and other widgets.
|
|
|
- // - Headers are required to perform some interactions: reordering, sorting, context menu (FIXME-TABLE: context menu should work without!)
|
|
|
+ // Important: this will not display anything! The name passed to TableSetupColumn() is used by TableAutoHeaders() and context-menus.
|
|
|
+ // - Use TableAutoHeaders() to create a row and automatically submit a TableHeader() for each column.
|
|
|
+ // Headers are required to perform some interactions: reordering, sorting, context menu (FIXME-TABLE: context menu should work without!)
|
|
|
+ // - You may manually submit headers using TableNextRow() + TableHeader() calls, but this is only useful in some advanced cases (e.g. adding custom widgets in header row).
|
|
|
IMGUI_API void TableSetupColumn(const char* label, ImGuiTableColumnFlags flags = 0, float init_width_or_weight = -1.0f, ImU32 user_id = 0);
|
|
|
IMGUI_API void TableAutoHeaders(); // submit all headers cells based on data provided to TableSetupColumn() + submit context menu
|
|
|
- IMGUI_API void TableHeader(const char* label); // submit one header cell manually.
|
|
|
+ IMGUI_API void TableHeader(const char* label); // submit one header cell manually (rarely used)
|
|
|
// Tables: Sorting
|
|
|
// - Call TableGetSortSpecs() to retrieve latest sort specs for the table. Return value will be NULL if no sorting.
|
|
|
- // - You can sort your data again when 'SpecsChanged == true'. It will be true with sorting specs have changed since last call, or the first time.
|
|
|
+ // - When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time.
|
|
|
+ // Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame!
|
|
|
// - Lifetime: don't hold on this pointer over multiple frames or past any subsequent call to BeginTable()!
|
|
|
- IMGUI_API const ImGuiTableSortSpecs* TableGetSortSpecs(); // get latest sort specs for the table (NULL if not sorting).
|
|
|
+ IMGUI_API ImGuiTableSortSpecs* TableGetSortSpecs(); // get latest sort specs for the table (NULL if not sorting).
|
|
|
|
|
|
// Tab Bars, Tabs
|
|
|
IMGUI_API bool BeginTabBar(const char* str_id, ImGuiTabBarFlags flags = 0); // create and append into a TabBar
|
|
@@ -1890,15 +1892,17 @@ struct ImGuiTableSortSpecsColumn
|
|
|
};
|
|
|
|
|
|
// Sorting specifications for a table (often handling sort specs for a single column, occasionally more)
|
|
|
-// Obtained by calling TableGetSortSpecs()
|
|
|
+// Obtained by calling TableGetSortSpecs().
|
|
|
+// When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time.
|
|
|
+// Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame!
|
|
|
struct ImGuiTableSortSpecs
|
|
|
{
|
|
|
- const ImGuiTableSortSpecsColumn* Specs; // Pointer to sort spec array.
|
|
|
- int SpecsCount; // Sort spec count. Most often 1 unless e.g. ImGuiTableFlags_MultiSortable is enabled.
|
|
|
- bool SpecsChanged; // Set to true by TableGetSortSpecs() call if the specs have changed since the previous call. Use this to sort again!
|
|
|
- ImU64 ColumnsMask; // Set to the mask of column indexes included in the Specs array. e.g. (1 << N) when column N is sorted.
|
|
|
+ const ImGuiTableSortSpecsColumn* Specs; // Pointer to sort spec array.
|
|
|
+ int SpecsCount; // Sort spec count. Most often 1 unless e.g. ImGuiTableFlags_MultiSortable is enabled.
|
|
|
+ bool SpecsDirty; // Set to true when specs have changed since last time! Use this to sort again, then clear the flag.
|
|
|
+ ImU64 ColumnsMask; // Set to the mask of column indexes included in the Specs array. e.g. (1 << N) when column N is sorted.
|
|
|
|
|
|
- ImGuiTableSortSpecs() { Specs = NULL; SpecsCount = 0; SpecsChanged = false; ColumnsMask = 0x00; }
|
|
|
+ ImGuiTableSortSpecs() { Specs = NULL; SpecsCount = 0; SpecsDirty = false; ColumnsMask = 0x00; }
|
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|