// Module manifest visible to fn_framework's About panel. // // Each app gets an auto-generated _modules_generated.cpp (codegen via // python/functions/infra/codegen_app_modules.py, invoked by add_imgui_app at // CMake configure time) that defines the array + count below from the app's // `uses_modules:` declaration in its app.md. // // Apps without uses_modules still get a stub array of length 0 — links cleanly. // // Framework reads via: // // for (size_t i = 0; i < fn::app_modules_count; ++i) { // const auto& m = fn::app_modules_array[i]; // ImGui::Text("%s v%s — %s", m.name, m.version, m.description); // } #pragma once #include namespace fn { struct ModuleInfo { const char* name; const char* version; const char* description; }; extern const ModuleInfo app_modules_array[]; extern const unsigned long app_modules_count; // App identity para el header badge en viewports secundarios (panels arrastrados // fuera del main window). Auto-generados desde el bloque `icon:` del app.md // por codegen_app_modules.py. Permiten que el framework dibuje el cuadrado // accent con la identidad visual de la app sin que main.cpp deba pasar el hex // manualmente. // // app_header_accent_hex: "#RRGGBB" desde icon.accent (default "" si no se // declara — framework cae a hash-derived). // app_header_glyph_name: nombre del glyph Phosphor desde icon.phosphor. // Hoy informativo: el framework C++ no tiene fuente // Phosphor cargada, asi que cae a primera letra de // about.name. Reservado para futuro mapping Tabler. extern const char* const app_header_accent_hex; extern const char* const app_header_glyph_name; } // namespace fn