#pragma once

// Ventana flotante "Logs" para apps del registry. Muestra las entradas del
// buffer in-memory de fn_log (ver logger.h) con filtros por nivel y un
// buscador por substring.
//
// Lifecycle:
//   - app_menubar() incluye el MenuItem "Logs..." en el submenu "Settings"
//   - end of frame: log_window_render() — invocado por fn::run_app
//
// Apps que NO usan fn::run_app deben llamar log_window_render() manualmente.
//
// El visualizador no toca el archivo en disco; solo lee el ring buffer. Si
// la app nunca llamo logger_init, la ventana sigue funcionando contra el
// buffer (los logs simplemente no se persisten).

namespace fn_ui {

bool log_window_is_open();
void log_window_set_open(bool v);
void log_window_toggle();

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

// 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 log_window_render();

} // namespace fn_ui
