Extract draw toolbar and thin NodeCanvas and Win32 shell

This commit is contained in:
2026-06-16 13:37:08 +02:00
parent 8ea56cbd30
commit 9c33ecc22b
10 changed files with 285 additions and 186 deletions

View File

@@ -80,13 +80,13 @@ What is still carrying too much live ownership:
Current hotspot files:
- `src/canvas.cpp`: 2645 lines
- `src/app_layout.cpp`: 353 lines
- `src/app_layout.cpp`: 285 lines
- `src/canvas_modes.cpp`: 1798 lines
- `src/node.cpp`: 1594 lines
- `src/main.cpp`: 487 lines
- `src/main.cpp`: 434 lines
- `src/node_panel_brush.cpp`: 1197 lines
- `src/node_stroke_preview.cpp`: 890 lines
- `src/node_canvas.cpp`: 910 lines
- `src/node_canvas.cpp`: 881 lines
- `src/app.cpp`: 502 lines
- `src/app_dialogs.cpp`: 142 lines
@@ -129,7 +129,10 @@ Current architecture mismatches that must be treated as real blockers:
`make_legacy_canvas_draw_merge_layer_path_gl_execution(...)` even though the
remaining draw lambdas and broader node draw loop still live in
`src/node_canvas.cpp`, where the post-draw/display-resolve tail now also
routes through `execute_node_canvas_draw_merge_tail(...)`.
routes through `execute_node_canvas_draw_merge_tail(...)`, while the
unmerged-path onion-range planning, plane filtering, per-layer visit
handling, and per-visit layer-path execution now also route through
`execute_legacy_canvas_draw_unmerged_node_canvas_shell(...)`.
- `app_layout.cpp` and `app_dialogs.cpp` are still mixed shell/controller files
rather than thin composition/binding surfaces, even though tools-menu binding
plus nested panels/options submenu wiring now live in
@@ -146,8 +149,9 @@ Current architecture mismatches that must be treated as real blockers:
binding now also lives in `src/app_layout_edit_menu.cpp` and
`App::init_menu_edit()` is now a thin call-through, while UI-direction and
persisted floating/docked panel-state ownership now also live in
`src/app_layout_ui_state.cpp`, and `src/app_layout.cpp` is now mostly
layout/bootstrap composition, while the
`src/app_layout_ui_state.cpp`, while draw-toolbar binding now also lives in
`src/app_layout_draw_toolbar.cpp`, and `src/app_layout.cpp` is now mostly
brush-refresh and layout/bootstrap composition, while the
informational overlay opener family now also lives in
`src/app_dialogs_info_openers.cpp` and the corresponding `App::dialog_*`
entrypoints are thinner, while the export/video/PPBR dialog family now also
@@ -195,7 +199,9 @@ Current architecture mismatches that must be treated as real blockers:
`src/platform_windows/windows_bootstrap_helpers.*` for runtime-data
discovery, startup-state initialization, window creation, pixel-format
setup, GL loader init, runtime-info logging, and core-context upgrade
sequencing, while the Win32 window procedure and retained message-handling
sequencing, while BugTrap/SEH recovery setup now also lives in
`src/platform_windows/windows_bootstrap_helpers.cpp` instead of
`src/main.cpp`, while the Win32 window procedure and retained message-handling
shell now also live in `src/platform_windows/windows_window_shell.*`
instead of `src/main.cpp`, which materially thins `src/main.cpp` even
though broader entrypoint/runtime composition still remains there,