data_table v1.3.1: Dots renderer via ImDrawList (font-independent) + recompile all apps with fn_table_viz (issue 0081-O.6)
- Replace TextColored+glyph with ImDrawList::AddCircleFilled in CellRenderer::Dots. Dots are now font-independent: no dependency on Unicode glyph coverage. Fixes "dots show as ?" on Karla/Roboto/Inter fonts that lack Geometric Shapes block. - dots_glyph_size now controls circle radius (px) instead of font scale. - BadgeRule.label is ignored for Dots (documented in data_table_types.h + docs). - data_table.md bumped to v1.3.1 with capability growth log entry. - docs/capabilities/data_table_renderers.md: Dots section updated + Common pitfalls entry added: "Asumir que cualquier glyph Unicode renderea". - dag_engine_ui/tabs.cpp: removed stale "● glyph" comment from BadgeRule. - Recompiled: dag_engine_ui, registry_dashboard, graph_explorer, navegator_dashboard, odr_console. All 5 apps deployed to Desktop/apps/. Build Linux + tests 4/4 green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# data_table_renderers — declarative cell renderers (v1.3.0)
|
||||
# data_table_renderers — declarative cell renderers (v1.3.1)
|
||||
|
||||
Tag: `cpp-tables` (mismo grupo que TQL; los renderers son parte del stack `data_table`).
|
||||
|
||||
@@ -223,7 +223,9 @@ recent.tooltip_on_hover = true; // hover sobre cada dot muestra el status strin
|
||||
// "success,success,failed,running,pending"
|
||||
```
|
||||
|
||||
Resultado visual: `● ● ● ● ●` (verde verde rojo amarillo gris).
|
||||
Resultado visual: 5 circulos solidos coloreados (verde verde rojo amarillo gris).
|
||||
|
||||
Cada dot se dibuja con `ImDrawList::AddCircleFilled` — primitiva ImGui pura, sin dependencia de glyph Unicode. Funciona con cualquier fuente (Karla, Roboto, Inter, Tabler).
|
||||
|
||||
Campos de `ColumnSpec` para Dots:
|
||||
|
||||
@@ -232,11 +234,11 @@ Campos de `ColumnSpec` para Dots:
|
||||
| `dots_separator` | `','` | Caracter separador de tokens en el cell value |
|
||||
| `dots_max` | `0` (sin limite) | Limite hard de dots a mostrar |
|
||||
| `dots_show_count` | `false` | Si true, añade ` (N)` al final con el total de tokens |
|
||||
| `dots_glyph_size` | `0.0` | Tamaño en px del glyph; 0 = tamaño de fuente por defecto |
|
||||
| `dots_glyph_size` | `0.0` | Radio del circulo en px; 0 = `font_height * 0.32` (auto) |
|
||||
|
||||
Color lookup: igual que Badge — cada token se busca exactamente en `badges.value`.
|
||||
Sin match: gris tenue `#666673`. Glyph por defecto: `●` (U+25CF). Para overridearlo,
|
||||
poner el glyph UTF-8 en `BadgeRule.label`.
|
||||
Sin match: gris tenue `IM_COL32(110, 110, 125, 255)`. `BadgeRule.label` es ignorado
|
||||
en Dots (solo aplica al renderer Badge).
|
||||
|
||||
TQL: `renderer = "dots"`, campos opcionales `dots_separator`, `dots_max`, `dots_show_count`, `dots_glyph_size`.
|
||||
|
||||
@@ -284,6 +286,13 @@ Badge espera **valores discretos** (enum-like: ok/error/running). Para texto lib
|
||||
|
||||
Si la accion es "abrir detalle del row", no uses Button por row. Usa `RowDoubleClick` event + handler comun. Mas limpio y sin IDs de ImGui por fila.
|
||||
|
||||
### Asumir que cualquier glyph Unicode renderea
|
||||
|
||||
Las fuentes del proyecto (Karla, Roboto, Inter, Tabler) cubren Latin-1 + Tabler private use area. NO incluyen Geometric Shapes (●, ▲), Misc Symbols (★) ni Dingbats (✓). Si quieres usar uno de estos:
|
||||
- **Para dots de status:** usa `CellRenderer::Dots` (primitiva `ImDrawList`, no depende de fuente).
|
||||
- **Para checkmarks/X:** usa `TI_CHECK` / `TI_X` via `icon_name` en `IconMapEntry`.
|
||||
- **Para texto puro con ●:** considera añadir un font fallback con Geometric Shapes (no recomendado — usa Dots renderer).
|
||||
|
||||
### Progress con valores fuera de 0..1
|
||||
|
||||
Progress espera `0..1`. Si tu valor es `0..100`, set `progress_scale_100 = true` o normaliza antes.
|
||||
|
||||
Reference in New Issue
Block a user