Commit Graph

1386 Commits

Author SHA1 Message Date
ocornut
29486b3317 ImStrv: made length() returns an int as it simplify the most common case (of passing %.*s to printf) 2026-03-13 17:09:46 +01:00
ocornut
29ce51e740 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-03-13 17:09:45 +01:00
ocornut
65b6243083 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-03-13 17:09:45 +01:00
ocornut
9ef854390b 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-03-13 17:09:45 +01:00
ocornut
d113ebd68c ImStrv: standardized code doing format copy, optimized ImStrStr 2026-03-13 17:09:45 +01:00
ocornut
cf0b502fd6 ImStrv: moved double char* function signatures under #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS blocks + fixed various compiles errors/warnings. 2026-03-13 17:09:45 +01:00
ocornut
08454a5e5e 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-03-13 17:09:44 +01:00
ocornut
366e1a9e45 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-03-13 17:09:44 +01:00
Rokas Kupstys
9f6b804e58 ImStrv: Step 1 - change string type to ImStrv in API. (REBASED)
(last rebase amend 2024/12/11)
2026-03-13 17:09:44 +01:00
ocornut
fd752d8357 InputText: Fixed a glitch when using ImGuiInputTextFlags_ElideLeft where the local x offset would be incorrect during the deactivation frame. (#9298) 2026-03-13 16:32:39 +01:00
ocornut
d02c645e38 Nav: short Gamepad Activation press on InputText() always activate with Text Input mode. 2026-03-13 15:07:46 +01:00
ocornut
b76ab6232d Nav: changed Gamepad mapping for "Activate with Text Input" action from FaceUp press to FaceDown long press. (#8803, #787) 2026-03-13 15:07:46 +01:00
ocornut
5aa7d61139 InputText: reworked so that io.ConfigInputTextEnterKeepActive reactivate in order for e.g. IsItemDeactivatedAfterEdit() to work. Amends. (#9001, #9115)
Rework. Fixes dangling InputTextReactivateId in case of field being hidden on activation.
2026-03-11 20:33:18 +01:00
xttt
03a9946a14 InputText: reworked so that io.ConfigInputTextEnterKeepActive reactivate in order for e.g. IsItemDeactivatedAfterEdit() to work. (#9001, #9115) 2026-03-11 20:15:48 +01:00
ocornut
5dd56d4bb5 Demo: add an option to enable ImGuiSliderFlags_ColorMarkers in Multi-Components section + fixed warnings. 2026-03-09 18:01:37 +01:00
ocornut
41765fbda7 Scrollbar: extend hit-testing bounding box when window is sitting at the edge of a viewport. (#9276) 2026-03-06 18:03:27 +01:00
ocornut
11acd9f5cb Sliders: extracted code into TempInputIsClampEnabled() helper for reuse.
Toward #9164, #76
2026-02-27 00:04:51 +01:00
ocornut
238651ffa3 Sliders: shallow rework of TempInputScalar().
Toward #9164, #76
2026-02-27 00:00:42 +01:00
ocornut
14e0c70f88 Sliders: removed unnecessary is_logarithmic parameters as they can be inferred. (#3786, #1823, #1316, #642) 2026-02-26 21:25:14 +01:00
ocornut
ef022c5e0a Separator: added and following style.SeparatorSize. (#2657, #9263)
Reapply c5d83d8a from 1.70 which was reverted in 9534ef9b2.
2026-02-26 17:21:57 +01:00
ocornut
c40226e9de CloseButton, InputText: scale thickness to integer amount when using style.ScaleAllSizes(). (#7031) 2026-02-25 22:16:20 +01:00
ocornut
68a91d3060 InputText: Shift+Enter in multi-line editor always adds a new line. (#9239) 2026-02-24 17:10:56 +01:00
ocornut
dbee23e09c Commented out legacy signatures for Combo()/ListBox() which were obsoleted in 1.90.
Amend b101cf4.
2026-02-23 15:21:20 +01:00
ocornut
c234426f89 TreeNode: comments on ImGuiTreeNodeFlags_Leaf. (#4833) 2026-02-19 16:32:14 +01:00
ocornut
0653a0d42a Demo: use ImGui version of TreeNodeGetOpen/TreeNodeSetOpen + comments. 2026-02-18 16:53:23 +01:00
ocornut
b8a1f74fd9 Version 1.92.7 WIP
+ minor demo tweaks.
2026-02-18 16:05:51 +01:00
ocornut
e118ea06e0 Version 1.92.6 2026-02-17 17:45:07 +01:00
ocornut
f921abe7e7 InputTextMultiline(): fixed a minor bug where Shift+Wheel would allow a small horizontal scroll offset. (#9249) 2026-02-17 17:44:42 +01:00
Laurenz Altenmüller
fbe973a8d0 Cast this to (void*) in zero-clearing memset calls to fix -Wnontrivial-memcall (#9247, #8295, #8129, #8135)
Clang 20+ warns on memset(this, ...) for non-trivially copyable types via -Wnontrivial-memcall.
Should separately investigate -Wnonontrivial-memaccess vs -Wnonontrivial-memcall.
2026-02-16 16:29:00 +01:00
ocornut
4b8e41cffb TabBar: expose NextScrollToTabId to internal API. 2026-02-02 17:08:38 +01:00
ocornut
5166bec5d8 Scrollbar: rounding corners selected based on a generic helper.
CalcRoundingFlagsForRectInRect() is backported and used multiple times by docking.
2026-01-29 17:23:28 +01:00
Tom Seddon
ab6c9d9b12 Ignore -Wsign-conversion warnings when building with gcc. (#9192)
Co-authored-by: Tom Seddon <tom@trlinux>
2026-01-26 11:51:22 +01:00
ocornut
d12b1a938e Demo: improved Selectable() demos. (#9193) 2026-01-26 11:45:32 +01:00
ocornut
3050f653cb Menus, Nav: made navigation into menu-bar auto wrap on X axis. (#9178) 2026-01-22 17:33:35 +01:00
ocornut
cb3b7ff4fb InputText: added mGuiInputTextCallbackData::EventActive helpers. (#9174) 2026-01-21 18:46:38 +01:00
ocornut
d448045669 InputText: Added ImGuiInputTextCallbackData::ID field. 2026-01-21 18:34:28 +01:00
ocornut
42b7704b70 InputText: add ImGuiInputTextState::SetSelection() helper + make TextSrc valid outside scope for non-read only fields. (#9174) 2026-01-21 18:19:03 +01:00
ocornut
12223cc3e9 Error handling: rework macros, add IM_ASSERT_USER_ERROR_RET(), IM_ASSERT_USER_ERROR_RETV() to simplify code. 2026-01-19 12:16:10 +01:00
ocornut
a1dfaf4869 ImageButton() doesn't use a clamped style.FrameRounding value but instead adjust inner image rounding when FramePadding > FrameRounding. (#2942, #845) 2026-01-14 15:55:07 +01:00
ocornut
7143d711bf Images, Style: added style.ImageRounding, ImGuiStyleVar_ImageRounding to configure rounding of Image() widgets. (#2942, #845)
Moving border drawing above AddImage() call, should not make a difference for square images.
2026-01-14 15:55:03 +01:00
ocornut
0d08927dae Error handling: Improve error handling and recovery for EndMenu()/EndCombo(). (#1651, #9165, #8499) 2026-01-14 14:59:39 +01:00
ocornut
791ad9b82d InvisibleButton: allow calling with size (0,0) to fit to available content size. (#9166, #7623) 2026-01-13 16:15:48 +01:00
ocornut
1566c96ccd InputText, Nav: fixed remote/shortcut InputText() not teleporting mouse cursor when nav cursor is active and io.ConfigNavMoveSetMousePos is enabled.
Motivated by this, also made SetFocusID() immediately set g.NavIdIsAlive, which is more correct and might be other (positive) subtle side effects.
2026-01-08 17:04:52 +01:00
ocornut
9ce41a92c3 Misc/shallow merges from docking branch to reduce small drift. 2026-01-08 14:31:25 +01:00
ocornut
4e7c05504a Renamed IM_ARRAYSIZE() -> IM_COUNTOF(). Kept legacy name for now. 2025-12-17 14:30:01 +01:00
ocornut
0d2dd30ee9 Tabs: minor tweaks to facilitate mods altering spacing. 2025-12-11 17:17:57 +01:00
ocornut
60f8b0733c Rework color marker internals to facilitate arbitrary override using SetNextItemColorMarker().
Amend fa4b47c
2025-12-05 18:28:55 +01:00
ocornut
fa4b47c5e2 Added RGBA color markers to ColorEdit3/ColorEdit4 + opt-in ImGuiSliderFlags_ColorMarkers for Drags/Sliders.
+ Added ImGuiColorEditFlags_NoColorMarkers
+ Added style.ColorMarkerSize.
2025-12-05 16:32:48 +01:00
ocornut
d1e262ad55 Internals: refactor RenderRectFilledRangeH() into RenderRectFilledInRangeH() to take absolute coordinates instead of normalized ones.
Amend 01d4bf299a (#1296)
2025-12-04 16:13:12 +01:00
ocornut
620a33dd85 TreeNode: fixed highlight position when used inside a line with a large text baseline offset.
Most old logic e.g. df749e3f13, ec0e953cca. Never quite worked for this situation.
2025-11-27 23:49:17 +01:00