[minor] Add CropOverlay, a crop rectangle drawn over an ImageCanvas - #573
Merged
Merged
Conversation
ImGuiWidgets.CropOverlay draws a crop in image pixels over an ImageCanvas, with a dimmed surround, thirds guides, edge and corner handles, an optional aspect lock and an optional rotate handle. The crop is kept inside the image. Dragging outside it pans the canvas and the wheel zooms it once. CropOverlayState holds the geometry and drag rules with no ImGui dependency. ImageCanvasState gains ImageToViewport, the inverse of ViewportToImage, and the canvas allows overlap so an overlay submitted over it takes the hover. Closes #506 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LXUsRiHnKs6HCgLAbC1L6D
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HgjMCJ9MQRmUk6c8KABDYH
|
This was referenced Oct 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Requested by Matt · project thread
Before: an
ImageCanvascould display an image but had no crop tool.After:
ImGuiWidgets.CropOverlaydraws a crop, measured in image pixels, over anImageCanvas. It has a dimmed surround, rule-of-thirds guides, edge and corner handles, an optional aspect lock, and an optional rotate handle. The crop is always kept inside the image. Dragging outside the crop still pans the canvas, and the wheel zooms it once rather than twice.How:
CropOverlayStateholds the geometry and drag rules and has no ImGui dependency.ImageCanvasStategainsImageToViewport, the inverse ofViewportToImage. The canvas now allows overlap, so an overlay submitted on top of it gets the hover. The overlay restores the cursor, the same wayCurveTrackdoes, so the gallery tile submits aDummyafter it. The PR adds a demo section, an isolation suite, a gallery tile and docs entries.Stacked PR. The base is #572 (ImageCompare). Merge order: #570 → #571 → #572 → this → PixelLoupe.
Validation, Release build: the solution builds clean,
ImGuiWidgetsDemo.UITestspasses 45/45, andWidgetGallery --checkpasses.Closes #506
🤖 Generated with Claude Code
https://claude.ai/code/session_01LXUsRiHnKs6HCgLAbC1L6D
Generated by Claude Code