Add AssetBrowser: a virtualized thumbnail grid with multi-select and drag-out - #542
Merged
Merged
Conversation
This was referenced Sep 29, 2026
Open
…ect and drag-out Also folds in: - Compare the asset browser's float values with a tolerance [patch] - Justify the unsafe payload read in the asset browser [patch] Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HgjMCJ9MQRmUk6c8KABDYH
matt-edmondson
force-pushed
the
claude/asset-browser-026l9x
branch
from
September 30, 2026 10:44
ef5ece9 to
9f7e5d1
Compare
matt-edmondson
changed the base branch from
main
to
claude/project-thread-g9k1ol-step-grid
September 30, 2026 10:44
This was referenced Sep 30, 2026
|
This was referenced Sep 30, 2026
Base automatically changed from
claude/project-thread-g9k1ol-step-grid
to
main
September 30, 2026 11:28
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
Closes #509.
Before:
ktsu.ImGui.Widgetshad no way to browse a large set of assets as thumbnails. Anyone who needed one wrote their own grid, their own selection rules and their own drag payload.After:
ImGuiWidgets.AssetBrowser(label, itemCount, getLabel, resolveThumbnail, state, options)draws a scrolling grid of thumbnail tiles, and only the visible rows are drawn:OnActivate, and Ctrl+wheel resizes the tiles.ImGuiWidgets.TryAcceptAssetPayload.The widget takes callbacks rather than a list, so it never asks for a label or texture it is not about to draw. The 50 000-item test caps those calls at a screenful.
How
AssetBrowserStateholds the selection, focus, anchor and grid arithmetic, with no ImGui dependency, so it has 16 unit tests that need no context. The caller owns the state, so a selection survives the widget being hidden.ImGuiListClipper, one row of tiles per clipper item. The keyboard scrolls to keep the focus visible.{label}/[i]and the whole browser under its label, per Mark every widget for UI probes (ImGuiProbes.MarkItem in all ktsu.ImGui.Widgets entry points) #533.AssetBrowserDemoshows 5 000 synthetic assets with a name filter, a tile-size slider and a drop target. It is registered inDemoSections, following the per-section layout from Split the widgets demo into one class per section #534.LayoutAndContainers.AssetBrowserStateandTryAcceptAssetPayloadare listed inNotWidgets.ImGui.Widgets/README.mdand CLAUDE.md are updated.Local Release runs:
ImGui.Widgets.Tests410/410,ImGui.Widgets.UITests427/427 (16 new),ImGuiWidgetsDemo.UITests36/36,WidgetGallery.UITests6/6, and gallery--checkis clean.🤖 Generated with Claude Code
https://claude.ai/code/session_011hneiVTJVPigNUERid5WsM
Generated by Claude Code