ocornut
|
2546d0a0db
|
Demo: moved ExampleTreeNode, ExampleMemberInfo above in the demo file. Tidying up index.
+ change ExampleTreeNode::UID from ImGuiID to int to not suggest that the user ID needs to be of a certain type
|
2024-07-19 14:52:24 +02:00 |
|
ocornut
|
d7e605d430
|
Merge branch 'features/range_select'
|
2024-07-18 18:21:31 +02:00 |
|
ocornut
|
02c31a8dd1
|
MultiSelect: added Changelog for the feature. Removed IMGUI_HAS_MULTI_SELECT.
|
2024-07-18 18:19:22 +02:00 |
|
ocornut
|
2688562fd2
|
MultiSelect: Better document how TreeNode() is not trivially usable yet.
Will revert when the time is right.
|
2024-07-18 18:19:22 +02:00 |
|
ocornut
|
7814518049
|
MultiSelect: ImGuiSelectionBasicStorage: optimized for smaller insertion amounts in larger sets + fix caling batch select with same value.
|
2024-07-18 18:19:22 +02:00 |
|
ocornut
|
1b63522446
|
MultiSelect: Box-Select: handle Esc to disable box-select.
This avoid remove a one-frame delay when finishing box-select, where Esc wouldn't be routed to selection but to child.
|
2024-07-18 18:19:22 +02:00 |
|
ocornut
|
2697cfe354
|
MultiSelect: Box-Select: uses SetActiveIdUsingAllKeyboardKeys() to avoid nav interference, much like most drag operations.
|
2024-07-18 18:19:22 +02:00 |
|
ocornut
|
7d4de84ee3
|
MultiSelect: added courtesy ImGuiMultiSelectFlags_NavWrapX flag so we can demo this until a nav api is designed.
|
2024-07-18 18:19:22 +02:00 |
|
ocornut
|
d411c9054a
|
MultiSelect: minor tidying up.
Checkbox() was reworked in master effectively fixing render clipping when culled by BoxSelect2d's UnclipMode.
|
2024-07-18 18:19:22 +02:00 |
|
ocornut
|
3f34c83bc6
|
MultiSelect: added ImGuiMultiSelectFlags_NoAutoClearOnReselect + tweak flags comments. (#7424)
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
529c73ba21
|
MultiSelect: Shift+Tab doesn't enable Shift select on landing item.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
a8a1f29512
|
MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect2d. Which include not assuming one flag imply the other.
Amend 2024/05/31 commit.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
c52346850d
|
MultiSelect: ImGuiSelectionBasicStorage: added PreserveOrder, maintain implicit order data in storage.
Little tested but provided for completeness.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
df664329cb
|
MultiSelect: provide RangeDirection to allow selection handler to handler backward shift+click.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
3ac367ff41
|
MultiSelect: ImGuiSelectionBasicStorage: (breaking) rework GetNextSelectedItem() api to avoid ambiguity/failure when user uses a zero id.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
f472f17054
|
Demo: Assets Browser: added a way to disable sorting and hide sorting options.
This is mostly designed to showcase that on very large sets (e.g. 1 million) most of the time is likely spent on sorting.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
c07864f64a
|
MultiSelect: ImGuiSelectionBasicStorage: move function bodies to cpp file.
+ make ImGuiStorage::BuildSortByKey() less affected by msvc debug mode.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
2af3b2ac81
|
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.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
e61612a687
|
MultiSelect: ImGuiSelectionBasicStorage: rework to accept massive selections requests without flinching.
Batch modification + storage only keeps selected items.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
e1fd25051e
|
MultiSelect: ImGuiSelectionBasicStorage: added GetNextSelectedItem() to abstract selection storage from user. Amend Assets Browser demo to handle drag and drop correctly.
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
c3d7aa252b
|
MultiSelect: comments, header tweaks., simplication (some of it on wiki).
|
2024-07-18 18:19:21 +02:00 |
|
ocornut
|
db4898cb91
|
MultiSelect: added ImGuiSelectionExternalStorage helper. Simplify bool demo.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
f9caf4447a
|
MultiSelect: fixed ImGuiSelectionBasicStorage::Swap() helper.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
c94cf6f01f
|
MultiSelect: added ImGuiSelectionBasicStorage::GetStorageIdFromIndex() indirection to be easier on the reader.
Tempting to make it a virtual.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
ab995d3d4f
|
MultiSelect: (breaking) Added 'items_count' parameter to BeginMultiSelect(). Will enable extra features, and remove equivalent param from ImGuiSelectionBasicStorage::ApplyRequests(.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
443b034895
|
MultiSelect: mark parent child window as navigable into, with highlight. Assume user will always submit interactive items.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
f6b5caf82c
|
MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect1d, ImGuiMultiSelectFlags_BoxSelect2d -> ImGuiMultiSelectFlags_BoxSelect.
ImGuiMultiSelectFlags_BoxSelect1d being an optimization it is the optional flag.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
7bbbbea200
|
MultiSelect: Box-Select: fixes for checkboxes support. Comments.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
2f56df4839
|
MultiSelect: (breaking) renamed ImGuiSelectionBasicStorage::AdapterData to UserData.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
1113f13f83
|
MultiSelect: Box-Select: fixed "when dragging from void" implementation messing with calling BeginMultiSelect() without a selection size.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
81548cb6bf
|
MultiSelect: added GetMultiSelectState() + store LastSelectionSize as provided by user, convenient for quick debugging and testing.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
dc0a1682e3
|
MultiSelect: Box-Select: when dragging from void, first hit item sets NavId by simulating a press, so navigation can resume from that spot.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
65ebc0513b
|
MultiSelect: Box-Select: minor refactor, tidying up.
|
2024-07-18 18:19:20 +02:00 |
|
ocornut
|
9435a3185a
|
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.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
955210ae5b
|
MultiSelect: Demo: use Shortcut().
Got rid of suggestion to move Delete signal processing to BeginMultiSelect(), seems unnecessary.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
0be238ec58
|
MultiSelect: Box-Select: fix preventing focus. amend determination of scope_hovered for decorated/non-child windows + avoid stealing NavId. (#7424)
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
e7a734f78d
|
MultiSelect: added ImGuiMultiSelectFlags_NoAutoSelect, ImGuiMultiSelectFlags_NoAutoClear features + added Checkbox Demo
Refer to "widgets_multiselect_checkboxes" in imgui_test_suite.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
a639346fba
|
MultiSelect: Demo: make various child windows resizable, with synched heights for the dual list box demo.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
2111e3597b
|
MultiSelect: Comments + tweaked location for widgets to test ImGuiItemFlags_IsMultiSelect to avoid misleading into thinking doing it before ItemAdd() is necessary.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
dbc67bbf23
|
MultiSelect: Simplified ImGuiSelectionBasicStorage by using a single SetItemSelected() entry point.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
f36a03c317
|
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)
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
b13a78e6b2
|
MultiSelect: Fixed ImGuiMultiSelectFlags_SelectOnClickRelease over tree node arrow.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
9337151a01
|
MultiSelect: Box-Select: Fixed initial drag from not claiming hovered id, preventing window behind to move for a frame.
|
2024-07-18 18:19:19 +02:00 |
|
ocornut
|
3141d87ef8
|
MultiSelect: Box-Select: Fixed CTRL+drag from void clearing items.
|
2024-07-18 18:19:18 +02:00 |
|
ocornut
|
8312c75fef
|
MultiSelect: Added ImGuiMultiSelectFlags_NoRangeSelect. Fixed ImGuiMultiSelectFlags_ScopeRect not querying proper window hover.
|
2024-07-18 18:19:18 +02:00 |
|
ocornut
|
d439f590ab
|
MultiSelect: Comments + Assets Browser : Tweak colors.
|
2024-07-18 18:19:18 +02:00 |
|
ocornut
|
6c4bf8e56e
|
MultiSelect: Fixed ImGuiSelectionBasicStorage::ApplyRequests() incorrectly maintaining selection size on SelectAll.
|
2024-07-18 18:19:18 +02:00 |
|
ocornut
|
f3d77d8e71
|
MultiSelect: Box-Select: Further refactor to extra mode code away from multi-select function into box-select funcitons.
|
2024-07-18 18:19:18 +02:00 |
|
ocornut
|
907268a430
|
MultiSelect: Box-Select: Fixed scrolling on high framerates.
|
2024-07-18 18:19:18 +02:00 |
|
ocornut
|
5d9de14493
|
MultiSelect: Box-Select: Refactor: Renames.
Split into two commits to facilite looking into previous one if needed.
|
2024-07-18 18:19:18 +02:00 |
|