ocornut
97ff9bd370
Nav: fixed c licking window decorations (e.g. resize borders) from losing focused item when within a child window using ImGuiChildFlags_NavFlattened.
...
In essence, using ImGuiFocusRequestFlags_RestoreFocusedChild here is a way to reduce changes caused by FocusWindow(), but it could be done more neatly.
See amended "nav_flattened" test.
2024-07-22 15:04:25 +02:00
ocornut
c3dca77a19
Demo: rework Property Editor.
2024-07-22 14:49:16 +02:00
ocornut
fd994943c2
Added a comment hinting at how to set IMGUI_API for shared librairies on e.g. Linux, macOS ( #7806 )
2024-07-22 11:06:49 +02:00
Thomas Stehle
da36336321
TabBar, Style: added style option for the size of the Tab-Bar Overline ( #7804 )
...
Amend 21bda2e
.
2024-07-22 10:58:16 +02:00
ocornut
eb72b5a8ee
Backends: SDL3: Update for API changes: SDL_GetGamepads() memory ownership change. ( #7807 )
2024-07-22 10:49:22 +02:00
ocornut
f9cda1fa24
Inputs: added SetItemKeyOwner(ImGuiKey key) in public API. ( #456 , #2637 , #2620 , #2891 , #3370 , #3724 , #4828 , #5108 , #5242 , #5641 )
2024-07-19 18:39:07 +02:00
ocornut
b6e313bc05
MultiSelect: using ImGuiMultiSelectFlags_NoRangeSelect ensure never having to interpolate between two ImGuiSelectionUserData.
2024-07-19 16:42:14 +02:00
ocornut
168ef39984
Demo: moved menu bar code to its own function.
2024-07-19 15:46:51 +02:00
ocornut
57eea6746e
Demo: moved some fields inside a struct.
2024-07-19 15:40:50 +02:00
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