zcatgui/src/widgets
R.Eugenio 2abb8547a5 feat(virtual_list): Fase 3 - Widget completo con renderizado
Implementación del widget VirtualList (~530 LOC):

virtualListRect():
- Registra focusable, maneja mouse/keyboard
- Calcula filas visibles y buffer size
- Detecta si necesita refetch (needsRefetch)
- Llama a DataProvider.fetchWindow() cuando necesario
- Actualiza counts desde provider

Renderizado:
- drawHeader(): títulos columnas, indicadores sort (^/v), click para ordenar
- drawRows(): filas con alternancia, selección con/sin focus
- drawFooter(): contador "pos de total" con soporte para "..."
- drawScrollbar(): thumb proporcional al scroll

Interacción:
- handleKeyboard(): ↑↓, PgUp/Dn, Home/End
- handleMouseClick(): click en fila selecciona

Características:
- Colores configurables (row_selected, row_selected_unfocus, etc.)
- Focus ring (fancy o simple)
- Clipping para contenido
- Footer muestra "15 de 500+..." → "15 de 1,234"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:46:50 +01:00
..
advanced_table fix(memory): Deep clone en Row + CellValue para evitar dangling pointers 2025-12-22 13:16:59 +01:00
progress refactor: Split textarea.zig and progress.zig into modular structures 2025-12-11 23:21:06 +01:00
table feat: Focus ring AA para todos los widgets focusables 2025-12-17 09:24:50 +01:00
textarea feat: Focus ring AA para todos los widgets focusables 2025-12-17 09:24:50 +01:00
virtual_list feat(virtual_list): Fase 3 - Widget completo con renderizado 2025-12-23 12:46:50 +01:00
appbar.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
autocomplete.zig fix(memory): Deep clone en Row + CellValue para evitar dangling pointers 2025-12-22 13:16:59 +01:00
badge.zig feat: zcatgui v0.8.0 - Phase 2 Complete (6 new widgets) 2025-12-09 13:04:41 +01:00
breadcrumb.zig feat: zcatgui v0.10.0 - Phase 4 Text & Navigation Widgets 2025-12-09 13:27:21 +01:00
button.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
canvas.zig feat: zcatgui v0.11.0 - Phase 5 Data Visualization 2025-12-09 13:37:27 +01:00
chart.zig feat: zcatgui v0.11.0 - Phase 5 Data Visualization 2025-12-09 13:37:27 +01:00
checkbox.zig feat: zcatgui v0.6.0 - Phase 1 Optimization Complete 2025-12-09 12:45:00 +01:00
colorpicker.zig feat: zcatgui v0.9.0 - Phase 3 Specialized Widgets 2025-12-09 13:21:47 +01:00
datepicker.zig feat: zcatgui v0.9.0 - Phase 3 Specialized Widgets 2025-12-09 13:21:47 +01:00
discloser.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
divider.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
focus.zig feat: Añadir archivos nuevos de widgets y focus 2025-12-12 22:55:41 +01:00
grid.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
icon.zig feat: zcatgui v0.11.0 - Phase 5 Data Visualization 2025-12-09 13:37:27 +01:00
iconbutton.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
image.zig feat: zcatgui v0.9.0 - Phase 3 Specialized Widgets 2025-12-09 13:21:47 +01:00
label.zig feat: zcatgui v0.6.0 - Phase 1 Optimization Complete 2025-12-09 12:45:00 +01:00
list.zig feat: zcatgui v0.6.0 - Phase 1 Optimization Complete 2025-12-09 12:45:00 +01:00
loader.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
menu.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
modal.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
navdrawer.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
numberentry.zig feat: Focus ring AA para todos los widgets focusables 2025-12-17 09:24:50 +01:00
panel.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
progress.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
radio.zig feat: Focus ring AA para todos los widgets focusables 2025-12-17 09:24:50 +01:00
reorderable.zig feat: zcatgui v0.9.0 - Phase 3 Specialized Widgets 2025-12-09 13:21:47 +01:00
resize.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
richtext.zig feat: zcatgui v0.10.0 - Phase 4 Text & Navigation Widgets 2025-12-09 13:27:21 +01:00
scroll.zig feat: zcatgui v0.6.0 - Phase 1 Optimization Complete 2025-12-09 12:45:00 +01:00
select.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
selectable.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
sheet.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
slider.zig feat: Focus ring AA para todos los widgets focusables 2025-12-17 09:24:50 +01:00
split.zig feat: zcatgui v0.6.0 - Phase 1 Optimization Complete 2025-12-09 12:45:00 +01:00
surface.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
switch.zig feat: zcatgui Gio parity - 12 new widgets + gesture system 2025-12-09 17:21:15 +01:00
tabs.zig feat: Focus ring AA para todos los widgets focusables 2025-12-17 09:24:50 +01:00
text_input.zig feat(v0.22.2): AutoComplete focus + Text Metrics + cursor 300ms 2025-12-19 20:08:11 +01:00
textarea.zig feat: Añadir archivos nuevos de widgets y focus 2025-12-12 22:55:41 +01:00
toast.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
tooltip.zig feat: Paridad Visual DVUI Fase 3 - Sombras y Gradientes 2025-12-17 13:27:48 +01:00
tree.zig feat: zcatgui v0.8.0 - Phase 2 Complete (6 new widgets) 2025-12-09 13:04:41 +01:00
virtual_scroll.zig feat: zcatgui v0.13.0 - Phase 7 Visual Polish 2025-12-09 13:49:50 +01:00
widgets.zig feat(virtual_list): Fase 2 - DataProvider interface + tipos + state 2025-12-23 12:27:23 +01:00