#pragma once

// Modal dialog centrado con titulo, contenido custom del caller y cierre
// al pulsar Escape / click fuera. Patron show-flag + begin/end.
//
// Uso tipico:
//   static bool show = false;
//   if (button("Open")) show = true;
//
//   if (fn_ui::modal_dialog_begin("Add App", &show, ImVec2(420, 0))) {
//       text_input("Name", buf, sizeof(buf));
//       ...
//       if (button("Cancel")) show = false;
//       ImGui::SameLine();
//       if (button("Create", Primary)) { create(); show = false; }
//   }
//   fn_ui::modal_dialog_end();   // llamar siempre, aunque begin devuelva false

#include "imgui.h"

namespace fn_ui {

// Abre (si `*open` es true) una popup modal centrada con el titulo dado.
// `size` = (0,0) autosize. Devuelve true si el modal esta visible — entonces
// el caller renderiza el contenido; al terminar llama siempre a modal_dialog_end.
// `open` puede ser null si se gestiona el close desde dentro con ImGui::CloseCurrentPopup.
bool modal_dialog_begin(const char* title, bool* open, ImVec2 size = ImVec2(0, 0));
void modal_dialog_end();

} // namespace fn_ui
