Files
fn_registry/cpp/functions/viz/table_view.md
egutierrez 7eef2544ab feat: add C++ ImGui functions for core UI and visualization
Funciones C++/ImGui para dashboards (grid, panel, docking, sidebar, tabs),
visualizaciones (candlestick, gauge, histogram, pie, sparkline, heatmap,
scatter, line, bar, surface3d, kpi, table), grafos (force layout, renderer,
viewport, spatial hash, types) y utilidades (time series buffer, tracy zones,
memory/fps overlay, plot theme).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 00:10:18 +02:00

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, framework, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path framework params output
table_view component cpp viz 1.0.0 pure bool table_view(const char* id, const char* const* headers, int col_count, const char* const* cells, int row_count) Renderiza una tabla interactiva con sorting y scroll usando ImGui Tables API
imgui
table
visualization
dashboard
data
false
imgui
false
cpp/functions/viz/table_view.cpp imgui
name desc
id Identificador unico de la tabla para ImGui (debe ser unico en el frame)
name desc
headers Array de strings con los nombres de las columnas
name desc
col_count Numero de columnas
name desc
cells Array flat row-major de strings; acceso a celda (row, col) via cells[row * col_count + col]
name desc
row_count Numero de filas de datos, sin contar el header
true si la tabla se renderizo visible, false si fue clipped o skipped por ImGui

table_view

Wrapper atomico sobre ImGui::BeginTable / ImGui::EndTable. Renderiza una tabla con las siguientes capacidades:

  • Borders: bordes entre celdas y columnas
  • Sortable: muestra indicadores de orden en los headers (el caller es responsable de ordenar cells antes de llamar)
  • RowBg: filas alternadas con color de fondo
  • Resizable: el usuario puede arrastrar los separadores de columna
  • ScrollY: scroll vertical con altura fija de 300px
  • Reorderable: el usuario puede reordenar columnas arrastrando los headers

El caller controla el orden de los datos — table_view solo habilita el flag Sortable para que ImGui muestre los indicadores visuales, pero no reordena cells internamente.

Debe llamarse dentro del render callback de fn::run_app (o cualquier contexto con un frame ImGui activo).

Ejemplo

const char* headers[] = {"Nombre", "Valor", "Estado"};
const char* cells[] = {
    "Alpha", "1.23", "OK",
    "Beta",  "4.56", "WARN",
    "Gamma", "7.89", "ERROR",
};
table_view("##mi_tabla", headers, 3, cells, 3);

Notas

  • id debe comenzar con ## si no se quiere mostrar como titulo de ventana en el contexto ImGui.
  • El outer size fijo de ImVec2(0, 300) puede parametrizarse en una version futura.
  • El sorting real de datos queda fuera del scope de esta funcion para mantenerla pura y componible.