Thin app runtime and generic node shells

This commit is contained in:
2026-06-17 00:24:00 +02:00
parent 86e57d47ad
commit 9b1e593477
9 changed files with 377 additions and 264 deletions

View File

@@ -590,6 +590,11 @@ Current slice:
keeping that shell pocket inline in `src/app.cpp`, which trims the live app
entry file a little further while preserving the retained open-action
behavior.
- `App::show_progress(...)`, `App::message_box(...)`, and
`App::input_box(...)` now also route through
`src/legacy_app_dialog_services.*` instead of building dialog plans and
factories inline in `src/app_dialogs.cpp`, which trims another coherent
dialog-construction pocket from the remaining app dialog shell.
Write scope:
- `src/app_dialogs.cpp`
@@ -651,6 +656,11 @@ Current slice:
live in `src/legacy_app_runtime_shell_services.cpp` instead of staying
inline in `src/app.cpp`, which reduces the remaining app file to a thinner
retained shell around document routing and runtime thread entrypoints.
- `App::request_close()`, `App::renderdoc_frame_start()`,
`App::renderdoc_frame_end()`, and the render/UI thread entrypoint wrappers
now also route through `src/legacy_app_runtime_shell_services.*` instead of
staying inline in `src/app.cpp`, which reduces the live app file to a much
thinner retained composition shell.
Write scope:
- `src/app.cpp`
@@ -754,6 +764,10 @@ Current slice:
- canvas async import/export/save/open background work now also runs through an
`AppRuntime`-owned worker queue instead of a retained static worker in
`src/canvas.cpp`
- `App::request_close()` plus the render/UI thread entrypoint wrappers now
also route through `src/legacy_app_runtime_shell_services.*`, which further
reduces direct runtime orchestration living on `src/app.cpp` even though the
owned runtime contract is still centered on `AppRuntime`
- retained `App` composition, task call sites, and platform/runtime entrypoint
coupling are still not fully reduced behind the runtime contract
@@ -916,6 +930,11 @@ Current slice:
`load_legacy_ui_node(...)` in `src/legacy_ui_node_loader.*`, which moves the
init/attribute-parse/create/child-load/loaded shell out of `src/node.cpp`
and leaves the remaining live node file thinner.
- The remaining default `Node` event/capture/resize shell now also lives in
`src/legacy_ui_node_execution.cpp`, while the remaining
width/height/padding/margin/flex/visibility/geometry wrappers now also live
in `src/legacy_ui_node_style.*`, which reduces `src/node.cpp` to the final
attribute/load entrypoints without changing the public surface.
Write scope:
- `src/node.cpp`