#pragma once

// Ventana flotante "About" para apps del registry. Muestra nombre del proyecto,
// version y descripcion opcional. Se abre desde el MenuItem "About..." en el
// submenu "Settings" de la MainMenuBar (ver app_menubar).
//
// Lifecycle:
//   - app llama about_window_set_info(name, version, [description]) en su init
//   - app_menubar() incluye el MenuItem "About..." en el submenu "Settings"
//   - end of frame: about_window_render() — invocado por fn::run_app
//
// Apps que NO usan fn::run_app deben llamar about_window_render() manualmente
// despues del render_fn.

namespace fn_ui {

// Setea la informacion mostrada en la ventana About. Llamar una vez en el init
// de la app, antes de fn::run_app. Si no se llama, la ventana muestra valores
// por defecto ("fn_registry app", sin version).
void about_window_set_info(const char* project,
                           const char* version,
                           const char* description = "");

// Estado abierto/cerrado de la ventana.
bool about_window_is_open();
void about_window_set_open(bool v);
void about_window_toggle();

// MenuItem componible. Llamar dentro de un BeginMenu/BeginMainMenuBar exitoso.
// Click → abre la ventana. Returns true si el usuario clico.
bool about_window_menu_item(const char* label = "About...");

// Render de la ventana. No-op si is_open == false. Llamada por fn::run_app al
// final del frame, despues del render_fn de la app.
void about_window_render();

} // namespace fn_ui
