ocornut
75bac1aac6
MultiSelect: Box-Select: Refactor into its own structure, designed for single-instance but closer to being reusable outside Multi-Select.
Kept same member names.
11 months ago
ocornut
15391762dd
MultiSelect: Box-Select: Added ImGuiMultiSelectFlags_BoxSelect2d support. Enabled in Asset Browser. Selectable() supports it.
11 months ago
ocornut
1ac469b50f
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.
11 months ago
ocornut
7546a2d345
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.
11 months ago
ocornut
750e23998f
MultiSelect: Demo: Assets Browser: added deletion support. Store ID in selection. Moved QueueDeletion to local var to emphasis that this is a user extension.
11 months ago
ocornut
51fe0bfcf6
MultiSelect: reworked comments in imgui.h now that we have our own section.
11 months ago
ocornut
0f633c1d99
MultiSelect: move demo's ExampleSelection to main api as a convenient ImGuiSelectionBasicStorage for basic users.
11 months ago
ocornut
e0282347db
MultiSelect: remove ImGuiSelectionRequest/ImGuiMultiSelectIO details from public api to reduce confusion + comments.
11 months ago
ocornut
0af6fbb51d
MultiSelect: added support for nested/stacked BeginMultiSelect().
Mimicking table logic, reusing amortized buffers.
1 year ago
ocornut
b747d6fe59
MultiSelect: Demo: rework and move selection adapter inside ExampleSelection.
1 year ago
ocornut
aa4d64be92
MultiSelect: Box-Select: added scroll support.
1 year ago
ocornut
f904a6646c
MultiSelect: Box-Select: added support for ImGuiMultiSelectFlags_BoxSelect.
(v11)
FIXME: broken on clipping demo.
1 year ago
ocornut
90305c57e4
MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_ClearOnClickWindowVoid -> ImGuiMultiSelectFlags_ClearOnClickVoid. Added ImGuiMultiSelectFlags_ScopeWindow, ImGuiMultiSelectFlags_ScopeRect.
1 year ago
ocornut
bf01795483
Demo: Assets Browser: add hit spacing, requierd for box-select patterns.
1 year ago
ocornut
3d41994a63
MultiSelect: simplify clearing ImGuiMultiSelectTempData.
1 year ago
ocornut
33fc61a091
MultiSelect: use a single ImGuiMultiSelectIO buffer.
+ using local storage var in EndMultiSelect(), should be no-op.
1 year ago
ocornut
5941edd9f7
MultiSelect: added support for recovery in ErrorCheckEndWindowRecover().
1 year ago
ocornut
c527cba470
MultiSelect: we don't need to ever write to EndIO.RangeSrcItem as this is not meant to be used.
1 year ago
ocornut
6feff6ff05
MultiSelect: (Breaking) io contains a ImVector<ImGuiSelectionRequest> list.
1 year ago
ocornut
a6adfb2b49
MultiSelect: added missing call on Shutdown(). Better reuse selection buffer.
1 year ago
ocornut
c3998b70cc
MultiSelect: clarified purpose and use of IsItemToggledSelection(). Added assert. Moved to multi-selection section of imgui.h.
1 year ago
ocornut
2765fdb43e
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).
1 year ago
ocornut
88df590145
Demo: Assets Browser: store items, sorting, type overlay.
1 year ago
ocornut
d18e57e673
Demo: Assets Browser: Added assets browser demo.
1 year ago
ocornut
82de6c470b
MultiSelect: Added ImGuiMultiSelectFlags_SelectOnClickRelease to allow dragging an unselected item without altering selection + update drag and drop demo.
1 year ago
ocornut
5628dda5a5
MultiSelect: move shared logic to MultiSelectItemHeader().
No logic change AFAIK but added an indent level in MultiSelectItemHeader(). Logic changes will come in next commit.
1 year ago
ocornut
9da4efed2a
MultiSelect: moved RequestClear output so it'll match request list version better. Use Storage->RangeSrcItem in EndMultiSelect().
1 year ago
ocornut
a6f43dfadd
MultiSelect: ImGuiMultiSelectIO's field are not used during loop anymore, stripping them out of comments.
1 year ago
ocornut
dce02f5c4b
Demo: Dual List Box: Added a dual list box (6648)
1 year ago
ocornut
ba698df7bb
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.
1 year ago
ocornut
e1d2109208
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.
1 year ago
ocornut
fa516c3d76
MultiSelect: Demo: Make ExampleSelection use ImGuiID. More self-explanatory.
1 year ago
ocornut
530155d85a
MultiSelect: Demo: Remove UserDataToIndex from ExampleSelectionAdapter.
Seems to make a better demo this way.
1 year ago
ocornut
8c1f659b3d
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.
1 year ago
ocornut
8fe6b31952
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.
1 year ago
ocornut
6ddc5f38af
MultiSelect: Demo: added simpler demo using Clipper. Clarify RangeSrcPassedBy doc.
1 year ago
ocornut
c3753809b1
MultiSelect: Demo: rework ExampleSelection names to map better to typical user code + variety of Comments tweaks.
1 year ago
ocornut
ff95fdb668
MultiSelect: (Breaking) RequestSetRange's parameter are RangeFirstItem...RangeLastItem (which was always ordered unlike RangeSrcItem...RangeDstItme). Removed RangeDstItem. Removed RangeDirection.
1 year ago
ocornut
af83a3eea4
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?
1 year ago
ocornut
6821401a3f
MultiSelect: Tweak debug log to print decimal+hex values for item data.
Struggled to get standard PRIX64 to work on CI.
1 year ago
ocornut
c9eb3714e8
MultiSelect: move HasSelectionData to ImGuiItemFlags to facilitate copying around in standardized fieds.
Required/motivated to simplify support for ImGuiTreeNodeFlags_NavLeftJumpsBackHere (bc3c0ce
) in this branch.
1 year ago
ocornut
e82b49d2d4
MultiSelect: (Breaking) Use ImGuiSelectionUserData (= ImS64) instead of void* for selection user data.
Less confusing for most users, less casting.
1 year ago
ocornut
140a2f0565
MultiSelect: Comments, tweaks.
+ Alignment to reduce noise on next commit.
1 year ago
ocornut
847b1dde8c
MultiSelect: (Breaking) Fix + Rename ImGuiMultiSelectFlags_NoMultiSelect to ImGuiMultiSelectFlags_SingleSelect as it seems easier to grasp.
Feature was broken by "Tidying up..." June 30 commit.
1 year ago
ocornut
0cf376348b
MultiSelect: Cleanup unused comments/code.
1 year ago
ocornut
ab9326f4ae
MultiSelect: Fixed right-click handling in MultiSelectItemFooter() when not focused.
1 year ago
ocornut
e3616e151f
MultiSelect: Demo: Delete items from menu.
1 year ago
ocornut
c0035705ca
MultiSelect: Further simplication of user code to support Deletion.
Provide standard RequestFocusItem storage.
1 year ago
ocornut
df1eeb9a20
MultiSelect: Maintain NavIdSelected for user. Simplify deletion demo.
1 year ago
ocornut
9223ffc255
MultiSelect: (Breaking) BeginMultiSelect() doesn't need two last params maintained by users. Moving some storage from user to core. Proper deletion demo.
1 year ago