MCPcopy Create free account
hub / github.com/KebsCS/KBotExt / TableSettingsHandler_WriteAll

Function TableSettingsHandler_WriteAll

KBotExt/imgui/imgui_tables.cpp:3473–3512  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3471}
3472
3473static void TableSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf)
3474{
3475 ImGuiContext& g = *ctx;
3476 for (ImGuiTableSettings* settings = g.SettingsTables.begin(); settings != NULL; settings = g.SettingsTables.next_chunk(settings))
3477 {
3478 if (settings->ID == 0) // Skip ditched settings
3479 continue;
3480
3481 // TableSaveSettings() may clear some of those flags when we establish that the data can be stripped
3482 // (e.g. Order was unchanged)
3483 const bool save_size = (settings->SaveFlags & ImGuiTableFlags_Resizable) != 0;
3484 const bool save_visible = (settings->SaveFlags & ImGuiTableFlags_Hideable) != 0;
3485 const bool save_order = (settings->SaveFlags & ImGuiTableFlags_Reorderable) != 0;
3486 const bool save_sort = (settings->SaveFlags & ImGuiTableFlags_Sortable) != 0;
3487 if (!save_size && !save_visible && !save_order && !save_sort)
3488 continue;
3489
3490 buf->reserve(buf->size() + 30 + settings->ColumnsCount * 50); // ballpark reserve
3491 buf->appendf("[%s][0x%08X,%d]\n", handler->TypeName, settings->ID, settings->ColumnsCount);
3492 if (settings->RefScale != 0.0f)
3493 buf->appendf("RefScale=%g\n", settings->RefScale);
3494 ImGuiTableColumnSettings* column = settings->GetColumnSettings();
3495 for (int column_n = 0; column_n < settings->ColumnsCount; column_n++, column++)
3496 {
3497 // "Column 0 UserID=0x42AD2D21 Width=100 Visible=1 Order=0 Sort=0v"
3498 bool save_column = column->UserID != 0 || save_size || save_visible || save_order || (save_sort && column->SortOrder != -1);
3499 if (!save_column)
3500 continue;
3501 buf->appendf("Column %-2d", column_n);
3502 if (column->UserID != 0) { buf->appendf(" UserID=%08X", column->UserID); }
3503 if (save_size && column->IsStretch) { buf->appendf(" Weight=%.4f", column->WidthOrWeight); }
3504 if (save_size && !column->IsStretch) { buf->appendf(" Width=%d", (int)column->WidthOrWeight); }
3505 if (save_visible) { buf->appendf(" Visible=%d", column->IsEnabled); }
3506 if (save_order) { buf->appendf(" Order=%d", column->DisplayOrder); }
3507 if (save_sort && column->SortOrder != -1) { buf->appendf(" Sort=%d%c", column->SortOrder, (column->SortDirection == ImGuiSortDirection_Ascending) ? 'v' : '^'); }
3508 buf->append("\n");
3509 }
3510 buf->append("\n");
3511 }
3512}
3513
3514void ImGui::TableSettingsAddSettingsHandler()
3515{

Callers

nothing calls this directly

Calls 7

next_chunkMethod · 0.80
reserveMethod · 0.80
appendfMethod · 0.80
GetColumnSettingsMethod · 0.80
appendMethod · 0.80
beginMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected