Phase 7: region box editor in the wallpaper maker
"Edit cell boxes" mode: the selected cell grows resize handles on the preview -- drag to move/resize with live outline tracking and a re-render on drop, or type exact X/Y/W/H in the new geometry fields. Plain clicks still select and cycle stacked cells (click-vs-drag resolved by a movement threshold on mouse-up). The move/resize math is pure and unit-tested (OverlayRegionEdit: corner/edge/move handle hit-testing with tolerance, min-size clamped resizing that pins the opposite edge). "Save template" persists the shared cell geometry back to the regions.json; "Reload template" re-reads it to discard unsaved box edits. Cursor feedback per handle; template save/reload disabled when no template path was supplied. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+7
-2
@@ -239,11 +239,16 @@ Replaces the legacy Google-Sheet → `.data` → GIMP → Script-Fu pipeline
|
||||
exercised end-to-end on the real cockpit art (`regions.json` + `riojoy.png` +
|
||||
`TEST.data`) by `OverlayRenderIntegrationTests`. `RioJoy.Tray/WallpaperApplier`
|
||||
applies the result via `SystemParametersInfo`.
|
||||
- **Region authoring — extraction done ✅.** `tools/XcfRegionExtract` parses the
|
||||
- **Region authoring — done ✅.** `tools/XcfRegionExtract` parses the
|
||||
GIMP source (`riojoy.xcf`) and writes the 119-cell
|
||||
`docs/reference/customBackground/regions.json` (per-layer offsets/size/font/color,
|
||||
`BaseImagePath` → exported `riojoy.png`), anchored by `CockpitRegionsTests`.
|
||||
⏳ Still to do: an in-app box editor for tweaks.
|
||||
The **in-app box editor** lives in the wallpaper maker ("Edit cell boxes"): the
|
||||
selected cell grows resize handles — drag to move/resize (plain clicks still
|
||||
cycle stacked cells), or type exact X/Y/W/H — with the move/resize math in
|
||||
`RioJoy.Core/Overlay/OverlayRegionEdit` (unit-tested, min-size clamped).
|
||||
"Save template" persists the shared geometry back to the regions.json;
|
||||
"Reload template" discards unsaved box edits.
|
||||
- **Runtime wiring — done ✅ (opt-in).** `RioJoy.Overlay/ProfileWallpaperGenerator`
|
||||
renders a profile's labels onto the template base image; `RioCoordinator`
|
||||
generates + applies the wallpaper on profile activation when
|
||||
|
||||
Reference in New Issue
Block a user