ocornut
e0282347db
MultiSelect: remove ImGuiSelectionRequest/ImGuiMultiSelectIO details from public api to reduce confusion + comments.
2024-07-18 18:19:17 +02:00
ocornut
0af6fbb51d
MultiSelect: added support for nested/stacked BeginMultiSelect().
...
Mimicking table logic, reusing amortized buffers.
2024-07-18 18:19:17 +02:00
ocornut
aa4d64be92
MultiSelect: Box-Select: added scroll support.
2024-07-18 18:19:17 +02:00
ocornut
f904a6646c
MultiSelect: Box-Select: added support for ImGuiMultiSelectFlags_BoxSelect.
...
(v11)
FIXME: broken on clipping demo.
2024-07-18 18:19:17 +02:00
ocornut
90305c57e4
MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_ClearOnClickWindowVoid -> ImGuiMultiSelectFlags_ClearOnClickVoid. Added ImGuiMultiSelectFlags_ScopeWindow, ImGuiMultiSelectFlags_ScopeRect.
2024-07-18 18:19:17 +02:00
ocornut
3d41994a63
MultiSelect: simplify clearing ImGuiMultiSelectTempData.
2024-07-18 18:19:17 +02:00
ocornut
33fc61a091
MultiSelect: use a single ImGuiMultiSelectIO buffer.
...
+ using local storage var in EndMultiSelect(), should be no-op.
2024-07-18 18:19:17 +02:00
ocornut
c527cba470
MultiSelect: we don't need to ever write to EndIO.RangeSrcItem as this is not meant to be used.
2024-07-18 18:19:16 +02:00
ocornut
6feff6ff05
MultiSelect: (Breaking) io contains a ImVector<ImGuiSelectionRequest> list.
2024-07-18 18:19:16 +02:00
ocornut
c3998b70cc
MultiSelect: clarified purpose and use of IsItemToggledSelection(). Added assert. Moved to multi-selection section of imgui.h.
2024-07-18 18:19:16 +02:00
ocornut
2765fdb43e
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).
2024-07-18 18:19:16 +02:00
ocornut
82de6c470b
MultiSelect: Added ImGuiMultiSelectFlags_SelectOnClickRelease to allow dragging an unselected item without altering selection + update drag and drop demo.
2024-07-18 18:19:16 +02:00
ocornut
5628dda5a5
MultiSelect: move shared logic to MultiSelectItemHeader().
...
No logic change AFAIK but added an indent level in MultiSelectItemHeader(). Logic changes will come in next commit.
2024-07-18 18:19:16 +02:00
ocornut
9da4efed2a
MultiSelect: moved RequestClear output so it'll match request list version better. Use Storage->RangeSrcItem in EndMultiSelect().
2024-07-18 18:19:16 +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
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
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
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
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
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
omar
554db6bc0f
MultiSelect: WIP range-select ( #1861 ) (rebased six millions times)
2024-07-18 18:19:11 +02:00
ocornut
0e485a2109
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl3.cpp
# imgui.cpp
# imgui_widgets.cpp
2024-07-18 17:56:27 +02:00
ocornut
070c046cd1
Internals: rename recently added TreeNodeIsOpen() -> TreeNodeGetOpen(). ( #7553 , #1131 , #2958 , #2079 , #722 )
...
Amend ac7d6fb
2024-07-17 20:01:55 +02:00
ocornut
7c6d4ff28d
TreeNode: Internals: facilitate dissociating item ID from storage ID (useful for 1861)
2024-07-17 19:20:39 +02:00
ocornut
669021be4c
Style: close button and collapse/window-menu button hover highlight made rectangular instead of round.
...
The reason they were round in the first place was to work better with rounded windows/frames.
However since the 4a8142449
rework #6749 we can naturally use a tigher bounding box and it seems to work ok either way.
2024-07-17 15:56:34 +02:00
ocornut
4247f190c2
Demo: Property Editor: rearrange code + replace use of bool to proper ImGuiChildFlags.
...
Amend 46691d1
2024-07-17 13:52:30 +02:00
ocornut
9c1f922b02
Fixed pvs-studio warning.
2024-07-16 17:19:12 +02:00
ocornut
3de75138d1
(Breaking) Renamed ImGuiSelectableFlags_DontClosePopups to ImGuiSelectableFlags_NoAutoClosePopups. ( #1379 , #1468 , #2200 , #4936 , #5216 , #7302 , #7573 )
2024-07-15 18:46:34 +02:00
ocornut
0de88a928d
Added ImGuiItemFlags_AutoClosePopups as a replacement for internal's ImGuiItemFlags_SelectableDontClosePopup. ( #1379 , #1468 , #2200 , #4936 , #5216 , #7302 , #7573 )
2024-07-15 18:46:34 +02:00
ocornut
7e0800e718
Added PushItemFlag(), PopItemFlag(), ImGuiItemFlags.
2024-07-15 18:38:18 +02:00
ocornut
bc9e5b62b6
Added ImGuiDataType_Bool for convenience.
2024-07-15 16:49:35 +02:00
ocornut
ac7d6fb5ca
Internals: Added TreeNodeIsOpen() to facilitate discoverability. ( #7553 , #1131 , #2958 , #2079 , #722 )
2024-07-15 11:31:00 +02:00
ocornut
5ea96c15cd
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_win32.cpp
2024-07-15 11:21:18 +02:00
ocornut
2d0baaabe6
TreeNode: rename/rework ImGuiNavTreeNodeData system to be usable by more features. ( #2920 , #1131 , #7553 )
...
Reworked to it is easier during TreeNode code to request extra data to be stored.
2024-07-03 18:59:26 +02:00
ocornut
3f61da7e8b
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# backends/imgui_impl_sdl3.h
# imgui.cpp
# imgui.h
# imgui_internal.h
2024-07-02 17:48:38 +02:00
ocornut
5496050f5f
Added TextLink(), TextLinkOpenURL() hyperlink widgets. ( #7660 )
2024-07-02 17:21:44 +02:00
ocornut
0f63d3e916
Internals: added FontScale storage.
2024-07-02 17:21:10 +02:00
ocornut
84cc72f372
Version 1.91.0 WIP
2024-07-01 19:02:42 +02:00
ocornut
3369cbd277
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl3.cpp
2024-07-01 17:10:12 +02:00
ocornut
cb16be3a3f
Version 1.90.9
2024-07-01 17:03:21 +02:00
ocornut
c47928ffc0
Checkbox: minor tidying up to simplify work on multi-select branch.
2024-06-28 18:33:57 +02:00
Kevin Coghlan
372eebbeb2
Fix typo, rename ImGuisliderFlags_WrapAround flag to ImGuiSliderFlags_WrapAround. ( #7752 , #7749 )
2024-06-28 18:06:16 +02:00
ocornut
138d9d0c21
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
2024-06-28 16:03:49 +02:00
ocornut
0403096a9d
Drags: added ImGuisliderFlags_WrapAround flag for DragInt(), DragFloat() etc. ( #7749 )
2024-06-28 15:59:36 +02:00
ocornut
3e7f1d42db
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui.cpp
# imgui.h
# imgui_draw.cpp
2024-06-18 17:45:17 -07:00
ocornut
21bda2ed99
TabBar, Style: added ImGuiTabBarFlags_DrawSelectedOverline and ImGuiCol_TabSelectedOverline, ImGuiCol_TabDimmedSelectedOverline.
2024-06-18 17:41:43 -07:00
ocornut
1b9593e889
Style: (Breaking) renamed ImGuiCol_TabActive -> ImGuiCol_TabSelected, ImGuiCol_TabUnfocused -> ImGuiCol_TabDimmed, ImGuiCol_TabUnfocusedActive -> ImGuiCol_TabDimmedSelected.
...
Amend #261 , #351
2024-06-18 17:37:29 -07:00
ocornut
7260bb51cf
Version 1.90.9 WIP
2024-06-07 16:57:01 +02:00
ocornut
6d948ab47e
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2024-06-06 17:52:55 +02:00
ocornut
6f7b5d0ee2
Version 1.90.8
2024-06-06 17:45:40 +02:00
ocornut
67d886fd63
Removed ImGuiButtonFlags_MouseButtonDefault_.
2024-06-06 17:25:16 +02:00
ocornut
f1eaf8d7c0
Internals: added SetNextItemRefVal(). ( #7305 )
2024-06-06 17:01:02 +02:00
ocornut
47db0698d2
InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_ParseEmptyRefVal, ImGuiInputTextFlags_DisplayEmptyRefVal. ( #7305 )
2024-06-06 16:51:15 +02:00
ocornut
3460014e05
Internals: avoid using bitfields in ImGuiNextItemData as it leads to extraneous packing. rename ImGuiDataTypeTempStorage to ImGuiDataTypeStorage. moved DataType section above Widgets.
2024-06-06 16:50:32 +02:00
ocornut
fdc084f532
Merge branch 'master' into docking
2024-06-03 19:08:37 +02:00
ocornut
109a8632d7
Combo: simplified Combo() API uses a list clipper.
...
Wasn't as trivial before supporting IncludeItemByIndex().
2024-05-28 18:24:01 +02:00
ocornut
222dd775fc
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
# imgui_internal.h
2024-05-28 17:11:57 +02:00
ocornut
5cbc34a10c
Scrollbar: clicking above or below the grab scrolls by one page, holding mouse button repeats scrolling. ( #7328 , #150 )
...
Remove absolute seeking entirely. Amend f02108085
.
2024-05-28 16:28:20 +02:00
ocornut
ed9eb880b5
Windows: Fixed altering FramePadding mid-frame not correctly affecting logic responsible for honoring io.ConfigWindowsMoveFromTitleBarOnly. ( #7576 , #899 )
...
Latching TitleBarHeight, MenuBarHeight in window.
2024-05-28 15:35:36 +02:00
ocornut
7f5d5c80b2
Internals, Tabbar: fixed TabBarGetCurrentTab() with tab_idx == 0. ( #7629 )
...
Thanks @VerySmallRoach. Amend 3d8885cbb
(#5853 , #5997 )
2024-05-28 10:11:01 +02:00
ocornut
1f9fc382c3
Version 1.90.8 WIP
...
Tidying up todo.txt
2024-05-28 10:09:31 +02:00
ocornut
2db79d0868
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2024-05-27 15:47:30 +02:00
ocornut
00ad3c65bc
Version 1.90.7
2024-05-27 15:47:04 +02:00
ocornut
5ecef2f321
Merge branch 'master' into docking
...
# Conflicts:
# examples/example_win32_directx10/main.cpp
# examples/example_win32_directx11/main.cpp
# examples/example_win32_directx12/main.cpp
# imgui.cpp
2024-05-23 17:25:02 +02:00