Migrate the top toolbar, right-side Layers panel, and bottom palette strip to lib-core.panel v0.3.0 persistent widgets (W.2 of the panel-window-manager plan): map-editor.toolbar -- top strip (full width, ~290 px tall) map-editor.layers -- right side-panel (160 px wide) map-editor.palette -- bottom strip (full width, 64 px tall) All three registered as persistent=true (open from module-init, not dismissed by ESC), input_block='self' (hit-test claims clicks within own bounds; misses fall through to canvas), and chromeless=true (panel-lib skips its title-bar/border/X — widgets keep their own visual style). Existing draw_menu_bar / draw_side_panel / draw_palette and handle_click logic is wrapped via thin widget render + handle_input fns (M.draw_toolbar_widget / M.handle_toolbar_click etc.); no behavioural change to the widget interiors. Map-canvas remains module-rendered. Canvas drag-paint is now gated on panel.point_in_any_panel(mx, my) so widget clicks no longer bleed through into map paint. Removed state.show_layers_panel / show_palette and their toggle helpers (panel-lib manages widget visibility; Window menu items now flip panel.is_open/toggle on the widget ids directly). Modals stay module-rendered + module-routed (handled by handle_modal_click before panel.update). Manifest bumped 0.3.4 -> 0.4.0; lib-core.panel dep added at 0.3.0.
83 KiB
83 KiB