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.
2024-07-18 18:19:15 +02:00
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.
2024-07-18 18:19:15 +02:00
ocornut
6ddc5f38af
MultiSelect: Demo: added simpler demo using Clipper. Clarify RangeSrcPassedBy doc.
2024-07-18 18:19:15 +02:00
ocornut
c3753809b1
MultiSelect: Demo: rework ExampleSelection names to map better to typical user code + variety of Comments tweaks.
2024-07-18 18:19:15 +02:00
ocornut
ff95fdb668
MultiSelect: (Breaking) RequestSetRange's parameter are RangeFirstItem...RangeLastItem (which was always ordered unlike RangeSrcItem...RangeDstItme). Removed RangeDstItem. Removed RangeDirection.
2024-07-18 18:19:15 +02:00
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?
2024-07-18 18:19:15 +02:00
ocornut
6821401a3f
MultiSelect: Tweak debug log to print decimal+hex values for item data.
...
Struggled to get standard PRIX64 to work on CI.
2024-07-18 18:19:15 +02:00
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.
2024-07-18 18:19:15 +02:00
ocornut
e82b49d2d4
MultiSelect: (Breaking) Use ImGuiSelectionUserData (= ImS64) instead of void* for selection user data.
...
Less confusing for most users, less casting.
2024-07-18 18:19:15 +02:00
ocornut
140a2f0565
MultiSelect: Comments, tweaks.
...
+ Alignment to reduce noise on next commit.
2024-07-18 18:19:15 +02:00
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.
2024-07-18 18:19:15 +02:00
ocornut
0cf376348b
MultiSelect: Cleanup unused comments/code.
2024-07-18 18:19:14 +02:00
ocornut
ab9326f4ae
MultiSelect: Fixed right-click handling in MultiSelectItemFooter() when not focused.
2024-07-18 18:19:14 +02:00
ocornut
e3616e151f
MultiSelect: Demo: Delete items from menu.
2024-07-18 18:19:14 +02:00
ocornut
c0035705ca
MultiSelect: Further simplication of user code to support Deletion.
...
Provide standard RequestFocusItem storage.
2024-07-18 18:19:14 +02:00
ocornut
df1eeb9a20
MultiSelect: Maintain NavIdSelected for user. Simplify deletion demo.
2024-07-18 18:19:14 +02:00
ocornut
9223ffc255
MultiSelect: (Breaking) BeginMultiSelect() doesn't need two last params maintained by users. Moving some storage from user to core. Proper deletion demo.
2024-07-18 18:19:14 +02:00
ocornut
564dde0ee3
MultiSelect: Demo: first-draft of user-side deletion idioms.
...
(will need support from lib)
2024-07-18 18:19:14 +02:00
ocornut
387fc13894
MultiSelect: Clarify and better enforce lifetime of BeginMultiSelect() value.
2024-07-18 18:19:14 +02:00
ocornut
961b81c362
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.
2024-07-18 18:19:14 +02:00
ocornut
1ea9ca748c
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.
2024-07-18 18:19:14 +02:00
ocornut
6ef70a97fd
MultiSelect: Remove ImGuiMultiSelectFlags_NoUnselect because I currently can't find use for this specific design.
...
And/or it seem partly broken.
2024-07-18 18:19:14 +02:00
ocornut
ccf43d6a96
MultiSelect: (Breaking) Renamed 'RangeValue' -> 'RangeSelected' + amend comments.
2024-07-18 18:19:14 +02:00
ocornut
a83326bc52
MultiSelect: (Breaking) Renamed 'RangeSrc -> 'RangeSrcItem', "RangeDst' -> 'RangeDstItem'
...
This is necessary to have consistent names in upcoming fields (NavIdItem etc.)
2024-07-18 18:19:13 +02:00
ocornut
a39f9e7661
MultiSelect: Internals rename of IO fields to avoid ambiguity with io/rw concepts + memset constructors, tweaks.
...
debug
2024-07-18 18:19:13 +02:00
ocornut
c61ada200f
MultiSelect: Demo tweak. Removed multi-scope from Advanced (too messy), made it a seperate mini-demo.
2024-07-18 18:19:13 +02:00
ocornut
35b5ebc9b5
MultiSelect: (Breaking) Rename ImGuiMultiSelectData to ImGuiMultiSelectIO.
2024-07-18 18:19:13 +02:00
ocornut
11bcae1ebd
MultiSelect: refactor before introducing persistant state pool and to facilitate adding recursion + debug log calls.
...
This is mostly the noisy/shallow stuff committed here, to get this out of the way.
2024-07-18 18:19:13 +02:00
ocornut
5d71314f71
MultiSelect: removed DragDropActive/preserve_existing_selection logic which seems unused + comments.
...
Can't find trace of early prototype for range-select but I couldn't find way to trigger this anymore. May be wrong. Will find out.
2024-07-18 18:19:13 +02:00
ocornut
85954c845e
MultiSelect: Enter can alter selection if current item is not selected.
2024-07-18 18:19:13 +02:00
ocornut
d2f208a30c
MultiSelect: made SetNextItemSelectionData() optional to allow disjoint selection (e.g. with a CollapsingHeader between items). Amend demo.
2024-07-18 18:19:13 +02:00
ocornut
815c61b82e
MultiSelect: Fixed needing to set RangeSrcPassedBy when not using clipper.
2024-07-18 18:19:13 +02:00
ocornut
78cb1661cb
MultiSelect: Shallow tweaks/refactors.
...
Including moving IsFocused back internally for now.
2024-07-18 18:19:13 +02:00
ocornut
a05700e327
MultiSelect: Enter doesn't alter selection (unlike Space).
...
Fix for changes done in 5606.
2024-07-18 18:19:13 +02:00
ocornut
35bbadcf0c
MultiSelect: Added ImGuiMultiSelectFlags_ClearOnClickWindowVoid. + Demo: showcase multiple selection scopes in same window.
2024-07-18 18:19:13 +02:00
ocornut
b91ae122e1
MultiSelect: Demo: Added pointer indirection and indent level.
...
This is to reduce noise for upcoming commits, ahead of adding a loop here.
2024-07-18 18:19:12 +02:00
ocornut
19086c1c48
MultiSelect: Added ImGuiMultiSelectFlags_ClearOnEscape (unsure of best design), expose IsFocused for custom shortcuts.
2024-07-18 18:19:12 +02:00
ocornut
919cac1482
MultiSelect: Demo: Add a simpler version.
2024-07-18 18:19:12 +02:00
ocornut
ad5d3c9bff
MultiSelect: Fixed issue with Ctrl+click on TreeNode + amend demo to test drag and drop.
2024-07-18 18:19:12 +02:00
ocornut
b9721c1ed7
MultiSelect: Temporary fix/work-around for child/popup to not inherit MultiSelectEnabled flag, until we make mulit-select data stackable.
2024-07-18 18:19:12 +02:00
omar
00c4b8f2a3
MultiSelect: Fix testing key mods from after the nav request (remove need to hold the mod longer)
2024-07-18 18:19:12 +02:00
omar
3ba3f0d905
MultiSelect: Fix Selectable() ambiguous return value, clarify need to use IsItemToggledSelection().
2024-07-18 18:19:12 +02:00
omar
0479b188d0
MultiSelect: Comments. Tweak demo.
2024-07-18 18:19:12 +02:00
omar
9aeebd24f7
MultiSelect: Fixed CTRL+A not testing focus scope id. Fixed CTRL+A not testing active id. Added demo code.
...
Comments.
2024-07-18 18:19:12 +02:00
ocornut
7abda179af
MultiSelect: Fix for TreeNode following merge of 011d4755
. Demo: basic test for tree nodes.
2024-07-18 18:19:12 +02:00
omar
9c7183dd04
MultiSelect: Transition to use FocusScope bits merged in master.
...
Preserve ability to shift+arrow into an item that is part of FocusScope but doesn't carry a selection without breaking selection.
2024-07-18 18:19:12 +02:00
omar
4afbfd5e71
MultiSelect: Renamed SetNextItemMultiSelectData() to SetNextItemSelectionUserData()
2024-07-18 18:19:12 +02:00
omar
17c4c2154a
MultiSelect: Demo sharing selection helper code. Fixed static analyzer warnings.
2024-07-18 18:19:12 +02:00
omar
57da88093f
MultiSelect: Added IMGUI_HAS_MULTI_SELECT define. Fixed right-click toggling selection without clearing active id, could lead to MarkItemEdited() asserting. Fixed demo.
2024-07-18 18:19:11 +02:00
ocornut
8947c35fa1
MultiSelect: Removed SelectableSpacing as I'm not sure it is of use for now (history insert)
2024-07-18 18:19:11 +02:00