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)
ocornut
27300e95e5
RangeSelect/MultiSelect: Comments, tweaks.
...
+ Alignment to reduce noise on next commit.
ago%!(EXTRA string=11 months)
ocornut
ec228c2c71
RangeSelect/MultiSelect: (Breaking) Fix + Rename ImGuiMultiSelectFlags_NoMultiSelect to ImGuiMultiSelectFlags_SingleSelect as it seems easier to grasp.
...
Feature was broken by "Tidying up..." June 30 commit.
ago%!(EXTRA string=11 months)
ocornut
ecba972102
RangeSelect/MultiSelect: Cleanup unused comments/code.
ago%!(EXTRA string=11 months)
ocornut
1c7f3590a2
RangeSelect/MultiSelect: Fixed right-click handling in MultiSelectItemFooter() when not focused.
ago%!(EXTRA string=11 months)
ocornut
4141d6fba6
RangeSelect/MultiSelect: Demo: Delete items from menu.
ago%!(EXTRA string=11 months)
ocornut
3d962dd5a5
RangeSelect/MultiSelect: Further simplication of user code to support Deletion.
...
Provide standard RequestFocusItem storage.
ago%!(EXTRA string=11 months)
ocornut
a1d829eaf7
RangeSelect/MultiSelect: Maintain NavIdSelected for user. Simplify deletion demo.
ago%!(EXTRA string=11 months)
ocornut
1392cd3b9d
RangeSelect/MultiSelect: (Breaking) BeginMultiSelect() doesn't need two last params maintained by users. Moving some storage from user to core. Proper deletion demo.
ago%!(EXTRA string=11 months)
ocornut
2e38a62a63
RangeSelect/MultiSelect: Demo: first-draft of user-side deletion idioms.
...
(will need support from lib)
ago%!(EXTRA string=11 months)
ocornut
4ba6dc2a3f
RangeSelect/MultiSelect: Clarify and better enforce lifetime of BeginMultiSelect() value.
ago%!(EXTRA string=11 months)
ocornut
8a31490921
RangeSelect/MultiSelect: Tidying up/simpllifying MultiSelectItemFooter().
...
Intended to be entirely a no-op, merely a transform of source code for simplification. But committing separatey from behavior change in previous change.
ago%!(EXTRA string=11 months)
ocornut
59971d5aed
RangeSelect/MultiSelect: Remove the need for using IsItemToggledSelection(). Update comments.
...
This is the simple version that past our tests. MultiSelectItemFooter() is in need of a cleanup.
ago%!(EXTRA string=11 months)