Files
fn_registry/modules/framework/module.md
T

2.3 KiB

name, version, lang, description, members, tags, dir_path
name version lang description members tags dir_path
framework 1.0.0 cpp Core C++ ImGui app shell: fn::run_app, AppConfig, GLFW + OpenGL + ImGui + ImPlot bootstrap, theming (Mantine dark + indigo), settings/about/menubar/layouts UI, Tabler icons, logging, viewports & AltSnap-safe sizemove, local_files dir, embedded layout storage.
tokens_cpp_core
icon_font_cpp_core
app_settings_cpp_core
app_about_cpp_core
fps_overlay_cpp_core
panel_menu_cpp_core
layouts_menu_cpp_core
app_menubar_cpp_core
logger_cpp_core
log_window_cpp_core
gl_loader_cpp_gfx
layout_storage_cpp_core
selectable_text_cpp_core
framework
imgui
cpp
core
cpp/framework

Documentation

Foundational C++ ImGui app shell shared by every desktop app in the registry. Apps opt-in transparently — every C++ app already links fn_framework via the add_imgui_app macro. The framework provides:

  • fn::run_app(cfg, render_fn): GLFW + OpenGL3 + ImGui + ImPlot setup, multi-viewport, docking, AltSnap-safe sizemove, icon attach, layouts persistence, log window, settings window, about window, menubar.
  • fn::local_path(name): scoped writable path under <exe_dir>/local_files/.
  • Design tokens (Mantine dark + indigo accent).
  • Tabler icons (TI_* macros).
  • fn::framework_version() / fn::framework_description() (post 1.0.0).

Apps NEVER list these members in their own uses_functions — they come transitively via fn_framework. Audited via cpp_apps rule.

Version policy

Semver. Major = breaking ABI/API of public fn::run_app or AppConfig. Minor = additive (new optional config field, new helper). Patch = bugfix.

Boundaries

Framework does NOT include modules like data_table. Apps that want tables opt-in via uses_modules: [data_table_cpp] and target_link_libraries(<app> PRIVATE fn_module_data_table). The framework is intentionally small.

Capability growth log

  • v1.0.0 (2026-05-16) — Initial framing as a versioned module. Members above are the bundled units of fn_framework static lib. Pre-1.0.0 history lives in git.

Notes

  • Static lib target: fn_framework (defined in cpp/CMakeLists.txt).
  • Generated header cpp/framework/version_generated.h (gitignored) exposes FN_FRAMEWORK_VERSION constant.
  • About panel of every app reads fn::framework_version() at runtime.