|
morph 0.1.0
Asynchronous bridge between GUI thread and business models
|
App-shell descriptor: menu -> screens (form / wizard / view refs). More...
#include <glaze/glaze.hpp>#include <string>#include <string_view>#include <tuple>#include "detail/session_common.hpp"#include "flows.hpp"Go to the source code of this file.
Classes | |
| struct | morph::app::MenuEntry< Label, ScreenId > |
| One app-menu entry: a label and the screen-id it routes to. More... | |
| struct | morph::app::FormScreen< Id, Action > |
| A screen backed by one registered action's form. More... | |
| struct | morph::app::WizardScreen< Id, Wizard > |
| A screen backed by a registered morph::flows::Wizard. More... | |
| struct | morph::app::App< Title, Menu, Screens > |
| The app-shell descriptor: a title, an ordered menu, and the screens it routes to. More... | |
Macros | |
| #define | BRIDGE_REGISTER_APP(A, NAME) |
Specialises morph::app::AppTraits<A> with the string type-id NAME. | |
Functions | |
| template<typename AppT> | |
| std::string | morph::app::appSchemaJson () |
Generates the app-* JSON document for app-shell type AppT. | |
App-shell descriptor: menu -> screens (form / wizard / view refs).
A morph::app::App names an ordered menu and a map of screen-id -> screen, where a screen is a reference to an already-registered action form (FormScreen) or wizard (WizardScreen). appSchemaJson<AppT>() emits the app-* document a renderer loads as its navigation root, replacing "enumerate every schema on one scroll." Purely additive metadata: no new dispatch path, the shell only routes to existing action-forms and wizards. See docs/spec/forms/workflows_navigation.md.
Definition in file app.hpp.
| #define BRIDGE_REGISTER_APP | ( | A, | |
| NAME ) |
Specialises morph::app::AppTraits<A> with the string type-id NAME.
Metadata only, exactly like BRIDGE_REGISTER_WIZARD: an app-shell descriptor is never itself executed, only the actions/wizards its screens reference are (see docs/spec/forms/workflows_navigation.md).
| A | Concrete morph::app::App<...> type. |
| NAME | String literal used as the app's type-id. |
|
nodiscard |
Generates the app-* JSON document for app-shell type AppT.
Emits app-title, an ordered app-menu array ({label, screen} per entry), and an app-screens object mapping each screen's id to {kind, ref}. See docs/spec/forms/workflows_navigation.md for the full key vocabulary.
| AppT | Concrete morph::app::App<Title, Menu, Screens> type. |