docs: Update TABLES_ARCHITECTURE with FASE 5+6
This commit is contained in:
parent
a9caa522a1
commit
d5edf2b962
1 changed files with 17 additions and 4 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# Arquitectura de Tablas en zcatgui
|
||||
|
||||
> **Documento de referencia definitivo** para entender, usar y extender los widgets de tabla.
|
||||
> Actualizado: 2025-12-27 (FASE 4.5 completada - rendering unificado)
|
||||
> Actualizado: 2025-12-27 (FASES 0-6 completadas - unificación total)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -56,6 +56,16 @@ zcatgui proporciona **dos widgets de tabla** que comparten lógica común:
|
|||
│ │ - MemoryDataSource [Adaptador datos memoria] │ │
|
||||
│ │ - PagedDataSource [Adaptador datos paginados] │ │
|
||||
│ │ │ │
|
||||
│ │ ESTADO EMBEBIDO (FASE 5): │ │
|
||||
│ │ - NavigationState [active_col, scroll, double_click]│ │
|
||||
│ │ - CellEditState [editing, buffer, cursor] │ │
|
||||
│ │ │ │
|
||||
│ │ SCROLLBARS UNIFICADOS (FASE 6): │ │
|
||||
│ │ - drawVerticalScrollbar() [Scrollbar vertical] │ │
|
||||
│ │ - drawHorizontalScrollbar() [Scrollbar horizontal] │ │
|
||||
│ │ - VerticalScrollbarParams [Configuración vertical] │ │
|
||||
│ │ - HorizontalScrollbarParams [Configuración horizontal] │ │
|
||||
│ │ │ │
|
||||
│ │ LÓGICA COMÚN: │ │
|
||||
│ │ - calculateNextCell() / calculatePrevCell() [Tab navigation] │ │
|
||||
│ │ - toggleSort() [Ordenación] │ │
|
||||
|
|
@ -65,7 +75,7 @@ zcatgui proporciona **dos widgets de tabla** que comparten lógica común:
|
|||
│ │ │ │
|
||||
│ │ TIPOS COMPARTIDOS: │ │
|
||||
│ │ - RowState (normal/modified/new/deleted/error) │ │
|
||||
│ │ - TabNavigateResult, CellPosition, CellEditState │ │
|
||||
│ │ - TabNavigateResult, CellPosition │ │
|
||||
│ │ - DrawRowsConfig, RowRenderColors, ColumnRenderDef │ │
|
||||
│ └─────────────────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
|
@ -82,14 +92,14 @@ src/widgets/
|
|||
├── advanced_table/ # Tabla con datos en memoria
|
||||
│ ├── advanced_table.zig # Widget principal (usa drawRowsWithDataSource)
|
||||
│ ├── datasource.zig # MemoryDataSource (adaptador)
|
||||
│ ├── state.zig # Estado (embeds CellEditState)
|
||||
│ ├── state.zig # Estado (embeds nav: NavigationState)
|
||||
│ ├── types.zig # Tipos específicos
|
||||
│ └── schema.zig # Definición de columnas
|
||||
│
|
||||
└── virtual_advanced_table/ # Tabla con datos paginados
|
||||
├── virtual_advanced_table.zig # Widget principal (usa drawRowsWithDataSource)
|
||||
├── paged_datasource.zig # PagedDataSource (adaptador)
|
||||
├── state.zig # Estado (embeds CellEditState)
|
||||
├── state.zig # Estado (embeds nav: NavigationState)
|
||||
├── types.zig # Tipos específicos
|
||||
└── data_provider.zig # Interface para datos BD
|
||||
```
|
||||
|
|
@ -475,6 +485,9 @@ Esto causaba que el focus del widget alternara incorrectamente cada frame.
|
|||
|
||||
| Fecha | Cambio |
|
||||
|-------|--------|
|
||||
| 2025-12-27 | FASE 6: Scrollbars unificados (drawVerticalScrollbar, drawHorizontalScrollbar) |
|
||||
| 2025-12-27 | FASE 5: NavigationState embebido en ambos States |
|
||||
| 2025-12-27 | FASE 4.5: AdvancedTable usa drawRowsWithDataSource (sin bucle for propio) |
|
||||
| 2025-12-27 | Fix bug colores alternando + campo `handled` en EditKeyboardResult |
|
||||
| 2025-12-27 | Refactorización DRY: lógica común movida a table_core.zig |
|
||||
| 2025-12-26 | table_core.zig creado con funciones de renderizado compartidas |
|
||||
|
|
|
|||
Loading…
Reference in a new issue