fad4006f60
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
42 lines
1.2 KiB
Markdown
42 lines
1.2 KiB
Markdown
---
|
|
id: "0042"
|
|
title: "C++ layout_storage: extraer y publicar como API reutilizable"
|
|
status: completado
|
|
type: feature
|
|
domain:
|
|
- cpp-stack
|
|
scope: multi-app
|
|
priority: media
|
|
depends: []
|
|
blocks: []
|
|
related: []
|
|
created: 2026-05-17
|
|
updated: 2026-05-17
|
|
tags:
|
|
- cpp
|
|
- ui
|
|
- refactor
|
|
- layouts
|
|
- sqlite
|
|
---
|
|
|
|
# 0042 — C++ layout_storage: extraer y publicar como API reutilizable
|
|
|
|
## Objetivo
|
|
|
|
Extraer la persistencia de layouts ImGui (privada en `shaders_lab/main.cpp`)
|
|
a una funcion publica del registry: `layout_storage_cpp_core`. Cualquier app
|
|
puede pasarla a `app_menubar` via `LayoutCallbacks` con un solo setup.
|
|
|
|
## Resultado
|
|
|
|
- Nueva funcion publica `cpp/functions/core/layout_storage.{h,cpp,md}` con
|
|
handle opaco `LayoutStorage*` y helper `layout_storage_make_callbacks` que
|
|
rellena un `LayoutCallbacks` listo para `app_menubar`.
|
|
- Tabla SQLite `imgui_layouts(name, ini, updated_at)` creada con
|
|
`CREATE TABLE IF NOT EXISTS` para no chocar con tablas pre-existentes.
|
|
- `shaders_lab` migrado a la nueva API. La capa low-level
|
|
`layout_storage_sqlite` se deja intacta para casos que comparten conexion.
|
|
- `fn_framework` ahora enlaza `SQLite::SQLite3` para que cualquier app que
|
|
use el framework tenga acceso a `layout_storage` sin trabajo extra.
|