ocornut
62ad5f43bf
RangeSelect/MultiSelect: ImGuiSelectionBasicStorage: simplify by removing compacting code (compacting may be opt-in?).
...
GetNextSelectedItem() wrapper gives us more flexibility to work on this kind of stuff now.
ago%!(EXTRA string=11 months)
ocornut
d062f4d6b1
RangeSelect/MultiSelect: ImGuiSelectionBasicStorage: rework to accept massive selections requests without flinching.
...
Batch modification + storage only keeps selected items.
ago%!(EXTRA string=11 months)
ocornut
36f940f652
RangeSelect/MultiSelect: ImGuiSelectionBasicStorage: added GetNextSelectedItem() to abstract selection storage from user. Amend Assets Browser demo to handle drag and drop correctly.
ago%!(EXTRA string=11 months)
ocornut
cd85a75b36
RangeSelect/MultiSelect: comments, header tweaks., simplication (some of it on wiki).
ago%!(EXTRA string=11 months)
ocornut
8346e7f4af
RangeSelect/MultiSelect: added ImGuiSelectionExternalStorage helper. Simplify bool demo.
ago%!(EXTRA string=11 months)
ocornut
ce5d1b2fcb
RangeSelect/MultiSelect: fixed ImGuiSelectionBasicStorage::Swap() helper.
ago%!(EXTRA string=11 months)
ocornut
628902d97e
RangeSelect/MultiSelect: added ImGuiSelectionBasicStorage::GetStorageIdFromIndex() indirection to be easier on the reader.
...
Tempting to make it a virtual.
ago%!(EXTRA string=11 months)
ocornut
deedb600f2
RangeSelect/MultiSelect: (breaking) Added 'items_count' parameter to BeginMultiSelect(). Will enable extra features, and remove equivalent param from ImGuiSelectionBasicStorage::ApplyRequests(.
ago%!(EXTRA string=11 months)
ocornut
bd5620b11f
RangeSelect/MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect1d, ImGuiMultiSelectFlags_BoxSelect2d -> ImGuiMultiSelectFlags_BoxSelect.
...
ImGuiMultiSelectFlags_BoxSelect1d being an optimization it is the optional flag.
ago%!(EXTRA string=11 months)
ocornut
35b4a502aa
RangeSelect/MultiSelect: Box-select: fixes for checkboxes support. Comments.
ago%!(EXTRA string=11 months)
ocornut
5c7e4350bc
RangeSelect/MultiSelect: (breaking) renamed ImGuiSelectionBasicStorage::AdapterData to UserData.
ago%!(EXTRA string=11 months)
ocornut
78494c92a2
RangeSelect/MultiSelect: (Breaking) Added current_selection_size to BeginMultiSelect().
...
Required for shortcut routing so we can e.g. have Escape be used to clear selection THEN to exit child window.
ago%!(EXTRA string=11 months)
ocornut
83de5e25ad
RangeSelect/MultiSelect: Demo: use Shortcut().
...
Got rid of suggestion to move Delete signal processing to BeginMultiSelect(), seems unnecessary.
ago%!(EXTRA string=11 months)
ocornut
e3df9e8a7a
RangeSelect/MultiSelect: added ImGuiMultiSelectFlags_NoAutoSelect, ImGuiMultiSelectFlags_NoAutoClear features + added Checkbox Demo
...
Refer to "widgets_multiselect_checkboxes" in imgui_test_suite.
ago%!(EXTRA string=11 months)
ocornut
408e62dbfe
RangeSelect/MultiSelect: Simplified ImGuiSelectionBasicStorage by using a single SetItemSelected() entry point.
ago%!(EXTRA string=11 months)
ocornut
80c6bc8738
RangeSelect/MultiSelect: (Breaking) merge ImGuiSelectionRequestType_Clear and ImGuiSelectionRequestType_SelectAll into ImGuiSelectionRequestType_SetAll., rename ImGuiSelectionRequest::RangeSelected to Selected.
...
The reasoning is that it makes it easier/faster to write an adhoc ImGuiMultiSelectIO handler (e.g. trying to apply multi-select to checkboxes)
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
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
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
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
a882002c0b
RangeSelect/MultiSelect: (Breaking) io contains a ImVector<ImGuiSelectionRequest> list.
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
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
79b3439fda
RangeSelect/MultiSelect: ImGuiMultiSelectIO's field are not used during loop anymore, stripping them out of comments.
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
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
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
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
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)
ocornut
107ea818de
RangeSelect/MultiSelect: Remove ImGuiMultiSelectFlags_NoUnselect because I currently can't find use for this specific design.
...
And/or it seem partly broken.
ago%!(EXTRA string=11 months)
ocornut
11a6d47b38
RangeSelect/MultiSelect: (Breaking) Renamed 'RangeValue' -> 'RangeSelected' + amend comments.
ago%!(EXTRA string=11 months)
ocornut
8790b8136d
RangeSelect/MultiSelect: (Breaking) Renamed 'RangeSrc -> 'RangeSrcItem', "RangeDst' -> 'RangeDstItem'
...
This is necessary to have consistent names in upcoming fields (NavIdItem etc.)
ago%!(EXTRA string=11 months)
ocornut
de974955e6
RangeSelect/MultiSelect: Internals rename of IO fields to avoid ambiguity with io/rw concepts + memset constructors, tweaks.
...
debug
ago%!(EXTRA string=11 months)