ocornut
ba14c70b02
Comments. Fixed warnings.
2024-09-27 19:28:54 +02:00
ocornut
d1ea03b872
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_internal.h
2024-09-27 19:03:25 +02:00
ocornut
199a44e31e
Error Handling: fixed not rewinding to recorded tree and id stack size ( #1651 )
2024-09-27 19:00:57 +02:00
ocornut
30c29d291f
Error Handling: enabled experimental recovery systems. ( #1651 , #5654 )
...
Setup a couple of features to configure them, including ways to display error tooltips instead of assserting.
2024-09-27 19:00:56 +02:00
ocornut
8776678a46
Error Handling: replaced log callback in recovery functions with calls to IM_ASSERT_USER_ERROR(). ( #1651 , #5654 )
...
This commit is not meant to be functional as-is (it will break test engine recovery). This is mostly to reduce/remove noise from upcoming commits.
2024-09-27 19:00:56 +02:00
ocornut
2360061520
Error Handling, Debug Log: added IMGUI_DEBUG_LOG_ERROR() with special handling. ( #5855 , #1651 , #5654 )
2024-09-27 19:00:56 +02:00
ocornut
9644c51183
Error handling: rework error tooltip logic (will be reused by upcoming feature). ( #7961 , #7669 , #1651 )
...
+ Comments
2024-09-25 18:59:08 +02:00
ocornut
d0107f5da2
Internals: misc tweaks to facilitate branch merging.
2024-09-24 21:59:51 +02:00
ocornut
aa81272900
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui_internal.h
2024-09-24 20:31:26 +02:00
ocornut
726aad8e08
Refactor: moved ImGuiContext contructor to imgui.cpp
2024-09-24 20:24:51 +02:00
ocornut
44a73be6ea
TestEngine: log calls don't need testing hook active.
...
Docs: tweak comments on BeginDisabled(false)/EndDisabled() pairs.
2024-09-24 20:22:53 +02:00
ocornut
bc77041b57
Error Handling: fixed an issue ErrorCheckEndWindowRecover() when aborting in a child inside a tab bar. ( #1651 )
2024-09-23 16:45:28 +02:00
ocornut
10fe2b674a
Merge branch 'master' into docking
2024-09-20 18:43:48 +02:00
ocornut
fb410463e6
Scrollbar: added io.ConfigScrollbarScrollByPage setting. ( #8002 , #7328 )
2024-09-20 18:40:32 +02:00
ocornut
d0750ee4e7
Error check: clarified that carriage returns are emitted by our code. Added helper default callback. Comments. ( #1651 )
...
(doesn't affect test engine hook for it as trailing \n are trimmed anyhow)
2024-09-20 17:09:33 +02:00
ocornut
faca859043
Version 1.91.3 WIP
2024-09-19 15:51:06 +02:00
ocornut
bc77cccd31
Merge branch 'master' into docking
2024-09-19 14:52:43 +02:00
ocornut
a9f72ab681
Version 1.91.2
2024-09-19 14:47:13 +02:00
ocornut
8040c02b32
Viewports: fixed an issue where a window manually constrained to the main viewport while crossing over main viewport bounds isn't translated properly. ( #7985 )
...
Amend 967073ba3
2024-09-16 12:05:25 +02:00
ocornut
8326dabe5e
Merge branch 'master' into docking
2024-09-12 23:19:26 +02:00
ocornut
19accb14a9
InputText: amends: fixed undo-stack reconcile. fixed metrics crash. fixes character filtering. ( #7925 )
...
Refer to imgui_test_suite for tests.
2024-09-11 14:46:29 +02:00
ocornut
1674fe96ff
InputText: amends: add stb_textedit_text() api. ( #7925 )
...
It seems sensible to push this change in stb_textedit repo eventually.
2024-09-11 14:46:29 +02:00
ocornut
d1b7817959
InputText: amends: renames, coding style. ( #7925 )
2024-09-11 14:46:29 +02:00
alektron
abd07f6d30
InputText: added native support for UTF-8 text editing and god rid of the wchar buffer. ( #7925 )
...
WIP (requires subsequent commits for fixes)
2024-09-11 14:46:29 +02:00
ocornut
68aa9a86ec
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl2.cpp
2024-09-10 16:29:14 +02:00
ocornut
67cd4ead65
Added io.ConfigDebugHighlightIdConflicts debug feature! ( #7961 , #7669 )
...
Also #74 , #96 , #480 , #501 , #647 , #654 , #719 , #843 , #894 , #1057 , #1173 , #1390 , #1414 , #1556 , #1768 , #2041 , #2116 , #2330 , #2475 , #2562 , #2667 , #2807 , #2885 , #3102 , #3375 , #3526 , #3964 , #4008 , #4070 , #4158 , #4172 , #4199 , #4375 , #4395 , #4471 , #4548 , #4612 , #4631 , #4657 , #4796 , #5210 , #5303 , #5360 , #5393 , #5533 , #5692 , #5707 , #5729 , #5773 , #5787 , #5884 , #6046 , #6093 , #6186 , #6223 , #6364 , #6387 , #6567 , #6692 , #6724 , #6939 , #6984 , #7246 , #7270 , #7375 , #7421 , #7434 , #7472 , #7581 , #7724 , #7926 , #7937 and probably more.. Tagging to increase visibility!
2024-09-10 15:40:37 +02:00
ocornut
7694e89e89
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2024-09-09 16:54:40 +02:00
ocornut
15cb7d61f9
InputText: moved imstb_textedit.h include to imgui_widgets.cpp
2024-09-09 16:52:16 +02:00
ocornut
ca5701d458
InputText: moved all ImGuiInputTextState functions to not be inline.
2024-09-09 16:29:47 +02:00
ocornut
21d03edcb0
InputText: renamed namespace from stb_texture structure and added an indirection.
2024-09-09 16:22:55 +02:00
ocornut
a2366f9022
TextLinkOpenURL: display a verb in front the link. Update Gallery & other links. ( #7885 , #7660 )
2024-09-06 11:45:32 +02:00
ocornut
193c1e2366
Version 1.91.2 WIP
2024-09-05 20:03:23 +02:00
ocornut
f63c95a076
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl3.cpp
# docs/CHANGELOG.txt
# imgui.cpp
# imgui.h
# imgui_internal.h
2024-09-04 16:58:44 +02:00
ocornut
1dfbb100d6
Version 1.91.1
2024-09-04 16:53:43 +02:00
ocornut
f75cf62d2f
Tables: fixed resizing columns when using multiple synched instances that are layed out at different X positions. ( #7933 )
...
TableGetMaxColumnWidth() was using MinX from previous column. Storing info in column. Still incorrect interleaved data for multi-instances but it covers majority of use cases.
2024-09-04 15:46:24 +02:00
ocornut
f99febfd6f
Made BeginItemTooltip() and IsItemHovered() with delay flag infer an implicit ID using Pos only. ( #7945 , #1485 , #143 )
...
Perhaps a better approach would be to: store last non-zero ID + count successive zero ID and combine then.
2024-09-03 21:19:25 +02:00
ocornut
a93f7db875
Misc merge/small stuff from docking to reduce drift.
...
Among other things:
- merged cfd23957
(#7940 , #7823 ), also see ac64b6563
(#6716 ): moved above on 2023/08/14 in both branches.
- moving the RenderDimmedBackgrounds() call, from f422e782
, see 676497fe
intently undoing ac64b65
-> confusing. (#6716 )
2024-09-03 20:55:00 +02:00
ocornut
6d70c2dc73
Viewports: fixed misuse of inset_max.y, which typically would have broken using BeginViewportSideBar() with ImGuiDir_Down, regression from 1.91.0. ( #7940 , #7823 )
...
Amend cfd23957f
2024-09-03 20:02:04 +02:00
ocornut
4fc187dc60
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2024-08-23 19:19:22 +02:00
ocornut
947961b7b4
Fixed Clang17 C++26 warning. ( #7383 )
...
Unable to repro locally for now.
2024-08-23 15:51:05 +02:00
ocornut
0b9adc2c79
BeginChild: (BREAKING) renamed ImGuiChildFlags_Border to ImGuiChildFlags_Borders.
...
Amend 7713c2925
+ renamed similar argument in other functions.
2024-08-23 15:28:42 +02:00
ocornut
d474ed7f78
InputText: Internals: store Scroll.y as it seems sane to (internally) expose it in a way that's agnostic of our use of a child window ( #7913 , #383 )
2024-08-23 12:47:40 +02:00
ocornut
fed4841bd4
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# imgui.cpp
# imgui.h
# imgui_internal.h
2024-08-22 20:26:59 +02:00
ocornut
9ff60ae31d
IO: (BREAKING) moved GetIO().PlatformSetImeDataFn to GetPlatformIO(.Platform_SetImeDataFn. ( #7660 )
2024-08-22 20:11:55 +02:00
ocornut
e6460722ea
IO: Added GetPlatformIO(), ImGuiPlatformIO, currently empty.
2024-08-22 18:17:42 +02:00
ocornut
fabceaf036
Internals: renamed IsModKey() -> IsLRModKey() and GetModForModKey() -> GetModForLRModKey() to be more explicit.
2024-08-19 18:28:56 +02:00
ocornut
a18f020072
Viewports: added platform_io.Platform_GetWindowWorkAreaInsets() hook. ( #7823 )
2024-08-01 19:10:22 +02:00
ocornut
d8c98c8c14
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
2024-08-01 19:07:53 +02:00
ocornut
cfd23957fb
Viewports: rework viewport's WorkOffset (positive top-left, negative top-right0 into WorkInset (positive everywhere). ( #7823 )
2024-08-01 19:04:46 +02:00
ocornut
9f8f5e1145
MultiSelect+TreeNode: default open behavior is OpenOnDoubleClick + OpenOnArrow when used in a multi-select context without any OpenOnXXX flags set. ( #7850 )
2024-08-01 17:28:47 +02:00
ocornut
dcf54782d4
Version 1.91.WIP
2024-07-31 16:34:28 +02:00
ocornut
139e99ca37
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_demo.cpp
2024-07-30 16:57:42 +02:00
ocornut
8199457a7d
Version 1.91.0
2024-07-30 16:56:31 +02:00
ocornut
6df1a06fc3
Merge branch 'master' into docking
2024-07-29 23:18:54 +02:00
ocornut
df38704926
Added SetNextItemStorageID() for tree nodes. ( #7553 , #6990 , #3823 , #1131 )
...
Undo/amend 7c6d4ff
.
2024-07-29 22:31:52 +02:00
ocornut
b847c41437
MultiSelect: BoxSelect: fixed using in frozen table. ( #7821 , #5143 ) + added Demo.
...
Amend 0b4a1a40
2024-07-29 15:35:57 +02:00
ocornut
5c9825c16d
Viewports: update fallback monitor to primary monitor if there's one.
...
Amend 4b9bc490
.
+ metrics: display fallback monitor.
2024-07-29 12:28:42 +02:00
ocornut
b3ba6b3095
Added io.ConfigNavSwapGamepadButtons to swap Activate/Cancel (A<>B) buttons, to match the typical "Nintendo/Japanese consoles" button layout when using Gamepad navigation. ( #787 , #5723 )
2024-07-26 14:07:29 +02:00
ocornut
3552df562e
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
2024-07-25 16:41:56 +02:00
ocornut
4227402b2f
Internals: removed GetContentRegionMaxAbs() which was only meaningfully used in place of GetContentRegionAvail().
2024-07-25 16:10:18 +02:00
ocornut
55f54fa512
Internals: comment out obsolete g.ActiveIdUsingNavInputMask obsoleted two years ago. ( #4921 , #4858 , #787 , #1599 , #323 )
...
Use SetKeyOwner(ImGuiKey_Escape, g.ActiveId); instead. Amend 8b8a61bd
2024-07-25 15:11:08 +02:00
ocornut
ed356dc181
MultiSelect: BoxSelect: fixed box-select from void setting nav id multiple times.
2024-07-25 14:46:25 +02:00
ocornut
a285835ac4
MultiSelect: add internal MultiSelectAddSetAll() helper.
2024-07-24 19:00:36 +02:00
ocornut
79b77d91c9
MultiSelect: sequential SetRange merging not generally handled by box-select path, useful for others.
2024-07-24 18:47:50 +02:00
ocornut
b67b375ae6
Debug Log: fixed incorrect checkbox layout when partially clipped., doesn't parse 64-bits hex value as ImGuiID lookups.
2024-07-24 16:04:10 +02:00
ocornut
02cc7d451c
Merge branch 'master' into docking
...
# Conflicts:
# imgui_demo.cpp
2024-07-19 18:49:25 +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
fd77815f9f
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_demo.cpp
2024-07-18 18:22:26 +02:00
ocornut
02c31a8dd1
MultiSelect: added Changelog for the feature. Removed IMGUI_HAS_MULTI_SELECT.
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
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
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
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
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
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
ocornut
75bac1aac6
MultiSelect: Box-Select: Refactor into its own structure, designed for single-instance but closer to being reusable outside Multi-Select.
...
Kept same member names.
2024-07-18 18:19:18 +02:00
ocornut
15391762dd
MultiSelect: Box-Select: Added ImGuiMultiSelectFlags_BoxSelect2d support. Enabled in Asset Browser. Selectable() supports it.
2024-07-18 18:19:18 +02:00
ocornut
1ac469b50f
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.
2024-07-18 18:19:18 +02:00
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
6feff6ff05
MultiSelect: (Breaking) io contains a ImVector<ImGuiSelectionRequest> list.
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
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
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
c0035705ca
MultiSelect: Further simplication of user code to support Deletion.
...
Provide standard RequestFocusItem storage.
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
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