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
431caec3da
RangeSelect/MultiSelect: mark parent child window as navigable into, with highlight. Assume user will always submit interactive items.
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
d2fd78ea7c
RangeSelect/MultiSelect: Box-select: fixed "when dragging from void" implementation messing with calling BeginMultiSelect() without a selection size.
ago%!(EXTRA string=11 months)
ocornut
57ff7c4ef4
RangeSelect/MultiSelect: add GetMultiSelectState() + store LastSelectionSize as provided by user, convenient for quick debugging and testing.
ago%!(EXTRA string=11 months)
ocornut
b507b33509
RangeSelect/MultiSelect: Box-Select: when dragging from void, first hit item sets NavId by simulating a press, so navigation can resume from that spot.
ago%!(EXTRA string=11 months)
ocornut
0f35ebac60
RangeSelect/MultiSelect: Box-Select: minor refactor, tidying up.
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
e05496092e
RangeSelect/MultiSelect: Box-Select: fix preventing focus. amend determination of scope_hovered for decorated/non-child windows + avoid stealing NavId. (7424)
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
24926aa717
RangeSelect/MultiSelect: Demo: make various child windows resizable, with synched heights for the dual list box demo.
ago%!(EXTRA string=11 months)
ocornut
348561f99f
RangeSelect/MultiSelect: Comments + tweaked location for widgets to test ImGuiItemFlags_IsMultiSelect to avoid misleading into thinking doing it before ItemAdd() is necessary.
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
60305e39c2
RangeSelect/MultiSelect: Fixed ImGuiMultiSelectFlags_SelectOnClickRelease over tree node arrow.
ago%!(EXTRA string=11 months)
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)