ocornut
c95fbb4464
Windows: Double-clicking bottom or right window border auto-resize on a singles axis.
2023-10-19 16:19:29 +02:00
ocornut
2a6d7b1eaa
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_demo.cpp
2023-10-18 19:45:19 +02:00
ocornut
1b9cb52d7b
BeginChild(): rename parameters to reduce diff of upcoming patches.
...
Should be a no-op.
2023-10-18 19:41:51 +02:00
ocornut
56f7e853be
Demo: expose more Combo flags + misc tidying up.
2023-10-18 17:48:33 +02:00
ocornut
99913b5051
Internals: added IsKeyChordPressed() for consistency.
2023-10-16 22:21:29 +02:00
ocornut
51d1a72e9b
Docking: Revised undocking logic to reduce accidental whole-node undocking:
...
Amend bb2aa5e77
.
Revert to normal threshold in StartMouseMovingWindowOrNode().
Added tooltip when hovering the collapse/window menu button.
2023-10-16 15:56:46 +02:00
ocornut
0b8c6b9bce
Internals: removed seemingly unused AutoFitChildAxises.
...
The clamp was done on BeginChild(). Amend 2545d75c
2023-10-13 14:52:08 +02:00
ocornut
f7fc186408
Merge branch 'master' into docking
...
+ 2 comments
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# backends/imgui_impl_win32.cpp
2023-10-12 19:22:36 +02:00
ocornut
32228d8add
Tables: added Angled headers support. Added ImGuiTableColumnFlags_AngledHeader, ImGui::TableHeadersAngledRow(), style.TableAngledHeadersAngle. ( #2957 )
2023-10-12 19:21:02 +02:00
ocornut
9f851ebfe4
Tables: added ImGuiTableFlags_HighlightHoveredColumn.
2023-10-12 19:15:17 +02:00
ocornut
5053d79a24
Tables: Internal: rework so stacked headers height may be used.
2023-10-11 17:28:07 +02:00
ocornut
0312a29e4c
ImageButton(): clarify purpose of size. ( #6901 , #5533 , #4471 , #2464 , #1390 ).
...
Amend 4a2ae06ca
2023-10-05 18:51:45 +02:00
ocornut
72ebd91567
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl3.cpp
# imgui.h
2023-10-05 15:10:45 +02:00
ocornut
a63e2f0a33
Drag and Drop: Fixed submitting a tooltip from drop target location. Added demo.
...
Amend 7bbf8f2
, 92b7d6b
.
2023-10-05 12:06:40 +02:00
ocornut
330d763477
Separator: clarified setting the ImGuiSeparatorFlags_SpanAllColumns flag. ( #759 )
...
Technically a no-op.
2023-10-03 15:24:42 +02:00
ocornut
a61438740d
Debug Tools: Metrics: Added "Show groups rectangles" in tools.
2023-10-02 15:01:42 +02:00
ocornut
f8aed6499f
Debug Tools: Rename ShowIdStackToolWindow() -> ShowIDStackToolWindow(). ( #4631 )
...
Squashed of 2 master commits.
2023-09-28 20:16:13 +02:00
ocornut
03e2a7f584
Debug Tools: Rename ShowIdStackToolWindow() -> ShowIDStackToolWindow(). ( #4631 )
...
Some tool undid or didn't queue a chunk? Amend c21278e
.
2023-09-27 20:07:58 +02:00
ocornut
c21278eeae
Debug Tools: Rename ShowIdStackToolWindow() -> ShowIDStackToolWindow(). ( #4631 )
...
Amend 8175a47
2023-09-27 19:49:12 +02:00
ocornut
b7c250925f
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_internal.h
2023-09-27 18:21:39 +02:00
ocornut
2f431a948c
IO: removed io.MetricsActiveAllocations introduced in 1.63. Same as 'g.DebugMemAllocCount - g.DebugMemFreeCount' (still displayed in Metrics.
2023-09-27 18:14:48 +02:00
ocornut
f1519efb16
BeginGroup(): fix/amend 9ece0bd
.
2023-09-27 17:25:55 +02:00
ocornut
9ece0bdc02
BeginGroup(): Fixed a bug pushing line lower extent too far down when called after a call to SameLine() followed by manual cursor manipulation.
2023-09-26 21:07:25 +02:00
ocornut
8175a47881
Debug Tools: Renamed ShowStackToolWindow() ("Stack Tool") to ShowIdStackToolWindow() ("ID Stack Tool"). ( #4631 )
2023-09-26 15:21:55 +02:00
ocornut
204ae8a407
Internals: added ImRect::ContainsWithPad()
2023-09-26 14:45:00 +02:00
ocornut
bb2fb74645
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_win32.cpp
# imgui.cpp
2023-09-26 11:42:49 +02:00
ocornut
94da5842ef
Renamed ImFloor() to ImTrunc(). Renamed ImFloorSigned() to ImFloor(). ( #6861 )
2023-09-26 11:18:29 +02:00
ocornut
3ce6b06feb
Merge branch 'master' into docking
2023-09-20 12:53:35 +02:00
ocornut
6c022f9bf1
IO, Inputs: rename SetMousePos() to TeleportMousePos(). ( #6837 , #228 )
2023-09-18 17:11:10 +02:00
ocornut
ff36fe365e
IO, Inputs: setting io.WantSetMousePos ignores incoming MousePos events. ( #6837 , #228 )
...
Allow easily implementing wrapping behaviors.
2023-09-18 17:07:35 +02:00
ocornut
ef8ff1b5d8
TabBar, Style: added style.TabBarBorderSize and associated ImGuiStyleVar_TabBarBorderSize. ( #6820 , #4859 , #5022 , #5239 )
...
Cherry-picked from docking's 64b1e44
2023-09-18 15:29:42 +02:00
ocornut
64b1e448d2
TabBar, Style: added style.TabBarBorderSize and associated ImGuiStyleVar_TabBarBorderSize. ( #6820 , #4859 , #5022 , #5239 )
...
Removed ImGuiTabItemFlags_Preview. Will need cherry-picking in master.
2023-09-18 15:28:44 +02:00
ocornut
afd0d3fca1
Docking: made ImGuiDockNodeFlags_NoUndocking public. ( #2999 , #6823 , #6780 , #3492 )
...
Amend 1612813
.
2023-09-18 12:41:18 +02:00
ocornut
72d760ba00
Docking: (Breaking) renamed ImGuiDockNodeFlags_NoDockingInCentralNode -> ImGuiDockNodeFlags_NoDockingOverCentralNode, ImGuiDockNodeFlags_NoSplit -> ImGuiDockNodeFlags_NoDockingSplit.
...
Shuffled other internal flags and added comments.
2023-09-18 12:27:29 +02:00
ocornut
f693c3d806
Docking: made "ImGuiDockNodeFlags_NoDocking" a combination of all others ImGuiDockNodeFlags_NoDockingXXX flags. ( #2999 , #6823 , #6780 , #3492 )
2023-09-18 11:27:44 +02:00
ocornut
7e246a7bb9
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_internal.h
2023-09-16 13:51:51 +02:00
ocornut
6addf28c4b
Fonts: Ensure calling AddFontXXX function doesn't invalidates ImFont's ConfigData pointers prior to building again. ( #6825 )
2023-09-16 13:40:35 +02:00
ocornut
1612813114
Docking: Internals: added ImGuiDockNodeFlags_NoUndocking. ( #2999 , #6823 , #6780 )
2023-09-15 20:44:26 +02:00
ocornut
14f8b76c1a
Docking: Comments. Removed misleading shared/local identicators. ( #6823 , #2999 )
...
NoDocking not marked as saved (it never was). Removed unused ImGuiDockNodeFlags_LocalFlagsMask_.
2023-09-15 20:44:15 +02:00
ocornut
8a2cd81091
TypingSelect: always enable nav highlight.
...
Otherwise in non multi-select contexts as nav dosn't automatically select result would not always be visible.
2023-09-15 16:58:06 +02:00
ocornut
779568bb38
TypingSelect: tidy up some more + split ino functions to make reuse simpler.
2023-09-14 18:36:21 +02:00
ocornut
661a70fc79
TypingSelect: fast switch between characters in + debug, internal renames.
...
# Conflicts:
# imgui.cpp
# imgui_internal.h
2023-09-14 17:45:54 +02:00
ocornut
c86ce70968
Internal: Nav,MultiSelect: import ImGuiSelectionUserData, SetNextItemSelectionUserData() from MultiSelect. Track NavLastValidSelectionUserData as a convenience.
2023-09-12 20:29:36 +02:00
ocornut
f336e639e9
TypingSelect: rework GetTypingSelectRequest(), provide TypingSelectFindResult().
...
Amend 9714594
2023-09-12 16:36:54 +02:00
ocornut
6eb2681c09
Internals: InitOrLoadWindowSettings() clear Size again for better data nuking in tests. Debug Log: added ImGuiDebugLogFlags_OutputToTestEngine flag.
2023-09-11 20:41:09 +02:00
ocornut
72dbe45adc
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_win32.cpp
# imgui.cpp
2023-09-08 18:02:06 +02:00
ocornut
0962c9fb72
TypingSelect: Added first version of GetTypingSelectRequest() API.
...
# Conflicts:
# imgui_internal.h
# imgui_widgets.cpp
2023-09-08 17:20:03 +02:00
ocornut
727c462069
Internals: Added ImTextFindPreviousUtf8Codepoint() helper + comments.
2023-09-08 11:28:13 +02:00
ocornut
fa2e5710ac
MenuBar: Fixed an issue where layouting an item in the menu-bar would erroneously egister contents size. ( #6789 )
...
In dire need of removing BeginGroup()/EndGroup() from menu-bar code, fo r sanity.
2023-09-06 15:35:03 +02:00
ocornut
fb9b006865
Version 1.90 WIP
2023-09-05 16:46:52 +02:00
ocornut
a1b60fc1f5
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_demo.cpp
2023-09-04 14:59:59 +02:00
ocornut
fef3389157
Version 1.89.9
2023-09-04 14:30:32 +02:00
ocornut
7b5fb33296
Tables: Internals: renamed CellPaddingY to RowCellPaddingY.
2023-09-04 12:14:41 +02:00
ocornut
e8a5c9e1b8
Tables: Made it possible to change style.CellPadding.y between rows. Added demo.
2023-09-04 11:23:54 +02:00
ocornut
300464a487
Docking: when io.ConfigDockingWithShift is enabled, staying stationary while moving a window displays an help tooltip to increase affordance. ( #6709 , #4643 )
...
Hope this doesn't feel spammy?
2023-08-30 17:45:06 +02:00
ocornut
f93d0befaf
Slider: fixed support for ImGuiItemFlags_ReadOnly/ImGuiSliderFlags_ReadOnly although it is technically unused/undocumented. ( #6758 )
...
Amend fdc526e8f
2023-08-29 12:19:15 +02:00
ocornut
33ea1e8b78
ColorEdit, ColorPicker: Manipulating options popup don't mark item as edited. ( #6722 )
2023-08-28 10:38:13 +02:00
ocornut
676497fe05
Merge branch 'master' into docking
...
ac64b65
on master seemed incorrect.
# Conflicts:
# docs/CHANGELOG.txt
# imgui.cpp
# imgui_internal.h
# imgui_widgets.cpp
2023-08-25 14:20:51 +02:00
ocornut
ba1fa904a9
IO: Exposed io.PlatformLocaleDecimalPoint to configure decimal point ('.' or ','). ( #6719 , #2278 )
...
Amend 13f718337
2023-08-17 13:12:21 +02:00
ocornut
1362fc0c56
Debug, Internals: Added DebugDrawCursorPos(), DebugDrawLineExtents() helpers.
2023-08-09 11:14:44 +02:00
ocornut
63b6300c39
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
# imgui_internal.h
2023-08-08 14:16:13 +02:00
ocornut
bc3c0ce772
Nav, TreeNode: Pressing Left with ImGuiTreeNodeFlags_NavLeftJumpsBackHere now goes through proper navigation logic: honor scrolling and selection. ( #1079 , #1131 )
...
Added a stack for this purpose which other features might build on (e.g. #2920 ). However this is currently gated by many tests and not a performance concern, but making stack happen all the time may be undesirable.
2023-08-08 14:07:00 +02:00
ocornut
cf3726bcbc
Internals: rename bg/fg drawlist holders in structs to reduce confusion.
2023-08-06 19:46:27 +02:00
ocornut
d6d94d90bf
Version 1.89.9 WIP
...
+ Minor typo fixes
2023-08-03 19:19:21 +02:00
ocornut
f8704cd085
Merge branch 'master' into docking
2023-08-01 13:11:26 +02:00
ocornut
f7eea63872
Version v1.89.8
2023-08-01 12:53:57 +02:00
ocornut
f8f805f046
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_dx10.cpp
# backends/imgui_impl_dx11.cpp
# backends/imgui_impl_dx12.cpp
# backends/imgui_impl_dx9.cpp
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# backends/imgui_impl_vulkan.cpp
# backends/imgui_impl_win32.cpp
2023-07-20 23:18:47 +02:00
ocornut
52125a54a5
Tables: added TableGetHoveredRow() in imgui_internal.h. ( #6250 , #6347 , #6588 , #3740 )
...
Works with one-frame delay inconsistent with other functions, may be too bug-prone.
2023-07-13 19:23:48 +02:00
ocornut
0110f4c8cc
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
# imgui_internal.h
2023-07-12 18:19:24 +02:00
ocornut
dbeeeae593
ImDrawData: Slight refactor so internal logic uses same logic as AddDrawList(). ( #6406 , #4879 , #1878 )
...
# Conflicts:
# imgui.cpp
# imgui_internal.h
2023-07-12 18:11:42 +02:00
ocornut
c649aca20a
ImDrawData: changed CmdLists from raw array to ImVector<> owned by ImDrawData itself. Faclitate user-manipulation of the array ( #6406 , #4879 , #1878 ) + deep swap. ( #6597 , #6475 , #6167 , #5776 , #5109 , #4763 , #3515 , #1860 )
...
+ Metrics: avoid misleadingly iterating all layers of DrawDataBuilder as everything is flattened into Layers[0] at this point.
# Conflicts:
# imgui.cpp
# imgui_internal.h
2023-07-12 18:11:42 +02:00
ocornut
cc4c37dbac
Nav: PageUp/PageDown always set NavJustMovedTo even when landing on same spot (which can trigger a selection).
...
This is mostly expected for range-select.
+ Rename ImGuiNavMoveFlags_Tabbing -> ImGuiNavMoveFlags_IsTabbing
2023-07-11 16:49:26 +02:00
ocornut
f6feddd1ee
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2023-07-11 12:44:15 +02:00
ocornut
3fe4319314
Version 1.89.8 WIP
2023-07-05 14:17:46 +02:00
ocornut
677c7b2258
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_vulkan.cpp
# docs/CHANGELOG.txt
# docs/TODO.txt
2023-07-04 14:58:03 +02:00
ocornut
cb9015e254
Version 1.89.7
2023-07-04 14:56:09 +02:00
ocornut
1029f57b8a
Inputs, Tooltip: Rework stationary timer logic as it broke on high-framerates with lower rate of mouse inputs. ( #1485 )
2023-07-03 12:17:46 +02:00
ocornut
a88e5be7f4
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_widgets.cpp
2023-06-28 14:56:33 +02:00
ocornut
4dee919bc0
(Breaking) Internals: added ImGuiItemFlags param to ItemHoverable(), so it can be called from ButtonBehavior() not following an ItemAdd().
...
This also allow moving AllowOverlap logic from ButtonBehavior() to ItemHoverable(), allowing other widgets to honor it. (#6512 , #3909 , #517 )
2023-06-28 14:42:14 +02:00
ocornut
8439a73645
Overlap: Added 'SetNextItemAllowOverlap()' as a replacement for 'SetItemAllowOverlap()'. ( #6512 , #3909 , #517 )
...
# Conflicts:
# imgui.cpp
# imgui_widgets.cpp
2023-06-28 14:40:47 +02:00
ocornut
a9a5cbf431
Overlap: Internals: add NextItemData.ItemFlags to facilitate implementation of SetNextItemAllowOverlap() + potentially remove extra_flags from ItemAdd(). ( #6512 , #3909 )
2023-06-28 14:40:47 +02:00
ocornut
51f564eea6
(Breaking) Overlap: Renamed 'ImGuiTreeNodeFlags_AllowItemOverlap' to 'ImGuiTreeNodeFlags_AllowOverlap', 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap'. Kept redirecting enums (will obsolete). ( #6512 , #3909 , #517 )
...
+ Internals: Renamed 'ImGuiButtonFlags_AllowItemOverlap' to 'ImGuiButtonFlags_AllowOverlap' without redirection.
2023-06-28 14:37:05 +02:00
ocornut
057fcae30c
Docking+Viewports: Fixed extraneous viewport+platform-window recreation. Part 4.
...
Part 4: store reference viewport id from last visible single window stored in node. So Win1 -> Win1|Win2 can reuse viewport on split.
Refer to "viewport_owner_change_1" and "viewport_owner_change_2" in ImGuiTestSuite.
2023-06-23 16:03:01 +02:00
ocornut
66c09fc05b
Docking+Viewports: Fixed extraneous viewport+platform-window recreation. Part 1.
...
Part 1: Add counters. Amend logs.
Refer to "viewport_owner_change_1" and "viewport_owner_change_2" in ImGuiTestSuite.
2023-06-23 15:49:45 +02:00
ocornut
1450d23b60
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# docs/CHANGELOG.txt
# imgui.cpp
2023-06-20 15:12:09 +02:00
ocornut
9214c28aad
IsWindowHovered, IsItemHovered: Assert when passed any unsupported flags.
2023-06-20 15:04:15 +02:00
ocornut
e7a4327eb8
IsWindowHovered: Added support for ImGuiHoveredFlags_Stationary.
2023-06-20 15:04:14 +02:00
ocornut
b3b8cbd001
IsItemHovered, Tooltips: Added ImGuiHoveredFlags_ForTooltip, ImGuiHoveredFlags_Stationary. ( #1485 )
...
Update demo accordingly.
2023-06-20 15:04:14 +02:00
ocornut
d96bbf0aae
TreeNode: Added undocumented ImGuiTreeNodeFlags_UpsideDownArrow flag. ( #6517 )
...
+ Minor tweak comment/layout in ImGuiIO
2023-06-19 14:33:23 +02:00
ocornut
194916135a
Internals: renamed HoverDelay fields.
2023-06-16 16:56:33 +02:00
ocornut
15d74bad1d
Internals: Tooltips: renamed internal flags (expecting to expose later when we publish priority stuff).
2023-06-16 16:55:51 +02:00
ocornut
eec344cc1e
Tweak HoverDelayClearTimer. Not exposing since I am unsure logic is viable (and is rather complex with upcoming addition of stationary logic). ( #1485 )
...
+ Tweaked default value of io.HoverDelayNormal from 0.30 to 0.35.
2023-06-14 18:29:49 +02:00
ocornut
6cabad6e7a
Encode version string in binary to facilitate identification when demo/tools are striped + amend About window.
2023-06-14 16:18:40 +02:00
ocornut
0664877998
Merge branch 'master' into docking
2023-06-09 14:02:19 +02:00
ocornut
956a1a17fb
Internals: add ImGuiNavMoveFlags_NoSelect and use in FocusItem().
...
(amend 31f11cf
which broke raage-select)
2023-06-01 15:50:14 +02:00
ocornut
31f11cf304
Internals: Added FocusItem(). Made activation explicit/opt-in via ImGuiNavMoveFlags_Activate. Rename ActivateItem() to ActivateItemByID().
2023-06-01 15:35:01 +02:00
ocornut
61ebb37843
Version 1.89.7 WIP
2023-06-01 11:22:43 +02:00
ocornut
823a1385a2
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdlrenderer.h
# docs/CHANGELOG.txt
# imgui.cpp
2023-05-31 14:51:56 +02:00
ocornut
5319d1cffa
Version 1.89.6
2023-05-31 14:47:32 +02:00
ocornut
47579f8a40
Nav: set NavJustMovedToXXX fields on NavInit result + BeginChild() clears ActiveId on N+1 on entering instead of waiting for ID to elapse on N+2.
...
# Conflicts:
# imgui_internal.h
2023-05-23 16:28:53 +02:00
ocornut
54c1ac3e38
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2023-05-22 10:10:29 +02:00
ocornut
45c8c3b611
Listbox: commented out obsolete/redirecting functions that were marked obsolete more than two years ago: ListBoxHeader(), ListBoxFooter().
...
+ Added default parameter to SeparatorEx() amend 2c558d5
2023-05-22 10:09:20 +02:00
ocornut
df8667b18b
Comments/typos tweaks
2023-05-20 18:07:31 +02:00
ocornut
2c558d5741
Internals: SeparatorEx(): expose thickness + add misc comments relating to Separators.
2023-05-20 16:25:14 +02:00
GamingMinds-DanielC
e489e40a85
Clipper: Amend ecb0aaa
( #6424 , #3841 )
2023-05-15 14:06:16 +02:00
ocornut
bcfc1ad8f6
Nav: Forwarded (wrap/loop) request don't mistakenly wreck reference pos.
...
Amend 6656553
2023-05-10 15:22:17 +02:00
ocornut
530134d125
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_metal.mm
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl3.cpp
# imgui.cpp
2023-05-10 12:57:37 +02:00
ocornut
6656553fa4
Nav: Record/restore preferred position on each given axis.
...
Tagging #6344 #6003 #2694 #1688 as it relates to scoring, however this doesn't technically fix any of them fully yet.
But e.g. once we restore axial path for #2694 this commit will allow going back and forth to initial location.
2023-05-09 17:26:27 +02:00
ocornut
594cc4793a
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2023-04-25 12:21:16 +02:00
ocornut
eed7b0e9c5
Nav: remove other-axis clamping, now that columns themselves are clamped. ( #2221 )
...
Amend 00d3f92
+ older f2d14724
, 0cc20fca8
+ Add ImGuiNavMoveFlags_WrapMask_ for good measure.
2023-04-24 20:04:05 +02:00
ocornut
d2291df551
Viewports: Fixed setting focus from platform decoration from accidentally closing modals ( #6299 , #6357 )
...
+ Fixed double-assignment static analyzer warning.
# Conflicts:
# imgui.cpp
2023-04-21 19:22:41 +02:00
ocornut
bba39762dc
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_win32.cpp
# imgui.cpp
# imgui_internal.h
# imgui_widgets.cpp
2023-04-21 19:12:11 +02:00
ocornut
01ca196530
Focus: move focused child restore code in FocusWindow() with ImGuiFocusRequestFlags_RestoreFocusedChild flag. ( #6357 )
...
# Conflicts:
# imgui.cpp
2023-04-21 19:07:08 +02:00
ocornut
30eceaf95f
Focus: start moving modal check into FocusWindow(), add ImGuiFocusRequestFlags_UnlessBelowModal (currently opt-in, should try to make opt-out). ( #6357 , #4317 )
2023-04-21 19:06:11 +02:00
ocornut
f0fe1957a8
Focus: merge extra param for FocusTopMostWindowUnderOne() from docking branch to facilitate merge.
2023-04-21 19:05:58 +02:00
ocornut
00d3f9295e
Nav: Fixed navigation within tables/columns where item boundaries goes beyond columns limits. ( #2221 )
2023-04-20 16:42:52 +02:00
ocornut
8d9e50c807
Nav: fixed IMGUI_DEBUG_NAV_SCORING not setting NavMoveClipDir, leading to debug result not matching real results.
2023-04-20 16:04:05 +02:00
ocornut
4f692ba840
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_metal.mm
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_win32.cpp
# docs/CHANGELOG.txt
2023-04-19 16:35:50 +02:00
ocornut
064153fca4
Version 1.89.6 WIP
2023-04-17 14:40:00 +02:00
ocornut
0ea3b87bd6
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui_internal.h
2023-04-13 16:24:09 +02:00
ocornut
1ebb913827
Version 1.89.5
2023-04-13 16:17:49 +02:00
ocornut
995f92a456
Nav: Made PageUp/PageDown/Home/End navigation also scroll parent windows.
...
+ Added ImGuiDebugLogFlags_EventSelection unused in this branch.
2023-04-12 21:38:47 +02:00
ocornut
aec062a8a5
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# docs/CHANGELOG.txt
# examples/example_win32_directx9/main.cpp
# imgui_internal.h
2023-04-11 16:16:17 +02:00
ocornut
18d72a9142
Inputs: added a unique event identifier in ImGuiInputEvent.
2023-04-11 15:07:42 +02:00
ocornut
63370be0e5
Viewports: fix/amend dcb6335
to (1) avoid refocusing when focus action was actionned from a click within imgui boundaries and (2) restore a null focus as well. ( #6299 )
2023-04-06 16:29:36 +02:00
ocornut
ed72fcd12a
Viewports: Internal: rename LastFrontMostStampCount -> LastFocusedStampCount. Rename ImGuiViewportFlags_Minimized -> ImGuiViewportFlags_IsMinimized
...
Effectively it is currently the later, but see comment "Even without focus, we assume the window becomes front-most." in UpdatePlatformWindows().
+ Moved Window field at top since it is most useful.
2023-04-06 15:17:52 +02:00
ocornut
dcb6335bfe
Viewports: Setting focus from Platform/OS sets corresponding focus at Dear ImGui level. ( #6299 )
2023-04-05 20:25:05 +02:00
ocornut
ee5ce36745
Merge branch 'master' into docking, including specific merge for imgui_impl_glfw.cpp for f070497
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# backends/imgui_impl_win32.cpp
# docs/CHANGELOG.txt
# imgui.cpp
# imgui.h
# imgui_internal.h
2023-04-04 21:17:47 +02:00
ocornut
a16f99c6a2
IO: Added io.AddMouseSourceEvent() and ImGuiMouseSource enum. ( #2702 , #2334 , #2372 , #3453 , #5693 )
2023-04-04 20:18:57 +02:00
ocornut
4fdafef54f
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# docs/CHANGELOG.txt
# imgui_widgets.cpp
2023-03-29 18:41:41 +02:00
ocornut
5f301914a0
TabBar: Tab-bars with ImGuiTabBarFlags_FittingPolicyScroll can be scrolled with horizontal mouse-wheel (or Shift + WheelY). ( #2702 )
2023-03-29 17:10:03 +02:00
ocornut
89d09070e3
Nav: Made Ctrl+Tab/Ctrl+Shift+Tab windowing register ownership to held modifier. ( #4828 , #3255 , #5641 )
2023-03-22 15:42:14 +01:00
ocornut
ad44f5831a
Merge branch 'master' into docking
2023-03-21 17:04:54 +01:00
ocornut
e55a0ef107
IO: avoid changing context in AddKeyAnalogEvent(). Amend 7269498
. ( #6199 , #6256 , #4921 , #5856 )
2023-03-21 14:32:37 +01:00
ocornut
5a2b1e8482
InputText: Fixed a tricky edge case, ensuring value is always written back on the frame where IsItemDeactivated() returns true ( #4714 )
...
Altered ItemAdd() clipping rule to keep previous-frame ActiveId unclipped to support that late commit.
Also, MarkItemEdited() may in theory need to do:
if (g.ActiveIdPreviousFrame == id)
g.ActiveIdPreviousFrameHasBeenEditedBefore = true;
But this should already be set so not adding now.
2023-03-16 21:12:57 +01:00
ocornut
314e6443c9
Internals: removed ImGuiInputSource_Nav enum,
...
Essentially finishing the work of removing Nav a dual input source (with e.g. removal of NavInput[]).
2023-03-16 20:28:05 +01:00
ocornut
6b3435a2db
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_opengl3.cpp
# docs/CHANGELOG.txt
2023-03-16 12:01:13 +01:00
ocornut
24a44b9abe
Version 1.89.5 WIP
2023-03-15 12:25:20 +01:00
ocornut
9e30fb0ec1
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# docs/CHANGELOG.txt
# imgui.cpp
2023-03-14 16:38:22 +01:00
ocornut
f3f6295d53
Version 1.89.4
...
Commented out obsolete enums/functions names: ImGuiSliderFlags_ClampOnInput, ImGuiInputTextFlags_AlwaysInsertMode, ImDrawList::AddBezierCurve(), ImDrawList::PathBezierCurveTo()()
2023-03-14 16:36:19 +01:00
ocornut
cc2177de15
Debug Tools: Added io.ConfigDebugBeginReturnValueOnce / io.ConfigDebugBeginReturnValueLoop options.
2023-03-14 15:25:13 +01:00
ocornut
9937660b1c
Merge branch 'master' into docking
...
# Conflicts:
# examples/example_allegro5/main.cpp
# examples/example_apple_metal/main.mm
# examples/example_apple_opengl2/main.mm
# examples/example_glfw_metal/main.mm
# examples/example_glfw_opengl2/main.cpp
# examples/example_glfw_opengl3/main.cpp
# examples/example_glfw_vulkan/main.cpp
# examples/example_glut_opengl2/main.cpp
# examples/example_sdl2_directx11/main.cpp
# examples/example_sdl2_metal/main.mm
# examples/example_sdl2_opengl2/main.cpp
# examples/example_sdl2_opengl3/main.cpp
# examples/example_sdl2_vulkan/main.cpp
# examples/example_sdl3_opengl3/main.cpp
# examples/example_win32_directx10/main.cpp
# examples/example_win32_directx11/main.cpp
# examples/example_win32_directx12/main.cpp
# examples/example_win32_directx9/main.cpp
# imgui.cpp
2023-03-10 18:40:04 +01:00
ocornut
e83fb468c6
Renamed PushAllowKeyboardFocus()/PopAllowKeyboardFocus() to PushTabStop()/PopTabStop(). ( #3092 )
2023-03-09 18:53:57 +01:00
ocornut
3b2f617652
BeginTooltip: Added 'bool' return value to BeginTooltip() for API consistency. Updated demo.
...
Add SetWindowHiddendAndSkipItemsForCurrentFrame().
2023-03-09 15:16:40 +01:00
ocornut
e2cede6542
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui_internal.h
2023-03-08 17:41:32 +01:00
Marc Delorme
c8ad25caa6
Make classes not depend on the implicit GImGui context ( #5856 , #6199 ): ImGuiWindow, ImGuiInputTextCallbackData, ImGuiListClipper, ImGuiStackSizes
...
This commit is a preparation toward adding ImGui apis with explicit context
and making ImGui applications being able to use multiple context at the same time
whatever their concurrency model.
This commit modifies ImGuiInputTextCallback, ImGuiListClipper and ImGuiStackSize so those classes do not to depend on GImGui context anymore.
About ImGuiInputTextCallback:
- ImGuiInputTextCallback depends on ImGuiContext because it has a
`InsertChars` method adding character to `g.InputTextState`
- To make ImGuiInputTextCallback aware of which context to use, the
appropriate context is given as argument of ImGuiInputTextCallback
constructor.
About ImGuiListClipper:
- ImGuiListClipper apply to a context through its `Begin`, `End`, and `Step`
method.
- To make ImGuiListClipper aware of which context to use, the
appropriate context is given as argument of ImGuiListClipper
constructor.
- Since the behavior is different than previously the class has been
renamed ImGuiListClipperEx
- In order to preserve backward compatibility, a subclass of ImGuiListClipperEx
named ImGuiListClipper has been defined and forward the implicit context
to ImGuiListClipperEx parent.
About ImGuiTextFilter:
- ImGuiTextFilter depends on the implicit context because the Draw(..)
method call ImGui::InputText(...)
- Instead from that commit the Draw(...) method takes an explicit context
as first argument
- Since the behavior is different than previously the class has been
renamed ImGuiTextFilterEx
- In order to preserve backward compatibility, a subclass of ImGuiTextFilterEx
named ImGuiTextFilter has been defined. This subclass has a draw method
override which and forward the implicit context to the parent class Draw(...)
About ImGuiStackSizes:
- ImGuiStackSizes was depending on ImGuiContext because of its
`SetToCurrentState` and `CompareWithCurrentState` method
- ImGuiStackSizes is an helper object use
for comparing state of context. It does not necessarily need to
compare the same context. For that reason, as opposed to previous
classes it takes the context it wants to compare to as argument of
its method.
- For this occasion `SetToCurrentState` and `CompareWithCurrentState`
have been renamed `SetToContextState` and `CompareWithContextState`
to match the new method signature.
ImGuiListClipper
ImGuiInputTextCallbackData
2023-03-08 15:55:38 +01:00
Marc Delorme
10ace228bc
Make classes not depend on the implicit GImGui context ( #6199 , #5856 , #6199 ): ImGuiIO
...
This commit is a preparation toward adding ImGui apis with explicit context
and making ImGui applications being able to use multiple context at the same time
whatever their concurrency model.
About ImGuiIO:
- ImGuiIO depends on ImGuiContext because some of its method want to event to `g.InputEventQueue`.
- To make ImGuiIO aware of the context to use, context which creates the ImGuiIO is given as argument of ImGuiIO constructor.
- The assert `IM_ASSERT(&g.IO == this && "Can only add events to current context.")` has been removed since it does not make sense anymore
NOTE: ImGuiIO could be completely independent of ImGuiContext if the InputEventQueue was moved from ImGuiContext to ImGuiIO, but since
ImGuiIO is a public class it would expose InputEvent type. Solving this problem is out of the current scope, but it is interesting to notice.
2023-03-08 15:39:22 +01:00
ocornut
c9a53aa74d
Nav: Made Enter key submit the same type of Activation event as Space key. ( #5606 )
...
Instead of adding NavActivateInputId support in ButtonBehavior() started untangling the mess.
2023-03-07 18:41:49 +01:00
ocornut
b4b79584d1
Internals: added GetStyleVarInfo(). exposed previously .cpp only ImGuiStyleVarInfo as ImGuiDataVarInfo.
2023-03-07 14:40:55 +01:00
ocornut
b6586bb06d
TestEngine: update IMGUI_TEST_ENGINE_ITEM_ADD() hooks to support passing item in flags.
2023-03-06 18:10:04 +01:00
ocornut
1c29a8ed18
Debug Log: auto-disable ImGuiDebugLogFlags_EventClipper to reduce spam.
2023-03-06 18:09:49 +01:00
ocornut
f5c5a710aa
Docking: exposed DockNodeWindowMenuHandler_Default() in imgui_internal.h to facilitate reuse.
2023-03-06 17:08:09 +01:00
ocornut
4078abe14c
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl3.cpp
# imgui.cpp
# imgui.h
2023-03-06 17:03:55 +01:00
ocornut
702626dd8a
Docking: storing window menu handler in a function pointer to allow customizing menu (undocumented)
2023-03-06 16:59:57 +01:00
ocornut
bfce7750b1
Simpified code in GetKeyData() and used ImGuiKey_KeysData_OFFSET for consistency. Rework demo, Comments. Moved ImGuiKey_KeysData_OFFSET to internal.h ( #4921 , #6191 )
2023-02-24 13:05:32 +01:00
ocornut
696a533532
TestEngine: added ImGuiItemStatusFlags_Inputable flag report to facilitate fuzzing.
2023-02-16 12:15:06 +01:00
ocornut
a1b8457cb5
Moved the optional "courtesy maths operators" (#define IMGUI_DEFINE_MATH_OPERATORS) implementation from imgui_internal.h in imgui.h. ( #6164 , #6137 , #5966 , #2832 )
2023-02-15 19:23:12 +01:00
ocornut
e25e4526cd
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_win32.cpp
# docs/CHANGELOG.txt
2023-02-15 18:18:47 +01:00
ocornut
204cb4d226
Version 1.89.4 WIP
2023-02-15 15:35:56 +01:00
ocornut
192196711a
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2023-02-14 16:01:11 +01:00
ocornut
458a109031
Version 1.89.3
2023-02-14 16:00:18 +01:00
ocornut
fa0852f9e5
ColorEdit, ColorPicker: Fixed hue/saturation preservation logic from interfering with the displayed value (but not stored value) of others widgets instances. ( #6155 )
...
Amend 30546bc0
, accb0261b
, 38d22bc4
2023-02-14 15:35:00 +01:00
ocornut
345184330b
Internals: Settings: amend ClearWindowSettings() for Docking.
2023-02-10 18:28:45 +01:00
ocornut
ea4565368e
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdl2.h
# backends/imgui_impl_sdl3.cpp
# backends/imgui_impl_sdl3.h
# imgui.cpp
2023-02-10 17:05:06 +01:00
ocornut
f0ac68ad35
Internal: Settings: amend 0b86513
revert to use FindWindowSettingsByID().
...
Namely for docking system.
2023-02-10 17:01:14 +01:00
ocornut
082b20e46b
Internals: Settings: added ClearWindowSettings(). Extract part of CreateNewWindow() into InitOrLoadWindowSettings().
...
Designed to that if the window reappear in the session it won't take an additional slot.
2023-02-10 16:46:31 +01:00
ocornut
b2ebd03b16
Internals: Settings: moved Windows setting to their sub-section.
2023-02-10 16:06:39 +01:00
ocornut
0b865136e3
Internals: Settings: Added FindWindowSettingsByName() (replacing old version by ID) FindWindowSettingsByWindow() + remove unnecessary FindOrCreateWindowSettings().
...
In 1 code path we do a redundant hash but this happens only once per window per session so we are ok.
2023-02-10 16:06:29 +01:00
ocornut
99c0bd65df
Added SeparatorText() widget. ( #1643 )
2023-02-10 12:16:41 +01:00
ocornut
e4233c6fb6
Merge branch 'master' into docking (doesn't include viewports-related changes for new SDL3 backend)
...
# Conflicts:
# backends/imgui_impl_dx10.cpp
# backends/imgui_impl_dx10.h
# backends/imgui_impl_dx11.cpp
# backends/imgui_impl_dx11.h
# backends/imgui_impl_dx12.cpp
# backends/imgui_impl_dx12.h
# backends/imgui_impl_dx9.cpp
# backends/imgui_impl_dx9.h
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_metal.h
# backends/imgui_impl_metal.mm
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_opengl3.h
# backends/imgui_impl_osx.h
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl2.cpp
# backends/imgui_impl_sdlrenderer.cpp
# backends/imgui_impl_sdlrenderer.h
# backends/imgui_impl_vulkan.cpp
# backends/imgui_impl_vulkan.h
# backends/imgui_impl_win32.cpp
# docs/CHANGELOG.txt
# imgui.cpp
# imgui_widgets.cpp
2023-02-07 16:23:49 +01:00
ocornut
e816bc6723
Merge misc changes from docking branch to reduce small drift.
...
In particular:
- imgui.cpp : move UpdateInputEvents() higher in NewFrame() to match docking + update RenderMouseCursor() to match.
- imgui_draw.cpp: ImDrawList::_ResetForNewFrame() change from c807192ab
- Backends: SDL2. Add MouseWindowID + change SDL_CaptureMouse() test to match docking branch. Not strictly necessary but aimed at reducing drift because we go on and fork this file.
+ moved responsability of checking valid names to TabBarGetTabName() to simplify both branches.
2023-02-07 13:22:23 +01:00
ocornut
c807192abc
Tables: amend f799a29
with a better solution + fix potential overflow ( #6140 )
2023-02-03 22:50:58 +01:00
ocornut
d6ea56dfd9
Tables: amend f799a29
with a better solution + fix potential overflow ( #6140 )
2023-02-03 22:50:43 +01:00
ocornut
b0a936e5d4
Merge branch 'master' into docking (incl revert of examples refactor)
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_sdl.cpp
# examples/example_glfw_opengl2/main.cpp
# examples/example_glfw_opengl3/main.cpp
# examples/example_glfw_vulkan/main.cpp
# examples/example_sdl_directx11/main.cpp
# examples/example_sdl_opengl2/main.cpp
# examples/example_sdl_opengl3/main.cpp
# examples/example_sdl_vulkan/main.cpp
# examples/example_win32_directx10/main.cpp
# examples/example_win32_directx11/main.cpp
# examples/example_win32_directx12/main.cpp
# examples/example_win32_directx9/main.cpp
2023-02-03 22:38:39 +01:00
ocornut
f799a293c8
Tables: Solved an ID conflict issue with multiple-instances of a same table. Storing instance id for convenience. ( #6140 )
...
TableGetColumnResizeID() are still using an incorrect table, but having only one-level left tends to cancel things out.
2023-02-03 20:03:03 +01:00
ocornut
887abe9578
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_win32.cpp
# imgui.cpp
# imgui.h
# imgui_internal.h
# imgui_widgets.cpp
2023-02-01 22:18:57 +01:00
nahkhiir
2efebe3315
ShowFontAtlas, Demo: optionally use style text color for tint. ( #6129 )
2023-01-31 18:12:42 +01:00
ocornut
867bdbecb3
Text: fixed issue in RenderText() leading to IM_ASSERT_PARANOID() triggering if enabled. ( #6132 , #5720 , #5919 )
...
Amend 3482d4ec
, bd96f6e
2023-01-31 14:41:16 +01:00
ocornut
d719776460
Internals: added 'ImGuiButtonFlags flags' to ImageButtonEx(). ( #6126 )
2023-01-31 11:30:27 +01:00
ocornut
3d8885cbbd
TabBar: Internals: add GetCurrentTabBar(), TabBarFindTabByOrder(), TabBarGetCurrentTab(), TabBarGetTabOrder(), TabBarGetTabName(), TabBarQueueFocus() + clear LastTabItemIdx on EndTabBar(). ( #5853 , #5997 )
...
ImGuiTabBar::GetTabOrder() -> TabBarGetTabOrder().
ImGuiTabBar::GetTabName() -> TabBarGetTabName()
2023-01-24 19:41:20 +01:00
ocornut
88dfd85e92
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2023-01-21 00:49:06 +01:00
ocornut
91667430a8
Tables: increase table columns limit from 64 to 512 using bit array allocated in contiguous memory +. ( #6094 , #5305 , #4876 , #3572 )
2023-01-21 00:41:54 +01:00
ocornut
14908cba8f
Internals: ImBitArray, ImBitVector: using macro helper for common op + disable stack checks on MSVC agressive debug builds.
2023-01-21 00:41:50 +01:00
ocornut
db55422870
Tables: removed hot RequestOutputMaskByIndex bit-array as majority of code-paths are already touching the cold parts.
...
Only exception being TableSetColumnIndex() with same column number but that's an odd case.
Will break PR #6094 #3572 #5305 #4876 but those not need to be necessarily updated: we got enough reference to finish that feature.
2023-01-20 17:57:13 +01:00
ocornut
51c97a41aa
PlotHistogram, PlotLines: Passing negative sizes honor alignment like other widgets.
2023-01-18 15:13:23 +01:00
ocornut
482ac70a0b
Version 1.89.3 WIP
2023-01-11 15:52:30 +01:00
ocornut
d822c65317
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# docs/CHANGELOG.txt
2023-01-05 15:58:49 +01:00
ocornut
d7c8516a4b
Version 1.89.2
2023-01-05 15:49:29 +01:00
ocornut
e06bbe05e1
Revert most/part of "Shortcut: added Shortcut() function and ImGuiInputFlags in public API + Demo." ( #456 , #2637 )
...
This reverts commit 0949acb6e6
.
# Conflicts:
# imgui.h
2023-01-05 15:21:48 +01:00
ocornut
03add24acf
Selectable: Internals: removed unused ImGuiSelectableFlags_DrawHoveredWhenHeld flag.
...
Needlessly introduced in baae057a
from WIP tables branch at the time, ended up unused by Tables.
A comment "I find it counter intuitive that hovering supersedes activation." in #3516 led me to this however this is not the cause of said issue.
2023-01-05 11:28:05 +01:00
ocornut
fc3815bfe5
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_vulkan.cpp
2023-01-03 21:06:09 +01:00
Manuel Floruß
328695bd47
Provide a non-empty definition for IMGUI_DEBUG_PRINTF when disabled. ( #5978 )
...
Fixes MSVC warning C4390 when /W3 is specified. Reworked from original PR: (void)0 provides better codegen by do-while.
Similar to #5901
2023-01-02 16:02:56 +01:00
ocornut
c191faf0ba
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
# imgui_internal.h
# imgui_widgets.cpp
2022-12-08 21:19:01 +01:00
ocornut
59b63defe5
Misc shallow merge/sync from docking designed to faciliate cross-merging between docking and string_view.
2022-12-08 21:14:39 +01:00
ocornut
317b33d647
Tables: fixed matching width of synchronized tables when only some (not all) instances have a vertical scrollbar. ( #5920 )
2022-12-08 20:06:26 +01:00
ocornut
0949acb6e6
Shortcut: added Shortcut() function and ImGuiInputFlags in public API + Demo. ( #456 , #2637 )
2022-12-08 18:54:41 +01:00
ocornut
1dae7df26f
Misc: added GetItemID() in public API.
2022-12-08 18:45:04 +01:00
ocornut
d3025cde37
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2022-12-06 22:13:12 +01:00
ocornut
fd0b3734d3
Tables, Nav, Scrolling: fixed scrolling functions and focus tracking with frozen rows and columns. ( #5143 , #4868 , #3692 )
2022-12-06 21:07:50 +01:00
ocornut
16cee3d009
Internals: tidying up and standardizing outer decoration size storage. (toward #5143 , #4868 , #3692 , #3518 )
...
This is not strictly required presently, but will be consistent with adding inner decoration sizes in next commit, as well as generally being sane.
Locking TitleBarHeight() / MenuBarHeight() values per-window probably have side-effects in ill-defined situation related to changing font size per window.
2022-12-06 21:07:47 +01:00
ocornut
5eda547e6f
Merge branch 'master' into docking
2022-12-06 15:10:09 +01:00
ocornut
f9ab2a0e9f
Refactor: moved UpdateKeyRoutingTable() to INPUTS section. renamed GetKeyVector2d() -> GetKeyMagnitude2d()
2022-12-06 12:21:17 +01:00
ocornut
3ea0fad204
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui.cpp
# imgui.h
2022-12-01 20:22:27 +01:00
assiduous
66ad2ad539
Properly detect SSE instruction support in 32-bit MSVC build. ( #5943 )
2022-12-01 17:41:38 +01:00
Marc Delorme
a5e96ff99e
Make ImGuiInputTextState not depend on the implicit GImGui context. ( #5856 )
...
This commit is a preparation toward adding ImGui apis with explicit context
and making ImGui applications being able to use multiple context at the same time
whatever their concurrency model.
--
Prior to this commit ImGuiInputTextState::OnKeyPressed was depending on the
global context to know which font and font size to use, and if it should
follow MacOSX behaviors or not (c.f ConfigMacOSXBehaviors).
Instead of using the global context, this commit store the context as
attribute of ImGuiInputTextState. Since this state is forwarded to most
of text edit related function, it possible to access font, font size and
ConfigMacOSXBehaviors from everywhere.
NOTE: I have noticed a bug prior to that commit: if the font or font size
change while editing the same widget, the ImGuiInputTextState become invalid
and there is no code to handle this invalidation. Fixing this bug is out
of scope of current pull request.
# Conflicts:
# imgui_internal.h
2022-12-01 16:48:45 +01:00
ocornut
45736443be
Debug Tools: Metrics: added "Inputs" section, moved from Demo for consistency.
2022-11-30 20:14:52 +01:00
ocornut
87caf27ac4
Inputs, Scrolling: better selection of scrolling window when hovering nested windows and backend/OS is emitting dual-axis wheeling inputs. ( #3795 , #4559 )
2022-11-30 17:49:59 +01:00
ocornut
1a497c2499
Inputs, IO: reworked ImGuiMod_Shortcut to redirect to Ctrl/Super at runtime instead of compile-time. ( #5923 , #456 )
2022-11-29 19:07:50 +01:00
Teselka
969af7c773
Internal: Disable debug logs macro if IMGUI_DISABLE_DEBUG_TOOLS is defined. ( #5901 )
...
+ needed to rework clipper code to avoid "The 'then' statement is equivalent to the 'else' statement." PVS Studio warning.
2022-11-28 15:44:10 +01:00
ocornut
bd96f6eac4
Text: Fixed layouting of wrapped-text block when the last source line is above the clipping region. Regression added in 1.89. ( #5720 , #5919 )
...
+ Update version marker
2022-11-28 14:59:13 +01:00
ocornut
fad8afd62a
Docking: amend to allow localizing docking specific user facing string. ( #5895 )
2022-11-24 21:29:41 +01:00
ocornut
595a428baa
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# docs/CHANGELOG.txt
# imgui.cpp
# imgui_internal.h
2022-11-24 21:27:15 +01:00
ocornut
a8df192df0
Version 1.89.1
2022-11-24 21:24:33 +01:00
ocornut
d2f9c5dfb7
Viewports: moving PlatformWindowCreated field to public structure. ( #5882 )
2022-11-24 16:39:45 +01:00
ocornut
ffe0abbfc2
Internals: added basic localization system ( #5895 )
2022-11-23 16:05:16 +01:00
ocornut
3a685749cb
ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left. ( #5912 )
...
Amend 54fb051e5
+ Internals: added IsKeyboardKey(), IsMouseKey() helpers.
2022-11-23 15:00:50 +01:00
ocornut
38cfe22b8b
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2022-11-16 17:57:05 +01:00
ocornut
5bb2874940
Version 1.89.1 WIP
2022-11-16 17:55:27 +01:00
ocornut
83cee9e091
InputText: replaced some uses of SetKeyOwner() + IsKeyPressed() with Shortcut()
...
Which makes it easier to hook/disable those keys from outside if needed.
2022-11-16 17:09:14 +01:00
ocornut
94e850fd6f
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2022-11-15 15:40:54 +01:00
ocornut
81160fee56
Version 1.89
...
+ fix warning from a582d92
2022-11-15 15:20:36 +01:00
ocornut
7380b9816e
Scrolling: Exposed SetNextWindowScroll() in public API. ( #1526 )
2022-11-09 17:03:07 +01:00
ocornut
a571933f8b
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl3.cpp
2022-11-09 15:59:26 +01:00
ocornut
f0ad810553
Inputs: tweak comments, typos.
2022-11-08 22:41:45 +01:00
ocornut
4d5da74c79
Merge branch 'master' into docking
2022-11-08 20:44:04 +01:00
ocornut
637ddfce09
Inputs, Nav: made it possible to remap CTRL+Tab ( #4828 , #3255 , #5641 )
2022-11-08 20:38:49 +01:00
ocornut
6c9c4879d9
Inputs: made Shortcut() routing id defaults to current FocusScope ID. ( #456 , #2637 , #3724 )
...
One idea being that this value can be easily locked (for blind menus) or manipulated (for queries from outside).
2022-11-08 20:37:58 +01:00
ocornut
d576724bfd
Inputs: made ImGuiInputFlags_RouteFocused the default for Shortcut(). ( #456 , #2637 , #3724 )
2022-11-08 20:37:58 +01:00
ocornut
4d6a9ef93f
Inputs: added routing priorities. ( #456 , #2637 , #3724 )
...
- and ImGuiInputFlags_RouteUnlessBgFocused
- will be useful for blind menu handlers.
2022-11-08 20:37:58 +01:00
ocornut
7ff2d3353c
Inputs: added wip/experiment routing system: Shortcut(), RoutingFocused policy, SetShortcutRouting(). ( #456 , #2637 , #3724 )
...
- InputText() uses Shortcut().
2022-11-08 20:37:58 +01:00
ocornut
c59ebb2d71
Inputs: added basic Shortcut() function - no routing yet. ( #456 )
2022-11-08 20:37:58 +01:00
ocornut
4448d975d1
Inputs: added wip/internal Input Owner system. ( #456 , #2637 , #2620 , #2891 , #3370 , #4828 , #5108 , #5242 , #5641 )
...
- Added SetKeyOwner(), SetItemKeyOwner(), TestKeyOwner().
- Added new IsKeyXXX IsMouseXXX functions with ImGuID owner_id and flags.
- Obsoleted SetItemUsingMouseWheel(). (#2891 )
- Removed IsKeyPresseedEx() which was a recent internal addition 2022-07-08 deemed to be temporary exactly for this.
- Added ImGuiButtonFlags_NoSetKeyOwner, ImGuiButtonFlags_NoTestKeyOwner
- Added ImGuiSelectableFlags_NoSetKeyOwner.
- Added ImGuiInputFlags_LockThisFrame, ImGuiInputFlags_LockUntilRelease for for SetKeyOwner(), SetItemKeyOwner().
- Added ImGuiInputFlags_CondXXX values for SetItemKeyOwner().
2022-11-08 18:47:36 +01:00
ocornut
849c8052b7
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_osx.mm
# backends/imgui_impl_win32.cpp
# imgui.cpp
# imgui_internal.h
2022-11-04 16:26:15 +01:00
ocornut
529cba19b0
Debug Tools: Added DebugLocateItem()/DebugLocateItemOnHover() to visually locate items when hovering a 0xXXXXXXXX value. ( #5855 , #2673 , #4631 )
2022-11-04 16:06:34 +01:00
ocornut
7109f32f96
Internals: tidying up and stripping more of focus scope code.
2022-11-04 12:19:23 +01:00
ocornut
9f66a3a9ed
Internals: rework FocusScope system, current scope doesn't need to be in window + child doesn't inherit.
...
Intended as part of work for input routing + blind menu processing shortcuts. Some of this commit will be stripped by next commit.
Intent was to sort windows along with focus scope to build a hierarchy, but for our needs we'd need a persistant one, so scrapping the idea. Not squashing this with next commit to keep a bit of history for future references.
2022-11-04 12:19:20 +01:00
ocornut
baea25e657
Drag and Drop: extracted a RenderDragDropTargetRect() function ( #1603 )
2022-10-25 15:54:22 +02:00
ocornut
375ae5dce4
Merge branch 'master' into docking (incl glfw use of GLFW_VERSION_COMBINED)
...
Note switched from GLFW_VERSION_REVISION * 10 to GLFW_VERSION_REVISION * 1
2022-10-24 22:58:25 +02:00
ocornut
431fc6a7f6
Internals: using ItemAdd() consistently for internal items: windows & tables resize grips/borders, ScrollbarEx().
...
This put an extra flag check in ItemAdd() but essentially reduce inconsistency with windows decorations not using this. Useful for debugging.
It however buries the info/blurs the line about what it means to not use ItemAdd() since they are now doing it much less.
2022-10-24 22:54:29 +02:00
ocornut
178aee4b1c
Debug Tools: Debug Log: add and use ImGuiTextLineIndex.
...
This is needed for next commit where we want to parse hovered Debug Log line.
2022-10-24 21:23:59 +02:00
ocornut
bc918404fe
Internals: using ImToUpper() since std one does too many things.
...
As a bonus side-effect may remove reliance on ctype.h (will see if CI complains)
2022-10-21 16:13:52 +02:00
ocornut
9a35bfea39
Internals: added temporary ImGuiItemStatusFlags_Visible (used internally - please do not use).
...
Used by BeginMenu() as I'm experimenting with blind menus honoring shortcuts.
Extra comments about KeyMap and ImGuiKeys
2022-10-21 14:57:10 +02:00
ocornut
edf522b58a
Merge branch 'master' into docking + amends change to nullptr ( #5760 )
...
# Conflicts:
# backends/imgui_impl_dx10.cpp
# backends/imgui_impl_dx11.cpp
# backends/imgui_impl_dx12.cpp
# backends/imgui_impl_dx9.cpp
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_vulkan.cpp
# backends/imgui_impl_win32.cpp
# imgui_internal.h
2022-10-11 15:59:23 +02:00
ocornut
8a44c31c95
Scrolling: Further reduce unrelease mouse-wheel locked window timer + misc refactor ( #2604 , #3795 , #4559 )
...
The refactor are designed to minimize the diff for changes needed for #3795
2022-10-06 20:17:28 +02:00
ocornut
cb04326b46
Fixed ImGuiWindowFlags_UnsavedDocument clipping label in docked windows with no close button. [changes for docking] ( #5745 )
...
+ TabBar: starts displaying the unsaved document marker with a frame delay to match how close button is processed, otherwise the transition would be noticeable.
2022-10-04 18:08:29 +02:00
ocornut
85a368b58d
Fixed ImGuiWindowFlags_UnsavedDocument clipping label in docked windows with no close button. ( #5745 )
...
+ TabBar: starts displaying the unsaved document marker with a frame delay to match how close button is processed, otherwise the transition would be noticeable.
2022-10-04 18:03:56 +02:00
ocornut
f2a522d70d
ImDrawList: Not using alloca() anymore, lift single polygon size limits. ( #5704 , #1811 )
2022-09-30 15:58:55 +02:00
ocornut
d91211f9f2
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_win32.cpp
2022-09-29 22:02:23 +02:00
ocornut
fac8295d6e
IO: remove ImGuiInputEvent::IgnoredAsSame (revert part of 839c3100
), will filter earlier in next commit. ( #5599 )
...
Making it a separate commit as this leads to much indentation change.
2022-09-29 22:00:38 +02:00
ocornut
bd2355a047
Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple BeginMenu() call with same names). ( #1207 )
2022-09-29 19:25:26 +02:00
ocornut
3532ed1621
Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item in parent when the parent is not a popup. ( #5730 )
...
Replace BeginMenu/MenuItem swapping g.NavWindow with a more adequate ImGuiItemFlags_NoWindowHoverableCheck.
Expecting more subtle issues to stem from this.
Note that NoWindowHoverableCheck is not supported by IsItemHovered() but then IsItemHovered() on BeginMenu() never worked: fix should be easy in BeginMenu() + add test is IsItemHovered(), will do later
2022-09-29 18:44:19 +02:00
ocornut
d5d705069d
Various comments
...
As it turns out, functions like IsItemHovered() won't work on an open BeginMenu() because LastItemData is overriden by BeginPopup(). Probably an easy fix.
2022-09-29 18:44:19 +02:00
ocornut
d17627b9c6
InputText: leave state->Flags uncleared for the purpose of backends emitting an on-screen keyboard for passwords. ( #5724 )
2022-09-28 17:38:41 +02:00
ocornut
e0330c1696
Fonts, Text: Fixed wrapped-text not doing a fast-forward on lines above the clipping region. ( #5720 )
...
which would result in an abnormal number of vertices created.
2022-09-28 14:58:41 +02:00
ocornut
6fd2ee9416
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdl.cpp
# imgui_demo.cpp
2022-09-26 14:57:34 +02:00
ocornut
c261dac02f
Demo: moved ShowUserGuide() lower in the file, to make main demo entry point more visible + fix using IMGUI_DEBUG_LOG() macros in if/else.
2022-09-26 14:56:36 +02:00
ocornut
1dc7d0e633
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_win32.cpp
# imgui.cpp
2022-09-26 11:08:49 +02:00
ocornut
fd408c9790
Renamed and merged keyboard modifiers key enums and flags into a same set:. ImGuiKey_ModXXX -> ImGuiMod_XXX and ImGuiModFlags_XXX -> ImGuiMod_XXX. ( #4921 , #456 )
...
Changed signature of GetKeyChordName() to use ImGuiKeyChord.
Additionally SetActiveIdUsingAllKeyboardKeys() doesn't set ImGuiKey_ModXXX but we never need/use those and the system will be changed in upcoming commits.
2022-09-26 10:43:26 +02:00
ocornut
f359dca0dc
Misc input related changes to facilitate upcoming merges.
2022-09-22 19:00:30 +02:00
ocornut
4b522e145c
Experiment: ImGuiKey is now a typed enum, allowing ImGuiKey_XXX symbols to be named in debuggers. ( #4921 , #4537 )
...
May affect binding generators.
2022-09-20 12:42:29 +02:00
ocornut
64b88da21b
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui.cpp
# imgui.h
2022-09-09 20:48:57 +02:00
ocornut
cb48c81a44
Tabs: Fix initial tab state. Amend 3e6f948( ( #5572 )
...
Somehow this only triggers a failing test in docking branch.
2022-09-09 20:47:27 +02:00
ocornut
aceab9a877
Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. ( #5548 )
...
This incorrect pattern has been mentioned or suggested in: #4510 , #3355 , #1760 , #1490 , #4152 , #150
# Conflicts:
# imgui.cpp
2022-09-02 16:38:40 +02:00
ocornut
edcd5b113e
Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. ( #5548 )
...
This incorrect pattern has been mentioned or suggested in: #4510 , #3355 , #1760 , #1490 , #4152 , #150
2022-09-02 16:37:35 +02:00
ocornut
bc2002ab92
Merge branch 'master' into docking
2022-09-01 20:54:37 +02:00
Rokas Kupstys
b3ea01d86f
Menus: Fix sub-menu inhibition stopping working in some cases. (Amend WIP) ( #2517 , #5614 , noticed in #5546 )
...
Amend bda2cde6
Fixes the case where following menu hover sequence results in incorrect RestoreNavWindow (previously SourceWindow) pointing to opened sub-menu:
1. Hover "Menu -> Options" - Open ##Menu_01 window
2. Hover "Menu -> Colors" - SourceWindow incorrectly points to ##Menu_01 window
2022-09-01 17:02:46 +02:00
ocornut
e13913ed57
IsItemHovered: Added ImGuiHoveredFlags_DelayNormal, ImGuiHoveredFlags_DelayShort, ImGuiHoveredFlags_NoSharedDelay. ( #1485 )
...
IsItemHovered() can't have a non-zero default, but higher-level tooltip helpers may enable a different default later.
2022-08-24 21:32:13 +02:00
ocornut
db798fd5be
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_metal.mm
# imgui.cpp
# imgui_internal.h
2022-08-23 18:41:24 +02:00
ocornut
07b9999de9
Debug Log: added 'Clipper' events logging.
2022-08-23 15:40:07 +02:00
ocornut
b78738ff23
Internals: Docking: rename HoveredDockNode to DebugHoveredDockNode to clarify that it isn't usable for much other than debugging.
2022-08-22 19:18:06 +02:00
ocornut
d357e8504b
TestEngine: revert part of 5b0510c
as IMGUI_TEST_ENGINE_ITEM_ADD() woul see an erreneous hierarchy.
...
+ Fix typo (#5600 )
2022-08-22 14:36:32 +02:00
ocornut
ef6ba0d846
Misc: allowing override of IM_TABSIZE ( #5593 )
2022-08-20 19:54:57 +02:00
Rokas Kupstys
8cbd391f09
Docking: Add source dock node parameter DockContextCalcDropPosForDocking() to facilitate test engine (un)docking nodes before they are split out to their own window.
...
Metrics: Display dock_node->Windows in node metrics.
2022-08-08 15:33:19 +02:00
ocornut
839c31006b
Debug Log: Added IO events logging.
2022-08-08 11:58:57 +02:00
ocornut
e9f50fb87c
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2022-08-03 22:04:03 +02:00
ocornut
0a4ddd7246
Fix being unable to mouse wheel while dragging a payload (fix 1480bc5
, #4921 , #2891 )
2022-08-03 22:02:00 +02:00
ocornut
4a2ae06ca4
Changed signature of ImageButton() function: Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. ( #5533 , #4471 , #2464 , #1390 ).
...
Also removed frame_padding parameter from ImageButtonEx(), amend e0ec69d8
.
2022-08-03 21:04:33 +02:00
ocornut
e21f462f6f
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2022-08-03 15:29:04 +02:00
ocornut
28a123ca47
Internals: Docking: make DockContextFindNodeByID() more visible (instead of DockBuilderGetNode)
...
+ using defines for channel changes.
2022-08-03 15:22:19 +02:00
ocornut
2d38bc99b3
Internals: renamed recently added ImGuiInputReadFlags to ImGuiInputFlags. (Amend 8b8a61b
)
2022-07-22 17:05:34 +02:00
ocornut
1480bc5d4e
Added ImGuiKey_MouseXXX aliases. ( #4921 ) Reworked SetItemUsingMouseWheel() to use this for ActiveId. ( #2891 )
...
The rework of SetItemUsingMouseWheel() is half-complete since there's a HoveredIdUsingMouseWheel component. This will however be totally cleaned when we transtion to InputOwner system.
2022-07-08 18:32:25 +02:00
ocornut
105bb3ef8a
Legacy: clear g.ActiveIdUsingNavInputMask when active id is clear + Internals: added helpers GetKeyChordName(), ImGuiModFlags_All.
...
Amend 8b8a61b
2022-07-08 17:51:46 +02:00
ocornut
21fc57f2cf
Merge branch 'master' into docking
2022-07-08 16:09:30 +02:00
ocornut
8b8a61bdf9
Removed io.NavInputs[] and ImGuiNavInput enum. Kept inline redirection code. ( #4921 , #4858 , #787 , #1599 , #323 )
2022-07-08 16:02:07 +02:00
ocornut
a7a25ee19d
Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift. ( #2673 )
2022-07-07 14:18:08 +02:00
ocornut
4711b9b05a
Add trailing commas to enum (to simplify the diff/patch of further additions) ( #4537 )
...
Possible since we are now C++11 + fix warning in GetNavInputAmount().
2022-07-06 20:39:39 +02:00
ocornut
90ef327882
Reordered keys representing directions to follow a consistent L/R/U/D order everywhere. ( #2625 , #4921 , #3724 )
...
Amended to avoid static analysis false positive.
2022-07-06 17:48:01 +02:00
ocornut
f9ccdba352
Nav: Fix regression 93f02ee
+ Internals: Remove ImGuiNavReadMode_Pressed, ImGuiNavReadMode_Released.
...
Toward using keys.
2022-07-06 17:03:50 +02:00
ocornut
93f02ee0c6
Nav: Fixed moving window with gamepad or keyboard when running at very high framerate + removed ImGuiNavDirSourceFlags_RawKeyboard.
2022-07-06 16:46:57 +02:00
ocornut
0b2da67912
Internals: clarified that GetInputTextState(0) can not return a pointer. Replaced a use of __APPLE__ with io.ConfigMacOSXBehaviors.
2022-07-05 14:40:09 +02:00
ocornut
467a1cd4a5
Misc: io.Framerate moving average now converge in 60 frames instead of 120. ( #5236 , #4138 )
2022-07-01 17:09:58 +02:00
ocornut
5d0deebba4
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2022-06-30 20:17:48 +02:00
ocornut
0afc6cd310
Internals: InputTextEx() renames for correctness. enter_pressed -> validated, is_validate_enter -> is_enter_pressed
2022-06-30 15:31:42 +02:00
ocornut
873e9d35ac
Internals: renamed TreeNodeBehaviorIsOpen() to TreeNodeUpdateNextOpen(). Added internal TreeNodeSetOpen(id). ( #5423 )
2022-06-28 16:11:31 +02:00
ocornut
24dfe6db8a
Version 1.89 WIP
2022-06-27 16:55:55 +02:00
ocornut
088ddef98a
Tables: extracted some code into TableBeginContextMenuPopup() for easier reuse for appending into context menu.
2022-06-27 16:51:08 +02:00
ocornut
9cd9c2eff9
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui.cpp
# imgui_widgets.cpp
2022-06-21 18:28:33 +02:00
ocornut
9aae45eb4a
Version 1.88
...
(fix "Show Debug Log" checkbox in Metrics window)
2022-06-21 18:11:50 +02:00
ocornut
c4b9101759
TabBar: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their initial width more precisely.
...
Has been the case before but adding support for SetNextItemWidth() #5262 made this more noticeable.
2022-06-21 17:13:13 +02:00
ocornut
4b97296148
TabBar: TabItem() now reacts to SetNextItemWidth() and SetNextItemOpen(true). ( #5262 )
2022-06-21 17:13:12 +02:00
ocornut
d3fd2630b7
Sliders: An initial click within the knob/grab doesn't shift its position. ( #1946 , #5328 ) + Adjust default GrabMinSize.
2022-06-20 18:13:10 +02:00
ocornut
e135cdbc24
Merge branch 'master' into docking + update for IMGUI_DEBUG_LOG calls.
...
# Conflicts:
# backends/imgui_impl_dx12.cpp
# imgui.cpp
# imgui_internal.h
2022-06-15 15:39:23 +02:00
ocornut
dd28500835
Debug: Add more log. Reworked IMGUI_DEBUG_PRINT IMGUI_DEBUG_PRINTF. Added internal IsDragDropActive() helper.
...
DebugLog() output to TTY by default.
Amend 1d6e34f
.
2022-06-15 11:31:19 +02:00
ocornut
2ed9e21eba
Nav, Internals: wrap changes to g.NavWindow into a helper function to help track/log changes.
...
Amend 076d8fc
. Eventually we should REALLY clean up the SetNavWindow SetNavID SetFocusID FocusWindow fiasco.
2022-06-13 19:05:55 +02:00
ocornut
1d6e34f3f9
Debug: Added ShowDebugLogWindow().
...
Internal: renamed old IMGUI_DEBUG_LOG() to IMGUI_DEBUG_PRINT().
Amended once.
2022-06-13 19:05:55 +02:00
ocornut
e900ca355e
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_metal.mm
# imgui.cpp
# imgui.h
2022-06-10 19:29:17 +02:00
Rokas Kupstys
0b1bcfcc20
Menus: Separate menu sets by nav layer. ( #3496 , #4797 ) + Demo: Remove incorrect and useless suggestion to use PushID().
...
Fixes a common case where opening menu in one nav layer and hovering a menu in another nav layer would open that menu without a click.
2022-06-08 17:17:54 +02:00
ocornut
23a785aeb3
Internals: wrapped used of g.TempBuffer into ImFormatStringToTempBuffer/ImFormatStringToTempBufferV helpers.
...
This leaves us room for growing the buffer if needed, and gives us a resizable buffer available for other work.
2022-06-07 19:20:03 +02:00
ocornut
64d6c30562
InputText: Fixed an undo-state corruption issue when editing buffer before reactivating item. ( #4947 ) + Metrics: Added "InputText" section.
2022-06-07 15:34:21 +02:00
ocornut
7b5a8e4f2b
Merge branch 'master' into docking (wanted for #4468 , #3381 , #2981 , #4825 , #4832 , #5127 )
...
# Conflicts:
# backends/imgui_impl_opengl3.cpp
2022-05-30 15:26:12 +02:00
ocornut
7bf07d2526
Renamed CaptureMouseFromApp() and CaptureKeyboardFromApp() to SetNextFrameWantCaptureMouse() and SetNextFrameWantCaptureKeyboard(). Added demo. ( #5304 , #4831 , #4480 , #533 )
2022-05-23 11:22:46 +02:00
ocornut
6b5a2426d7
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_metal.mm
# backends/imgui_impl_opengl3.cpp
# imgui.cpp
2022-05-17 11:59:32 +02:00
ocornut
9e0517a134
DrawList: Fixed divide-by-zero or glitches with Radius/Rounding values close to zero. ( #5249 , #5293 , #3491 )
...
Amend 8ed34af6f8
2022-05-13 17:19:51 +02:00
ocornut
9779cc2fe2
Internals: shallow changes to simplify diff of upcoming commits. Should have no side-effect.
2022-05-06 14:20:01 +02:00
ocornut
6d27fecce1
Debug: added DebugTextEncoding() to help diagnose between text encoding issues and font loading issues. Simplified code + extracted DebugNodeFontGlyph().
...
Helper to diagnose issues such as #4866 , #3558 , #3436 , #2233 , #1880 , #1780 , #905 , #832 , #762 , #726 , #609 , #565 , #307 )
2022-05-03 19:23:54 +02:00
ocornut
414165d23f
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# imgui.cpp
2022-05-03 14:40:17 +02:00
ocornut
3e5dde9a26
Tables: Fixed incorrect auto-fit of parent windows when using non-resizable weighted columns. ( #5276 )
2022-05-02 16:45:27 +02:00
ocornut
314c7bd12f
Internals: renamed ImGuiInputReadMode to ImGuiNavReadMode (internals) to avoid ambiguity with upcoming flags. + minor tweak
2022-04-28 17:29:47 +02:00
ocornut
8dd5425182
Merge branch 'master' into docking
...
# Conflicts:
# docs/TODO.txt
2022-04-22 19:15:37 +02:00
ocornut
5b29d14783
Layout: Fixed mixing up SameLine() and SetCursorPos() together. SameLine() is a stateful.
...
+ minor unrelatedcomments.
2022-04-22 17:48:06 +02:00
ocornut
28b2089ee4
Internals: moved ItemSize() variant to inline + comment. + Tidying up todo list ( #5191 )
2022-04-13 21:48:21 +02:00
ocornut
6d15a506fa
Internals: removed GetIDNoKeepAlive() now that it is the same as GetID(). ( #5181 )
...
Amend 9038678
2022-04-12 14:49:21 +02:00
ocornut
505f19e3b0
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
# imgui_internal.h
2022-04-05 17:55:53 +02:00
ocornut
2c03aac6d3
Renamed ImGuiKeyModFlags to ImGuiModFlags (Breaking but technically never advertised type)
2022-04-05 15:45:00 +02:00
ocornut
c521883be4
Sliders, Drags: Fixed manual input when using hexadecimal display format string. ( #5165 , #3133 )
...
InputScalar: Fixed manual input when using %03d style width in display format string.
(amended once)
2022-04-04 18:42:04 +02:00
ocornut
508c9aaf60
Sliders, Drags: Fixed using hexadecimal display format strings (pretty much never worked). ( #5165 , #3133 )
...
Ditched unnecessary code. When transitioning from float in 3e8087458
we added an unnecessary path there, which evolved in c5fb92955
.
2022-04-04 14:43:30 +02:00
ocornut
f5c5926fb9
Internals: remove obsolete variants of RenderArrow(), RenderBullet(), ImHash() + misc comments.
2022-03-29 15:43:47 +02:00
ocornut
2747a8ca40
Turned ImVec2 to const ref to RenderChar(), RenderText(), ColorButton(), PushClipRect(). for consistency. Comments about polygon filling winding order.
2022-03-29 12:13:31 +02:00
ocornut
3587ee492b
Viewports: store Viewport field in ImGuiWindow to facilitate using code accross branches + fix PVS warnings.
2022-03-25 15:40:20 +01:00
ocornut
16ddc1698d
Fixed creating multiple-context (regression in 28ba54a
). ( #5135 )
2022-03-24 11:01:46 +01:00
ocornut
377b864bb4
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_dx12.cpp
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_sdl.cpp
# imgui_internal.h
# imgui_widgets.cpp
2022-03-23 17:21:34 +01:00
ocornut
28ba54a32a
Internals: add AddSettingsHandler(), RemoveSettingsHandler().
2022-03-14 10:23:30 +07:00
ocornut
fd06ed833b
Misc: tweaks + fix warnings on backends withtout -wno-memaccess ( #4995 , #5104 )
2022-03-13 17:57:32 +07:00
ocornut
0f14933577
Tables: Fixed incorrect border height used for logic when resizing one of several synchronized instance of a same table ID, when instances have a different height. ( #3955 , #3565 )
2022-03-01 18:47:03 +01:00
ocornut
9948535118
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui.cpp
# imgui.h
# imgui_draw.cpp
2022-02-17 18:47:43 +01:00
ocornut
2dfa71fad5
Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate. Using KeyModAlt. Removed KeyModsPrev.
2022-02-16 20:08:58 +01:00
ocornut
5854da10e6
Declare other structures as constexpr ( #4995 ) + rename ImGuiInputEventType_Char to ImGuiInputEventType_Text for consistency with event structure.
2022-02-11 12:29:55 +01:00
ocornut
aa79d0cd2f
Stack Tool: Added option to copy item path to clipboard. ( #4631 )
2022-02-08 16:36:54 +01:00
ocornut
88de982071
Version 1.88 WIP
2022-02-08 14:45:26 +01:00
ocornut
aa86800092
Internals: rework RenderMouseCursor() signature so we can use it in docking branch more naturally. (Merged from master+ rework for docking)
...
# Conflicts:
# imgui.cpp
# imgui_draw.cpp
2022-02-08 12:29:44 +01:00
ocornut
97b1abd6dd
Internals: rework RenderMouseCursor() signature so we can use it in docking branch more naturally.
2022-02-08 12:22:46 +01:00
ocornut
1ee252772a
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2022-02-07 18:20:10 +01:00
ocornut
c71a50deb5
Version 1.87
2022-02-07 18:16:54 +01:00
ocornut
8eb8689391
Docking: Tabs use their own identifier (in order to make window->ID refer to whole window in test engine). Also prevents Tab ID from clashing with "" which was common.
2022-02-02 23:23:13 +01:00
ocornut
d378e4088f
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
# imgui_draw.cpp
2022-02-01 15:46:42 +01:00
ocornut
6f73dbea80
TestEngine: submit window data to item system.
2022-02-01 15:20:32 +01:00
ocornut
35e197f413
TestEngine: fixed InvisibleButton() and ArrowButton() not calling the info macro.
2022-02-01 11:52:38 +01:00
ocornut
64d910ad37
Removed IMGUI_API from inline templated classes. ( #4962 )
2022-01-29 18:10:36 +01:00
ocornut
27004aca70
Revert moving ImGuiKeyModFlags to internal.h (amendc906c65)
...
# Conflicts:
# imgui.cpp
2022-01-28 15:53:41 +01:00
ocornut
49e38a5b32
Revert moving ImGuiKeyModFlags to internal.h (amendc906c65)
2022-01-28 15:53:09 +01:00
ocornut
d5f0d45ae4
Merge branch 'master' into docking + remove two _PopUnusedDrawCmd() from docking branch, following 718daa1
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_win32.cpp
# imgui.cpp
# imgui_internal.h
2022-01-27 17:50:31 +01:00
ocornut
c906c65cac
(BREAKING) Replaced AddKeyModsEvent() added by 790132a
in favor of unified key enum system. Backends: update most. ( #4921 , #4858 )
...
Sorry this is an unusual breaking but since we are WIP it is a good time to make a correction.
2022-01-27 17:46:48 +01:00
ocornut
8555335935
Shallow alignment of ImGuiKey stuff + moving some in internals. Internals: add offset to ImBitArray<>, simpify ActiveIdUsingKeyInputMask.
2022-01-25 18:11:34 +01:00
ocornut
cff0342454
Internals: moved lines into a Inputs section.
2022-01-21 17:49:04 +01:00
ocornut
3e0d6ec895
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_vulkan.cpp
# backends/imgui_impl_vulkan.h
# backends/imgui_impl_win32.cpp
# imgui.cpp
# imgui.h
# imgui_demo.cpp
# imgui_internal.h
2022-01-21 12:39:15 +01:00
ocornut
62d6be3747
IO: Removed ImGuiInputSource from public api for now, unnecessary. ( #4858 , #787 )
2022-01-20 17:39:25 +01:00
ocornut
f33bb99821
IO: added AddKeyAnalogEvent() and support for ImGuiKey_GamepadXXXX. ( #4858 , #787 )
2022-01-20 17:24:52 +01:00
ocornut
26d04c948f
Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). ( #4918 ).
2022-01-19 18:03:36 +01:00
ocornut
97b1ffcb3b
IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData().
2022-01-19 15:42:27 +01:00
ocornut
91ae56af45
Removed support for legacy arithmetic operators (+*/) when inputing text into a slider/drag. ( #4917 , #3184 )
2022-01-19 15:10:42 +01:00
ocornut
e278277d53
IO: added AddMouseViewportEvent() + used in backends.
2022-01-18 17:24:59 +01:00
ocornut
8567a4cca3
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_win32.cpp
# imgui_demo.cpp
# imgui_internal.h
2022-01-17 18:19:20 +01:00
ocornut
90a6961638
IO: apply same flooring as UpdateMouseInputs() in dupe event processing. ( #4858 ) + provision for test engine.
2022-01-17 18:10:51 +01:00
ocornut
7374b96f5c
IO: Added input queue. ( #4858 , #2787 , #1992 , #3383 , #2525 , #1320 )
2022-01-17 17:36:55 +01:00
ocornut
eb823655af
Removed support for pre-C++11 compilers. We'll stop supporting VS2010. ( #4537 )
...
Build all
2022-01-17 11:54:11 +01:00
ocornut
0647ba3bad
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_osx.h
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_win32.cpp
2022-01-13 18:36:23 +01:00
ocornut
290c51735e
Fixed warning in ImFloorSigned(). ( #4889 )
2022-01-12 14:18:34 +01:00
ocornut
956e03009a
Backends: OSX: Build fIx. Made GetKeyName() input tolerant. Internals: added GetNavInputName().
2022-01-11 18:48:16 +01:00
ocornut
ef681e7019
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_glfw.h
# backends/imgui_impl_osx.h
# backends/imgui_impl_osx.mm
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_sdl.h
# backends/imgui_impl_win32.cpp
# backends/imgui_impl_win32.h
# imgui.cpp
2022-01-10 15:24:21 +01:00
ocornut
bf08c13e9b
Inputs: Extra Keys / AddKeyEvent(): bidirectional mapping, basic CI, simplify backends, asserts on misuses, tested backward compat. ( #2625 , #4858 , #2787 )
...
(edit: simplified backends merged into previous commits to make history clearer)
2022-01-10 15:09:56 +01:00
thedmd
3b66929301
Inputs: Extra Keys / AddKeyEvent(): Added ImGuiKey values, io.AddKeyEvent(), GetKeyName(), IMGUI_DISABLE_OBSOLETE_KEYIO. Obsoleted GetKeyIndex(), io.KeyMap[], io.KeysDown[]. ( #2625 , #4858 , #2787 )
2022-01-10 15:09:56 +01:00
ocornut
704ab1114a
Merge branch 'master' into docking. Remove Platform_SetImeInputPos. Remove backend-side IME implementation. Rrevert removal of MouseDragMaxDistanceAbs in 206b9ea
. ( #2589 , #3113 )
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_sdl.cpp
# backends/imgui_impl_win32.cpp
# imgui.cpp
# imgui.h
# imgui_internal.h
# imgui_widgets.cpp
2022-01-05 14:30:20 +01:00
ocornut
2706c9d66e
Platform IME: reworked internals to simplify adding new features.
2022-01-05 13:47:20 +01:00
ocornut
9c8f288d1a
Viewports: Fixed a CTRL+TAB crash with viewports enabled ( #4023 , #787 ) (amend 1dc3af3
, 23ef6c1
, 657073a
)
...
+ Expose FindHoveredViewportFromPlatformWindowStack() in imgui_internal.h
2021-12-30 21:46:09 +01:00
ocornut
2aa9959553
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_glfw.cpp
# backends/imgui_impl_opengl3.cpp
# docs/CHANGELOG.txt
2021-12-30 21:42:19 +01:00
ocornut
89a28209e8
Version 1.87 WIP + Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init, added in 1.86 ( #4468 , #4830 )
2021-12-26 20:02:02 +01:00
ocornut
980deb4c9e
Add missing include guard to avoid declaring ImFontAtlasGetBuilderForStbTruetype() function.
...
https://github.com/cimgui/cimgui/issues/193
https://github.com/imgui-rs/imgui-rs/pull/582
2021-12-26 19:51:10 +01:00
ocornut
15b4a064f9
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_win32.cpp
# examples/example_marmalade/main.cpp
# imgui.cpp
# imgui.h
2021-12-22 16:02:04 +01:00
ocornut
512c54bbc0
Version 1.86
2021-12-22 15:31:13 +01:00
ocornut
248ed1b01d
Internals: UpdateWindowInFocusOrderList: amend a528398
to fix docking. ( #3496 , #4797 )
2021-12-15 14:28:10 +01:00
ocornut
1c4066cd9e
Internals: UpdateWindowInFocusOrderList: amend a528398
to fix docking. ( #3496 , #4797 )
2021-12-15 14:27:56 +01:00
ocornut
cd36acc88b
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_osx.h
# backends/imgui_impl_osx.mm
# imgui.cpp
2021-12-15 12:10:03 +01:00
ocornut
11638fdf7d
Menus: reuse more menu windows when stacked over popups.
...
This is actually mostly aimed at ensuring the _ChildWindow flag on menu window doesn't vary as this would cause issues with our current g.WindowsFocusOrder[] scheme
2021-12-13 19:35:16 +01:00
ocornut
e31d116d37
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_opengl2.cpp
# imgui.cpp
# imgui_internal.h
2021-12-09 11:52:23 +01:00
Rokas Kupstys
b38af0f522
Popups: Fix popups being closed by newly appearing windows. ( #4317 )
...
* Popups/modals now remain open when new windows are created from within popup/modal begin stack.
* Modals are not closed when new window appears behind active modal.
Tested by "window_popup_interruptions"
2021-12-07 15:52:13 +01:00
ocornut
c1b70e0391
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2021-12-06 19:17:03 +01:00
ocornut
027a7ba3eb
Clipper: use line size instead of cursor comparaison when range are large. ( #3609 , #3962 + https://github.com/ocornut/imgui_club/issues/20 )
2021-12-06 17:17:43 +01:00
ocornut
a76bc52da5
Window, Clipper: store initial precision loss and apply in clipper. ( #3609 , #3962 + https://github.com/ocornut/imgui_club/issues/20 )
2021-12-06 16:19:47 +01:00
ocornut
6e141a9cae
Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) + clipper tweaks ( #3609 , #3962 + https://github.com/ocornut/imgui_club/issues/20 )
...
This does NOT fix all problems with large ranges and floating point precision, it merely attenuate them.
2021-12-06 12:09:38 +01:00
ocornut
23ef6c149e
Reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame (backported 1dc3af3
from docking)
2021-12-03 19:21:39 +01:00
ocornut
1dc3af381a
Nav, Docking: reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame, which will simplify things for an upcoming commit.
...
(Will backport some of this back to master now.)
2021-12-03 19:18:57 +01:00
ocornut
da3a36eefd
Backport from docking branch: minor stuff.
...
Fixed software mouse cursor being rendered multiple times if Render() is called more than once.
2021-12-03 19:11:58 +01:00
ocornut
b16f738d04
Docking: docked windows honor ImGuiCol_WindowBg. Host window in charge of rendering seams. ( #2700 , #2539 + Docked windows honor display their border properly. ( #2522 )
...
Plus: better support for transparent one in nodes
Side effects: DockContextBindNodeToWindow doesn't alter node->IsVisible.
Side effects: ImDrawList:: _ResetForNewFrame() needs to merge, sane (in case of
(Amended, force-pushed)
2021-12-03 14:46:34 +01:00
ocornut
bf80204e63
Docking: internals: extracted rounding corner calculation into reusable CalcRoundingFlagsForRectInRect() function.
2021-12-02 20:22:03 +01:00
ocornut
8733ca49b0
Docking: Fixed single-frame node pos/size inconsistencies when window stop or start being submitted.
...
Fix 718e15c7d
while preserving its intended property. Tested by "docking_window_appearing_layout". (#2109 )
2021-12-02 18:46:42 +01:00
ocornut
848d21b6b5
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_sdlrenderer.cpp
# backends/imgui_impl_sdlrenderer.h
# imgui.cpp
# imgui_widgets.cpp
2021-12-01 15:37:40 +01:00
ocornut
f087a5b856
Metrics: Added a node showing windows in submission order and showing the Begin() stack.
2021-11-30 16:04:19 +01:00
ocornut
9d704d99d3
Internals: wrapped ImQsort() in an inline function + added a define guard.
2021-11-30 12:59:00 +01:00
averne
cb5c73f64a
Fix: IM_DEBUG_BREAK macro on ARM GCC ( #4767 )
2021-11-29 00:05:57 +01:00
ocornut
65f4be1a10
InputText: Internals: moved "apply_new_text" application code to reduce noise in a future commit (will be for #4714 ) + removed unused fields.
...
The move would ideally be no-op. technically we now clear state->Flags before calling ResizeCallback but those are unrelated. The 2 unused fields were incorrectly added by 24ff25981
.
2021-11-25 15:12:23 +01:00