mirror of
https://github.com/ocornut/imgui.git
synced 2026-11-06 06:25:54 +01:00
Tables: extract part of TableLoadSettingsForColumns() into TableLoadSettingsForColumn(). (#9108)
This commit is contained in:
parent
b9cf21733d
commit
570c0e03b7
@ -3263,6 +3263,8 @@ namespace ImGui
|
|||||||
|
|
||||||
// Tables: Settings
|
// Tables: Settings
|
||||||
IMGUI_API void TableLoadSettings(ImGuiTable* table);
|
IMGUI_API void TableLoadSettings(ImGuiTable* table);
|
||||||
|
IMGUI_API void TableLoadSettingsForColumns(ImGuiTable* table);
|
||||||
|
IMGUI_API void TableLoadSettingsForColumn(ImGuiTableColumn* column, const ImGuiTableColumnSettings* column_settings, ImGuiTableFlags load_flags);
|
||||||
IMGUI_API void TableSaveSettings(ImGuiTable* table);
|
IMGUI_API void TableSaveSettings(ImGuiTable* table);
|
||||||
IMGUI_API void TableResetSettings(ImGuiTable* table);
|
IMGUI_API void TableResetSettings(ImGuiTable* table);
|
||||||
IMGUI_API ImGuiTableSettings* TableGetBoundSettings(ImGuiTable* table);
|
IMGUI_API ImGuiTableSettings* TableGetBoundSettings(ImGuiTable* table);
|
||||||
|
|||||||
@ -3962,7 +3962,7 @@ void ImGui::TableLoadSettings(ImGuiTable* table)
|
|||||||
|
|
||||||
table->SettingsLoadedFlags = settings->SaveFlags;
|
table->SettingsLoadedFlags = settings->SaveFlags;
|
||||||
table->RefScale = settings->RefScale;
|
table->RefScale = settings->RefScale;
|
||||||
// (TableUpdateLayout() will further read from settings data)
|
// TableUpdateLayout() will then call TableLoadSettingsForColumns() to apply the data.
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGui::TableLoadSettingsForColumns(ImGuiTable* table)
|
void ImGui::TableLoadSettingsForColumns(ImGuiTable* table)
|
||||||
@ -3973,15 +3973,11 @@ void ImGui::TableLoadSettingsForColumns(ImGuiTable* table)
|
|||||||
if (settings == NULL)
|
if (settings == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// When using TrackTopologyChanges mode, columns ID are either all sets, either all cleared (initially).
|
|
||||||
//const bool has_columns_id = table->Columns[0].ID != 0;
|
|
||||||
|
|
||||||
// Serialize ImGuiTableSettings/ImGuiTableColumnSettings into ImGuiTable/ImGuiTableColumn
|
// Serialize ImGuiTableSettings/ImGuiTableColumnSettings into ImGuiTable/ImGuiTableColumn
|
||||||
ImGuiTableColumnSettings* column_settings = settings->GetColumnSettings();
|
ImGuiTableColumnSettings* column_settings = settings->GetColumnSettings();
|
||||||
for (int data_n = 0; data_n < settings->ColumnsCount; data_n++, column_settings++)
|
for (int data_n = 0; data_n < settings->ColumnsCount; data_n++, column_settings++)
|
||||||
{
|
{
|
||||||
int column_n = column_settings->Index;
|
int column_n = column_settings->Index;
|
||||||
//if (table->Flags & ImGuiTableFlags_TrackTopologyChanges)
|
|
||||||
if ((table->Flags & ImGuiTableFlags_TrackTopologyChanges) && (settings->SaveFlags & ImGuiTableFlags_TrackTopologyChanges))// && has_columns_id)
|
if ((table->Flags & ImGuiTableFlags_TrackTopologyChanges) && (settings->SaveFlags & ImGuiTableFlags_TrackTopologyChanges))// && has_columns_id)
|
||||||
if (column_n >= table->ColumnsCount || table->Columns[column_n].ID != column_settings->ID)
|
if (column_n >= table->ColumnsCount || table->Columns[column_n].ID != column_settings->ID)
|
||||||
{
|
{
|
||||||
@ -3993,31 +3989,34 @@ void ImGui::TableLoadSettingsForColumns(ImGuiTable* table)
|
|||||||
|
|
||||||
if (column_n < 0 || column_n >= table->ColumnsCount)
|
if (column_n < 0 || column_n >= table->ColumnsCount)
|
||||||
continue;
|
continue;
|
||||||
|
TableLoadSettingsForColumn(&table->Columns[column_n], column_settings, settings->SaveFlags);
|
||||||
ImGuiTableColumn* column = &table->Columns[column_n];
|
|
||||||
column->IsLoadedSettings = true;
|
|
||||||
if (settings->SaveFlags & ImGuiTableFlags_TrackTopologyChanges)
|
|
||||||
column->ID = column_settings->ID;
|
|
||||||
if (settings->SaveFlags & ImGuiTableFlags_Resizable)
|
|
||||||
{
|
|
||||||
if (column_settings->IsStretch)
|
|
||||||
column->StretchWeight = column_settings->WidthOrWeight;
|
|
||||||
else
|
|
||||||
column->WidthRequest = column_settings->WidthOrWeight;
|
|
||||||
column->AutoFitQueue = 0x00;
|
|
||||||
}
|
|
||||||
if (settings->SaveFlags & ImGuiTableFlags_Reorderable)
|
|
||||||
column->DisplayOrder = column_settings->DisplayOrder;
|
|
||||||
else
|
|
||||||
column->DisplayOrder = column_settings->Index; // Because default depends on previous Index, we need to set that up and cannot rely on TableInitColumnDefaults()
|
|
||||||
if ((settings->SaveFlags & ImGuiTableFlags_Hideable) && column_settings->IsEnabled != -1)
|
|
||||||
column->IsUserEnabled = column->IsUserEnabledNextFrame = (column_settings->IsEnabled == 1);
|
|
||||||
column->SortOrder = column_settings->SortOrder;
|
|
||||||
column->SortDirection = column_settings->SortDirection;
|
|
||||||
}
|
}
|
||||||
table->SettingsLoadedFlags |= ImGuiTableFlags_Reorderable; // We handle above in code above.
|
table->SettingsLoadedFlags |= ImGuiTableFlags_Reorderable; // We handle above in code above.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImGui::TableLoadSettingsForColumn(ImGuiTableColumn* column, const ImGuiTableColumnSettings* column_settings, ImGuiTableFlags load_flags)
|
||||||
|
{
|
||||||
|
column->IsLoadedSettings = true;
|
||||||
|
if (load_flags & ImGuiTableFlags_TrackTopologyChanges)
|
||||||
|
column->ID = column_settings->ID;
|
||||||
|
if (load_flags & ImGuiTableFlags_Resizable)
|
||||||
|
{
|
||||||
|
if (column_settings->IsStretch)
|
||||||
|
column->StretchWeight = column_settings->WidthOrWeight;
|
||||||
|
else
|
||||||
|
column->WidthRequest = column_settings->WidthOrWeight;
|
||||||
|
column->AutoFitQueue = 0x00;
|
||||||
|
}
|
||||||
|
if (load_flags & ImGuiTableFlags_Reorderable)
|
||||||
|
column->DisplayOrder = column_settings->DisplayOrder;
|
||||||
|
else
|
||||||
|
column->DisplayOrder = column_settings->Index; // Because default depends on previous Index, we need to set that up and cannot rely on TableInitColumnDefaults()
|
||||||
|
if ((load_flags & ImGuiTableFlags_Hideable) && column_settings->IsEnabled != -1)
|
||||||
|
column->IsUserEnabled = column->IsUserEnabledNextFrame = (column_settings->IsEnabled == 1);
|
||||||
|
column->SortOrder = column_settings->SortOrder;
|
||||||
|
column->SortDirection = column_settings->SortDirection;
|
||||||
|
}
|
||||||
|
|
||||||
struct ImGuiTableFixDisplayOrderColumnData
|
struct ImGuiTableFixDisplayOrderColumnData
|
||||||
{
|
{
|
||||||
ImGuiTableColumnIdx Idx;
|
ImGuiTableColumnIdx Idx;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user