--- 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.