ocornut
4925695ae8
InputText: optimize InputTextCalcTextLenAndLineCount() for inactive multiline path. ( #7925 )
2024-09-16 14:52:42 +02:00
ocornut
7ac50bf77d
InputText: more tidying up of selection search loop.
2024-09-16 14:42:58 +02:00
ocornut
aef07aea27
InputText: minor tidying up of selection search loop (no need to imply it runs in single line mode)
2024-09-16 14:36:25 +02:00
ocornut
b53d91a4c4
InputText: optimization for large text: using memchr() instead of strchr() shaves 0.2 ms on 865k multi-line text case. Approximately 20%. ( #7925 )
2024-09-16 14:15:43 +02:00
ocornut
dab63231d8
Misc: Made it accepted to call SetMouseCursor() with any out-of-bound value, as a way to allow hacking in custom cursors if desirable.
2024-09-16 11:19:05 +02:00
ocornut
8326dabe5e
Merge branch 'master' into docking
2024-09-12 23:19:26 +02:00
ocornut
4d00bf8add
MultiSelect+Tables: fixed an issue where box-select would skip items while drag-scrolling in a table with outer borders. ( #7970 , #7821 ).
...
See "widgets_multiselect_boxselect_2" test.
2024-09-12 23:13:32 +02:00
ocornut
8807b01b28
InputText: amends: now can use memchr()/strchr() for line counting. Much faster! ( #7925 )
2024-09-11 14:46:29 +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
3d1e593b5b
InputText: amends: fixed next/prev word implementation. ( #7925 )
...
+ replace IMSTB_TEXTEDIT_GETPREVCHARINDEX code with ImTextFindPreviousUtf8Codepoint().
2024-09-11 14:46:29 +02:00
ocornut
e240bc151a
InputText: amends: add note about STB_TEXTEDIT_GETCHAR. tweak InputTextCalcTextSize() to use similar debug-friendly logic as ImFont:CalcTextSizeA(). misc small tidying up. ( #7925 )
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
a5cf4fe374
InputText: added CJK double-width punctuation to list of separators considered for CTRL+Arrow.
2024-09-05 20:45:07 +02:00
ocornut
193c1e2366
Version 1.91.2 WIP
2024-09-05 20:03:23 +02:00
CrackedMatter
41eebc87a0
Fixed C++26 invalid enum operation ( #7954 )
2024-09-05 12:04:28 +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
776813416b
PlotHistogram, PlotLines: use ButtonBehavior() to be idiomatic. ( #7935 , #3072 )
2024-09-03 21:55:26 +02:00
ocornut
afb15e9795
PlotHistogram, PlotLines: register item ID in a more idiomatic manner. ( #7935 , #3072 )
2024-09-03 21:49:35 +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
ee9e3a2ed6
Tabs: avoid queuing a refocus when tab is already focused, which would have the side-effect of e.g. closing popup on a mouse release. ( #7914 )
...
+ Debug Log: add details about closed popups.
2024-09-03 18:34:18 +02:00
ocornut
8c4dceba08
Tabs: avoid queuing a refocus when tab is already focused, which would have the side-effect of e.g. closing popup on a mouse release. ( #7914 )
2024-08-23 19:40:47 +02:00
ocornut
4fc187dc60
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2024-08-23 19:19:22 +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
438f9e1a3e
InputText: amend d474ed7
for static analysis. ( #7913 )
2024-08-23 14:14:11 +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
5de7f69cbb
(BREAKING) Commented out obsolete ImageButton(). ( #5533 , #4471 , #2464 , #1390 )
2024-08-22 20:12:23 +02:00
ocornut
214977e5fd
IO: (BREAKING) moved io.GetClipboardTextFn, io.SetClipboardTextFn to platform_io.Platform_GetClipboardTextFn, platform_io.Platform_SetClipboardTextFn.
2024-08-22 20:12:23 +02:00
ocornut
e54f240ea0
IO: (BREAKING) moved io.PlatformLocaleDecimalPoint to platform_io.Platform_LocaleDecimalPoint. ( #7389 , #6719 , #2278 )
2024-08-22 20:12:12 +02:00
ocornut
ba2f4a2cd5
IO: (BREAKING) moved GetIO().PlatformOpenInShellFn to GetPlatformIO(.Platform_OpenInShellFn. ( #7660 )
2024-08-22 20:11:36 +02:00
ocornut
bf75504d7a
Style: added PushStyleVarX(), PushStyleVarY() helpers to modify only one component of a ImVec2 var.
...
+ tweak existing function to early out on error.
2024-08-22 13:55:42 +02:00
ocornut
521f84a3a9
InputText: fixed an issue programmatically refocusing a multi-line input which was just active. ( #4761 , #7870 )
...
Amend 66f0fb986
, c5db276521
2024-08-21 14:26:53 +02:00
ocornut
8a946b69e9
InputText: allow callback to update buffer while in read-only mode (fix for imgui_memory_editor 0.54 in read-only mode).
...
See https://github.com/ocornut/imgui_club/pull/46
2024-08-21 13:26:33 +02:00
ocornut
24b077c7f8
Merge branch 'master' into docking (multi-viewport broken until next commit)
...
# Conflicts:
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
2024-08-19 14:44:35 +02:00
ocornut
29fadad193
TextLink(), TextLinkOpenURL(): change mouse cursor to Hand shape when hovered. ( #7885 , #7660 )
2024-08-13 14:30:35 +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
2981a10c53
MultiSelect, TreeNode, Drag and Drop: fixed an issue where carrying a drag and drop payload over an already open tree node would select it. ( #7850 )
2024-08-01 17:16:13 +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
Rémi Hérilier
c7b9256097
Selectable: added ImGuiSelectableFlags_Highlight flag to highlight items independently from the hovered state. ( #7820 )
...
Demo: Make the Widget/List boxes show how to use forced highlighting.
2024-07-29 12:05:08 +02:00
Laurent Dufresne
96460a8a12
InputText: Added '\' and '/' as word seperator. ( #7824 , #7704 )
...
Adding those seperators means that ctrl+(left|right)-arrows and ctrl+backspace will stop at slashes, which is more inline with how most software works and generally is very convenient when dealing with paths or urls.
2024-07-29 11:23:47 +02:00
ocornut
3552df562e
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
2024-07-25 16:41:56 +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
237165a935
MultiSelect: fixed an issue caused by previous commit.
...
Amend a285835
. Breaks box-select.
2024-07-24 19:16:12 +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
97c6f4047c
CollapsingHeader: left-side outer extend matches right-side one (moved left by one pixel)
...
Amend c3a348aa2
2024-07-24 14:20:17 +02:00
ocornut
1230b4410c
Internals, TreeNode, Selectable: tweak span_all_columns paths for clarity.
2024-07-24 14:11:26 +02:00
ocornut
4d8c56c813
Internals, TreeNode: indent all render block into its own scope (aim is to add a is_visible test there later)
2024-07-24 14:03:59 +02:00
ocornut
3fab2bb7be
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl3.cpp
# imgui.cpp
2024-07-22 19:41:39 +02:00
ocornut
97ff9bd370
Nav: fixed c licking window decorations (e.g. resize borders) from losing focused item when within a child window using ImGuiChildFlags_NavFlattened.
...
In essence, using ImGuiFocusRequestFlags_RestoreFocusedChild here is a way to reduce changes caused by FocusWindow(), but it could be done more neatly.
See amended "nav_flattened" test.
2024-07-22 15:04:25 +02:00
Thomas Stehle
da36336321
TabBar, Style: added style option for the size of the Tab-Bar Overline ( #7804 )
...
Amend 21bda2e
.
2024-07-22 10:58:16 +02:00
ocornut
02cc7d451c
Merge branch 'master' into docking
...
# Conflicts:
# imgui_demo.cpp
2024-07-19 18:49:25 +02:00
ocornut
b6e313bc05
MultiSelect: using ImGuiMultiSelectFlags_NoRangeSelect ensure never having to interpolate between two ImGuiSelectionUserData.
2024-07-19 16:42:14 +02:00
ocornut
fd77815f9f
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_demo.cpp
2024-07-18 18:22:26 +02:00
ocornut
7814518049
MultiSelect: ImGuiSelectionBasicStorage: optimized for smaller insertion amounts in larger sets + fix caling batch select with same value.
2024-07-18 18:19:22 +02:00
ocornut
1b63522446
MultiSelect: Box-Select: handle Esc to disable box-select.
...
This avoid remove a one-frame delay when finishing box-select, where Esc wouldn't be routed to selection but to child.
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
7d4de84ee3
MultiSelect: added courtesy ImGuiMultiSelectFlags_NavWrapX flag so we can demo this until a nav api is designed.
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
3f34c83bc6
MultiSelect: added ImGuiMultiSelectFlags_NoAutoClearOnReselect + tweak flags comments. ( #7424 )
2024-07-18 18:19:21 +02:00
ocornut
529c73ba21
MultiSelect: Shift+Tab doesn't enable Shift select on landing item.
2024-07-18 18:19:21 +02:00
ocornut
a8a1f29512
MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect2d. Which include not assuming one flag imply the other.
...
Amend 2024/05/31 commit.
2024-07-18 18:19:21 +02:00
ocornut
c52346850d
MultiSelect: ImGuiSelectionBasicStorage: added PreserveOrder, maintain implicit order data in storage.
...
Little tested but provided for completeness.
2024-07-18 18:19:21 +02:00
ocornut
df664329cb
MultiSelect: provide RangeDirection to allow selection handler to handler backward shift+click.
2024-07-18 18:19:21 +02:00
ocornut
3ac367ff41
MultiSelect: ImGuiSelectionBasicStorage: (breaking) rework GetNextSelectedItem() api to avoid ambiguity/failure when user uses a zero id.
2024-07-18 18:19:21 +02:00
ocornut
c07864f64a
MultiSelect: ImGuiSelectionBasicStorage: move function bodies to cpp file.
...
+ make ImGuiStorage::BuildSortByKey() less affected by msvc debug mode.
2024-07-18 18:19:21 +02:00
ocornut
2af3b2ac81
MultiSelect: ImGuiSelectionBasicStorage: simplify by removing compacting code (compacting may be opt-in?).
...
GetNextSelectedItem() wrapper gives us more flexibility to work on this kind of stuff now.
2024-07-18 18:19:21 +02:00
ocornut
e61612a687
MultiSelect: ImGuiSelectionBasicStorage: rework to accept massive selections requests without flinching.
...
Batch modification + storage only keeps selected items.
2024-07-18 18:19:21 +02:00
ocornut
e1fd25051e
MultiSelect: ImGuiSelectionBasicStorage: added GetNextSelectedItem() to abstract selection storage from user. Amend Assets Browser demo to handle drag and drop correctly.
2024-07-18 18:19:21 +02:00
ocornut
c3d7aa252b
MultiSelect: comments, header tweaks., simplication (some of it on wiki).
2024-07-18 18:19:21 +02:00
ocornut
db4898cb91
MultiSelect: added ImGuiSelectionExternalStorage helper. Simplify bool demo.
2024-07-18 18:19:20 +02:00
ocornut
c94cf6f01f
MultiSelect: added ImGuiSelectionBasicStorage::GetStorageIdFromIndex() indirection to be easier on the reader.
...
Tempting to make it a virtual.
2024-07-18 18:19:20 +02:00
ocornut
ab995d3d4f
MultiSelect: (breaking) Added 'items_count' parameter to BeginMultiSelect(). Will enable extra features, and remove equivalent param from ImGuiSelectionBasicStorage::ApplyRequests(.
2024-07-18 18:19:20 +02:00
ocornut
443b034895
MultiSelect: mark parent child window as navigable into, with highlight. Assume user will always submit interactive items.
2024-07-18 18:19:20 +02:00
ocornut
f6b5caf82c
MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect1d, ImGuiMultiSelectFlags_BoxSelect2d -> ImGuiMultiSelectFlags_BoxSelect.
...
ImGuiMultiSelectFlags_BoxSelect1d being an optimization it is the optional flag.
2024-07-18 18:19:20 +02:00
ocornut
7bbbbea200
MultiSelect: Box-Select: fixes for checkboxes support. Comments.
2024-07-18 18:19:20 +02:00
ocornut
2f56df4839
MultiSelect: (breaking) renamed ImGuiSelectionBasicStorage::AdapterData to UserData.
2024-07-18 18:19:20 +02:00
ocornut
1113f13f83
MultiSelect: Box-Select: fixed "when dragging from void" implementation messing with calling BeginMultiSelect() without a selection size.
2024-07-18 18:19:20 +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
65ebc0513b
MultiSelect: Box-Select: minor refactor, tidying up.
2024-07-18 18:19:20 +02:00
ocornut
9435a3185a
RangeSelect/MultiSelect: (Breaking) Added current_selection_size to BeginMultiSelect().
...
Required for shortcut routing so we can e.g. have Escape be used to clear selection THEN to exit child window.
2024-07-18 18:19:19 +02:00
ocornut
0be238ec58
MultiSelect: Box-Select: fix preventing focus. amend determination of scope_hovered for decorated/non-child windows + avoid stealing NavId. ( #7424 )
2024-07-18 18:19:19 +02:00