ocornut
9f115f3324
ImStrv: detect and fixed misuses of CalcTextSize() old signature. (9321)
2026-09-09 21:26:07 +02:00
ocornut
e95890cfd0
ImStrv: made length() returns an int as it simplify the most common case (of passing %.*s to printf)
2026-09-09 21:26:06 +02:00
ocornut
36d4913c85
ImStrv: Combo(), ListBox(): seems better to not introduce the ImStrv [] versions?
...
As 1) user is unlikely to store that on their end. 2) nowadays with lambdas isn't an easy user-side conversion.
Then we limit explosion of an already messy API.
2026-09-09 21:26:06 +02:00
ocornut
56eb4c9357
ImStrv: convert Combo()/ListBox() to use ImStrv in their getters.
...
Didn't convert Combo() "const char* items_separated_by_zeros" as this doesn't translate well when used via a ImStrv constructor, may actually aim to obsolete.
Fixed for shadowing local variable warning on 2025/06/25.
2026-09-09 21:26:06 +02:00
ocornut
ed2fae996f
ImStrv: backtracked for now on supporting ImStrv for format strings.
...
It's widely incomplete and slow, requires a printf function taking non-zero-terminated format string to work.
Might do it eventually but it's much less a problem than labels. Format string are more frequently inlined in code and tend to be small, so existing solutions at call site can work better for now.
2026-09-09 21:26:05 +02:00
ocornut
fac8cee755
ImStrv: standardized code doing format copy, optimized ImStrStr
2026-09-09 21:26:05 +02:00
ocornut
84ccc62ad8
ImStrv: moved double char* function signatures under #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS blocks + fixed various compiles errors/warnings.
2026-09-09 21:26:05 +02:00
ocornut
675348f183
ImStrv: changed ImStrv xxx=NULL args to an explicit xxx=ImStrv()
...
This is mostly for the benefit of cimgui parser, ideally we would do without.
2026-09-09 21:26:04 +02:00
ocornut
46efe961e8
ImStrv: Step 2 - change ImStrv typedef to struct, perform all other logic conversion.
...
Squashed commits (initially a commit from rokups + many rework by ocornut. keeping them separate commits made rebasing unnecessarily tricking so merged from 2024/02)
ImStrv: many fixes (see details), added imconfig class extension example, added natvis description.
ImStrv: rework toward ensuring End is always set to constant can be compile time calculated
ImStrv: using length(), fix ambiguous empty() function, fix altered behaviors, removed unused operators.
ImStrv: various tweaks and fixes. removed ImGuiTextRange from ImGuiTextFilter, fix test engine hooks, removed constructor only used twice.
2026-09-09 21:26:04 +02:00
Rokas Kupstys
758c14efd5
ImStrv: Step 1 - change string type to ImStrv in API. (REBASED)
...
(last rebase amend 2024/12/11)
2026-09-09 21:26:03 +02:00
ocornut
367b2c24f3
Merge branch 'master' into docking
2026-09-09 21:25:09 +02:00
ocornut
e8602501bb
Mixed Value: various fixes. ( #5518 , #5677 , #6865 )
...
- With MixedValue+LiveEdit: a single edit that ends up with same output reports as edited.
- Standardize path sin TempInputscalar(), InputScalar(), InputTextEx().
- Refer to changes in imgui_test_suite, in particular "widgets_datatype_1", "widgets_status_liveedit_off",
2026-09-09 20:44:34 +02:00
ocornut
ea6d21687b
BeginComboPreview(): fixed issues with nesting. Previous comments were wrong. ( #1658 , #4168 )
2026-09-08 21:52:23 +02:00
ocornut
db5b735a5d
(Breaking) BeginComboPreview: removed ImGuiComboFlags_CustomPreview: now unnecessary + better detect issues ( #1658 , #4168 )
2026-09-08 19:38:42 +02:00
ocornut
32c3f6095a
BeginComboPreview: set/restore WorkRect.Max.x. ( #1658 , #4168 )
2026-09-08 17:44:56 +02:00
ocornut
148d128f6e
Mixed Value: use ImGuiCol_TextMixedValue (= ImGuiCol_TextDisabled). Set MixedValueLabel to null to display original value. ( #5518 , #5677 , #6865 )
2026-09-08 16:47:04 +02:00
ocornut
a2b7d6e792
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_dx10.cpp
# backends/imgui_impl_dx12.cpp
# backends/imgui_impl_metal.mm
# backends/imgui_impl_metal4.mm
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_sdlgpu3.cpp
# backends/imgui_impl_vulkan.cpp
# imgui.cpp
2026-09-07 19:52:24 +02:00
ocornut
334f484892
ColorEdit4, ColorPicker4: added support for ImGuiItemFlags_MixedValue. ( #5518 , #5677 , #6865 )
2026-09-07 19:48:28 +02:00
ocornut
dd32dace81
InputText: using MixedValue automatically sets ImGuiInputTextFlags_AutoSelectAll. ( #5518 , #5677 , #6865 )
2026-09-07 19:09:24 +02:00
ocornut
04b37d6d23
Added ImGuiItemFlags_MixedValue support for Drags, Sliders, InputScalar, InputText, RadioButton, Combo. ( #5518 , #5677 , #6865 )
2026-09-07 18:56:32 +02:00
ocornut
687f7fb8ac
Drags, Sliders: ongoing drags may be cancelled using Right-Mouse mouse button, reverting to the initial value. ( #8564 , #9534 )
2026-09-07 16:16:55 +02:00
ocornut
96b6eb7728
Fixed PVS-Studio false positives.
...
Not sure if there's a way to report them.
2026-09-04 12:37:48 +02:00
ocornut
f150bf09f9
Drags, Sliders: ongoing drags may be cancelled using Escape or Gamepad Triangle, reverting to the initial value. ( #8564 , #9534 )
2026-09-04 12:24:49 +02:00
ocornut
51c3c0c992
Sliders: moved code from SliderBehaviorT() to SliderBehavior().
...
Remove a level of indent too.
2026-09-03 17:28:48 +02:00
slowriot
7edd2b1f12
Sliders, Drags: adjust ScaleValueFromRatioT() to increase remapping precision (in theory). ( #9536 )
...
Omar: couldn't detect any output difference in test suite with large u64/s64 ranges drag/sliders.
I believe this is entirely theoretical and it's principal value is to shut Linter warnings
2026-09-03 15:42:24 +02:00
ocornut
1807b25b9a
ScaleValueFromRatioT: removed unnecessary check, amend f27af1b20.
2026-09-03 15:29:37 +02:00
ocornut
7e1b65d26d
Merge branch 'master' into docking
...
# Conflicts:
# imgui_internal.h
2026-09-02 17:27:51 +02:00
ocornut
a15761f11c
TreeNode: fixed UB shifts and general tree issues when using ImGuiTreeNodeFlags_DrawLinesXXX flags and over 32 deep. ( #9509 )
...
+ fix minor typo (#9533 )
2026-09-01 20:06:02 +02:00
ocornut
ebc7307db5
ColorButton, RenderColorRectWithAlphaCheckerboard: fixed issues/inconsistencies with checkerboard rendering when combining color alpha and global style alpha. ( #9511 )
...
Cleanup hacks in ColorButton(). Amend d851775c80 , e9ff7162b .
2026-08-31 18:04:03 +02:00
ocornut
fd74775a0d
ColorButton: fixed double style alpha multiply. Remove call to GetColorU32() in RenderColorRectWithAlphaCheckerboard() for consistency. ( #9511 )
...
The main fix is the change from GetColorU32() to ColorConvertFloat4ToU32() in calling code.
The change from GetColorU32() to manual multiply in RenderColorRectWithAlphaCheckerboard() is merely for consistency with other ::Render calls.
2026-08-31 17:29:10 +02:00
ocornut
19ead810d2
ColorButton, ColorEdit, ColorPicker: cancel-out alpha caused by BeginDisabled() so disabled color buttons have the same color. ( #9511 )
2026-08-31 17:29:10 +02:00
ocornut
d3c5ff395c
Drags, Sliders: fixed an overflow using ImGuiSliderFlags_Logarithmic with S32/S64 types. ( #9526 , #3361 , #1823 , #1316 , #642 )
2026-08-30 19:44:15 +02:00
ocornut
fd13a1e892
Merge branch 'master' into docking
...
# Conflicts:
# examples/example_apple_opengl2/main.mm
2026-08-19 13:39:46 +02:00
ocornut
46d39d56fe
Fixed GCC false positive. ( #9508 )
2026-08-07 18:42:39 +02:00
ocornut
551a0a6bc0
TextAligned, TextAlignedV: rework to always use provided width. ( #7024 , #9455 , #1980 )
2026-08-07 17:48:50 +02:00
ocornut
11bd4e7731
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2026-08-04 14:34:04 +02:00
ocornut
ebd752a0ec
Version 1.93.0 WIP
2026-08-03 14:42:56 +02:00
ocornut
b48d1afbe8
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2026-07-31 16:25:00 +02:00
ocornut
f1cc2ae15e
Version 1.92.9b
2026-07-31 16:14:42 +02:00
ocornut
448ef2baa9
DragXXX, SliderXXX: fixed a regression in 1.92.9 where clicking a previously Ctrl+Clicked field would flick it to text edit mode for a frame. ( #9476 , #701 )
2026-07-31 13:09:40 +02:00
ocornut
9b4eb24cee
Merge branch 'master' into docking
2026-07-25 13:45:27 +02:00
ocornut
01380c5797
Version 1.92.9
2026-07-25 13:28:06 +02:00
ocornut
93bd4f0adb
Merge branch 'master' into docking
...
# Conflicts:
# .github/workflows/build.yml
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_sdl2.cpp
# examples/example_apple_metal4/main.mm
# imgui.cpp
2026-07-16 15:56:36 +02:00
ocornut
26b8292635
Split ImGuiItemFlags_LiveEdit into ImGuiItemFlags_LiveEditText, ImGuiItemFlags_LiveEditScalar. Added Demo contents. ( #9476 , #701 )
...
cc #3936 , #3946 , #5904 , #6284 , #8149 , #8065 , #8665 , #9117 , #9299 , #700 , #1351 , #1875 , #2060 , #2215 , #2380 , #2550 , #3083 , #3338 , #3556 , #4373 , #4714 , #4885 , #5184,#5777, #6707 , #6766 , #8004 , #8303 , #8915 , #9308
2026-07-16 15:46:47 +02:00
ocornut
4853f5c96b
Internals: rename NextItemData.ItemFlags -> ItemFlagsSet
2026-07-16 15:46:40 +02:00
ocornut
18d63b12be
Added ImGuiItemFlags_LiveEdit flag, and much-awaited support for disabling it. ( #9476 , #701 )
...
cc #3936 , #3946 , #5904 , #6284 , #8149 , #8065 , #8665 , #9117 , #9299 , #700 , #1351 , #1875 , #2060 , #2215 , #2380 , #2550 , #3083 , #3338 , #3556 , #4373 , #4714 , #4885 , #5184,#5777, #6707 , #6766 , #8004 , #8303 , #8915 , #9308
2026-07-16 15:39:53 +02:00
ocornut
2392a52660
InputText: tag InputTextDeactivatedState with an elapsing frame. Avoid unnecessary InputTextDeactivateHook() call on manual deactivation. InputTextDeactivateHook() only takes a record when Edited + callback marks edited. ( #9476 , #701 )
...
for _NoLiveEdit it's easier than we don't use IsItemDeactivatedAfterEdit() in InputText()'s `if (g.InputTextDeactivatedState.ID == id)` block.
2026-07-16 15:39:52 +02:00
ocornut
b62bfd6b06
InputText: reworked io.ConfigInputTextEnterKeepActive mode so that pressing Ctrl+Enter or Shift+Enter still allows to deactivate.
...
cc #9239
2026-07-10 21:36:43 +02:00
ocornut
a23e9fb1b5
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
2026-07-08 15:10:22 +02:00
ocornut
f626c1c793
ColorPicker: added option to fix Saturation/Value triangle in wheel picker. Amends. ( #9337 )
...
ConfigColorPickerRotateTriangle -> !ImGuiColorEditFlags_PickerNoRotate
2026-07-07 16:18:34 +02:00