ocornut
1f6239de4e
RangeSelect/MultiSelect: Box-Select: Fixed initial drag from not claiming hovered id, preventing window behind to move for a frame.
ago%!(EXTRA string=11 months)
ocornut
7d1246e248
RangeSelect/MultiSelect: Box-Select: Fixed CTRL+drag from void clearing items.
ago%!(EXTRA string=11 months)
ocornut
130714fba3
RangeSelect/MultiSelect: Added ImGuiMultiSelectFlags_NoRangeSelect. Fixed ImGuiMultiSelectFlags_ScopeRect not querying proper window hover.
ago%!(EXTRA string=11 months)
ocornut
4cdc7bf150
RangeSelect/MultiSelect: Comments + Assets Browser : Tweak colors.
ago%!(EXTRA string=11 months)
ocornut
c0c5f3dbc7
RangeSelect/MultiSelect: Fixed ImGuiSelectionBasicStorage::ApplyRequests() incorrectly maintaining selection size on SelectAll.
ago%!(EXTRA string=11 months)
ocornut
4fb97db4af
RangeSelect/MultiSelect: Box-Select: Further refactor to extra mode code away from multi-select function into box-select funcitons.
ago%!(EXTRA string=11 months)
ocornut
3c20d552da
RangeSelect/MultiSelect: Box-Select: Fixed scrolling on high framerates.
ago%!(EXTRA string=11 months)
ocornut
a2c287ce58
RangeSelect/MultiSelect: Box-Select: Refactor: Renames.
...
Split into two commits to facilite looking into previous one if needed.
ago%!(EXTRA string=11 months)
ocornut
a5d6cf872e
RangeSelect/MultiSelect: Box-Select: Refactor into its own structure, designed for single-instance but closer to being reusable outside Multi-Select.
...
Kept same member names.
ago%!(EXTRA string=11 months)
ocornut
44bab4ab28
RangeSelect/MultiSelect: Box-Select: Added ImGuiMultiSelectFlags_BoxSelect2d support. Enabled in Asset Browser. Selectable() supports it.
ago%!(EXTRA string=11 months)
ocornut
08d540fc5c
RangeSelect/MultiSelect: Box-Select: Fixed holes when using with clipper (in 1D list.)
...
Clipper accounts for Selectable() layout oddity as BoxSelect is sensitive to it.
Also tweaked scroll triggering region inward.
Rename ImGuiMultiSelectFlags_NoBoxSelectScroll to ImGuiMultiSelectFlags_BoxSelectNoScroll.
Fixed use with ImGuiMultiSelectFlags_SinglaSelect.
ago%!(EXTRA string=11 months)
ocornut
7d9c448cfb
RangeSelect/MultiSelect: Demo: Assets Browser: track scrolling target so we can roughly land on hovered item.
...
It's impossible to do this perfectly without some form of locking on item because as the hovered item X position changes it's easy to drift.
ago%!(EXTRA string=11 months)
ocornut
c2a09cb30a
RangeSelect/MultiSelect: Demo: Assets Browser: added deletion support. Store ID in selection. Moved QueueDeletion to local var to emphasis that this is a user extension.
ago%!(EXTRA string=11 months)
ocornut
0ce1418295
RangeSelect/MultiSelect: reworked comments in imgui.h now that we have our own section.
ago%!(EXTRA string=11 months)
ocornut
4d4d30510b
RangeSelect/MultiSelect: move demo's ExampleSelection to main api as a convenient ImGuiSelectionBasicStorage for basic users.
...
FIXME-WIP: Less comments in imgui.
ago%!(EXTRA string=11 months)
ocornut
b066d839e8
RangeSelect/MultiSelect: remove ImGuiSelectionRequest/ImGuiMultiSelectIO details from public api to reduce confusion + comments.
ago%!(EXTRA string=11 months)
ocornut
4a11a9b0b9
RangeSelect/MultiSelect: support for nested/stacked BeginMultiSelect().
...
Mimicking table logic, reusing buffers.
ago%!(EXTRA string=11 months)
ocornut
40c274ee35
RangeSelect/MultiSelect: Demo: rework and move selection adapter inside ExampleSelection.
ago%!(EXTRA string=11 months)
ocornut
de8a6d0722
RangeSelect/MultiSelect: Box-Select: added scroll support.
ago%!(EXTRA string=11 months)
ocornut
b642c88a30
RangeSelect/MultiSelect: Box-Select: added support for ImGuiMultiSelectFlags_BoxSelect.
...
(v11)
FIXME: broken on clipping demo.
ago%!(EXTRA string=11 months)
ocornut
fd6d5d6703
RangeSelect/MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_ClearOnClickWindowVoid -> ImGuiMultiSelectFlags_ClearOnClickVoid. Added ImGuiMultiSelectFlags_ScopeWindow, ImGuiMultiSelectFlags_ScopeRect.
ago%!(EXTRA string=11 months)
ocornut
3a8a88c8f5
Demo: Assets Browser: add hit spacing, requierd for box-select patterns.
ago%!(EXTRA string=11 months)
ocornut
f5fac870e1
RangeSelect/MultiSelect: simplify clearing ImGuiMultiSelectTempData.
ago%!(EXTRA string=11 months)
ocornut
84600712d5
RangeSelect/MultiSelect: use a single ImGuiMultiSelectIO buffer.
...
+ using local storage var in EndMultiSelect(), should be no-op.
ago%!(EXTRA string=11 months)
ocornut
075e223a1d
RangeSelect/MultiSelect: added support for recovery in ErrorCheckEndWindowRecover().
ago%!(EXTRA string=11 months)
ocornut
2755c0f819
RangeSelect/MultiSelect: we don't need to ever write to EndIO.RangeSrcItem as this is not meant to be used.
ago%!(EXTRA string=11 months)
ocornut
a882002c0b
RangeSelect/MultiSelect: (Breaking) io contains a ImVector<ImGuiSelectionRequest> list.
ago%!(EXTRA string=11 months)
ocornut
5e2b4f3f43
RangeSelect/MultiSelect: added missing call on Shutdown(). Better reuse selection buffer.
ago%!(EXTRA string=11 months)
ocornut
0416519d80
RangeSelect/MultiSelect: clarified purpose and use of IsItemToggledSelection(). Added assert. Moved to multi-selection section of imgui.h.
ago%!(EXTRA string=11 months)
ocornut
084fdc054f
RangeSelect/MultiSelect: removed seemingly unnecessary block in BeginMultiSelect().
...
- EndIO.RangeSelected always set along with EndIO.RequestSetRange
- Trying to assert for the assignment making a difference when EndIO.RequestSetRange is already set couldn't find a case (tests passing).
ago%!(EXTRA string=11 months)
ocornut
7c6b4f5892
Demo: Assets Browser: store items, sorting, type overlay.
ago%!(EXTRA string=11 months)
ocornut
738af3ea80
Demo: Assets Browser: Added assets browser demo.
ago%!(EXTRA string=11 months)
ocornut
c9d8068bbe
RangeSelect/MultiSelect: Added ImGuiMultiSelectFlags_SelectOnClickRelease to allow dragging an unselected item without altering selection + update drag and drop demo.
ago%!(EXTRA string=11 months)
ocornut
6f9d36c6f2
RangeSelect/MultiSelect: move shared logic to MultiSelectItemHeader().
...
No logic change AFAIK but added an indent level in MultiSelectItemHeader(). Logic changes will come in next commit.
ago%!(EXTRA string=11 months)
ocornut
4b15ee88a0
RangeSelect/MultiSelect: moved RequestClear output so it'll match request list version better. Use Storage->RangeSrcItem in EndMultiSelect().
ago%!(EXTRA string=11 months)
ocornut
79b3439fda
RangeSelect/MultiSelect: ImGuiMultiSelectIO's field are not used during loop anymore, stripping them out of comments.
ago%!(EXTRA string=11 months)
ocornut
ea8d15cfa1
Demo: Dual List Box: Added a dual list box (6648)
ago%!(EXTRA string=11 months)
ocornut
7355e7c895
RangeSelect/MultiSelect: Demo: Deletion: Various renames to clarify. Use adapter and item list in both ApplyDeletion functions.
...
This also minify the patch for an alternative/wip attmept at redesgining pre/post deletion logic. But turns out current attempt may be easier to grasp.
ago%!(EXTRA string=11 months)
ocornut
723973a8b3
RangeSelect/MultiSelect: Demo: Deletion: Rework ApplyDeletionPreLoop to use adapter + fix PostLoop not using right value of RequestFocusItem.
...
Recovery made it transparent visually but user side selection would be empty for a frame before recovery.
ago%!(EXTRA string=11 months)
ocornut
c2ac70973e
RangeSelect/MultiSelect: Demo: Make ExampleSelection use ImGuiID. More self-explanatory.
ago%!(EXTRA string=11 months)
ocornut
7c44b46456
RangeSelect/MultiSelect: Demo: Remove UserDataToIndex from ExampleSelectionAdapter.
...
Seems to make a better demo this way.
ago%!(EXTRA string=11 months)
ocornut
1fdb880118
RangeSelect/MultiSelect: Demo: rework ExampleSelection with an ExampleSelectionAdapter layer, allowing to share more code accross examples using different storage systems.
...
Not ideal way to showcase this demo but this is really more flexible.
ago%!(EXTRA string=11 months)
ocornut
157efbb7ad
RangeSelect/MultiSelect: (Breaking) Removed RangeSrcPassedBy in favor of favoring user to call IncludeByIndex(RangeSrcItem) which is easier/simpler to honor.
...
Especially as recent changes made it required to also update RangeSrcPassedBy after last clipper Step.
Should now be simpler.
ago%!(EXTRA string=11 months)
ocornut
d55eb33491
RangeSelect/MultiSelect: Demo: added simpler demo using Clipper. Clarify RangeSrcPassedBy doc.
ago%!(EXTRA string=11 months)
ocornut
f4644bce0e
RangeSelect/MultiSelect: Demo: rework ExampleSelection names to map better to typical user code + variety of Comments tweaks.
ago%!(EXTRA string=11 months)
ocornut
e26dc83071
RangeSelect/MultiSelect: (Breaking) RequestSetRange's parameter are RangeFirstItem...RangeLastItem (which was always ordered unlike RangeSrcItem...RangeDstItme). Removed RangeDstItem. Removed RangeDirection.
ago%!(EXTRA string=11 months)
ocornut
4db4912d35
RangeSelect/MultiSelect: clear selection when leaving a scope with a nav directional request.
...
May need to clarify how to depends on actions being performed (e.g. click doesn't).
May become optional?
ago%!(EXTRA string=11 months)
ocornut
17b1bf2c5c
RangeSelect/MultiSelect: Tweak debug log to print decimal+hex values for item data.
...
Struggled to get standard PRIX64 to work on CI.
ago%!(EXTRA string=11 months)
ocornut
9b778ae71e
RangeSelect/MultiSelect: move HasSelectionData to ImGuiItemFlags to facilitate copying around in standardized fieds.
...
Required/motivated to simplify support for ImGuiTreeNodeFlags_NavLeftJumpsBackHere (bc3c0ce
) in this branch.
ago%!(EXTRA string=11 months)
ocornut
d0f6c7a9ce
RangeSelect/MultiSelect: (Breaking) Use ImGuiSelectionUserData (= ImS64) instead of void* for selection user data.
...
Less confusing for most users, less casting.
ago%!(EXTRA string=11 months)