Commit Graph

2062 Commits

Author SHA1 Message Date
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