ocornut
d6d94d90bf
Version 1.89.9 WIP
...
+ Minor typo fixes
2023-08-03 19:19:21 +02:00
ocornut
f7eea63872
Version v1.89.8
2023-08-01 12:53:57 +02:00
septag
f1781c20a3
Added IMGUI_DISABLE_STB_SPRINTF_IMPLEMENTATION config macro to disable stb_sprintf implementation ( #6626 )
2023-07-25 12:07:32 +02:00
ocornut
db66e33e9e
Tables: fixed GetContentRegionAvail().y report not taking account of lower cell padding or of using ImGuiTableFlags_NoHostExtendY. ( #6619 )
...
Made GetContentRegionMax() fully defer to WorkRect when inside a table container.
2023-07-20 13:26:58 +02:00
ocornut
2bc5d17ac3
Tables: fixed calculation of multi-instance shared decoration/scrollbar width of scrolling tables. ( #5920 , #6619 )
...
Avoid width variation when resizing down a table hosting a child window.
+ shallow tweak to GetContentRegionMax().
2023-07-20 12:01:29 +02:00
ocornut
d342ec10cc
Overlap, IsItemHovered: clarification on using IsItemHovered() on a non-reactive item after a reactive overlappable one. ( #6610 )
2023-07-18 11:18:58 +02:00
ocornut
0e8eb8c48e
Removed _MSC_VER <= 1500 checks for Visual Studio 2008 or earlier.
...
Our codebase requires VS2012+ since a while.
2023-07-13 12:38:16 +02:00
ocornut
863ac31f01
Doc: various tweaks + tweak imconfig comments.
2023-07-13 12:38:16 +02:00
ocornut
6888e6cdff
ImDrawData: call _PopUnusedDrawCmd() later. as RenderDimmedBackgrounds() rely on a valid command being there (especially in docking branch). ( #6406 , #4879 , #1878 )
...
Amend/fix dbeeeae
for docking.
+ Build fix when using IMGUI_DISABLE_DEBUG_TOOLS
2023-07-12 18:39:48 +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
1a9ddd2396
ImDrawData: added AddDrawList() helper function. ( #6406 , #4879 , #1878 )
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
140726d23f
Fixed CTRL+Tab dimming background assert when target window has a callback in the last ImDrawCmd. ( #4857 , #5937 )
2023-07-10 15:10:42 +02:00
ocornut
6aa408c6af
IO: Added io.ClearEventsQueue(). Obsoleted io.ClearInputCharacters(). ( #4921 )
...
cc #2425 #1153 #1600
2023-07-06 15:55:17 +02:00
ocornut
3fe4319314
Version 1.89.8 WIP
2023-07-05 14:17:46 +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
655aae5911
Comments + docs: tidying up todo list + demo tweak for tooltips.
2023-06-30 14:58:49 +02:00
ocornut
6137443d24
Overlap: moved ImGuiItemflags_AllowOverlap handling from ButtoBehavior() to ItemHoverable() now that it is possible. ( #6512 , #3909 , #517 )
...
This allows DragXXX, SliderXXX, PlotXXX etc to honor SetNextItemAllowOverlap().
2023-06-28 14:42:14 +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
10c7709f30
Overlap: IsItemHovered: Changed behavior to return false when querying an item using AllowOverlap mode. Added ImGuiHoveredFlags_AllowWhenOverlappedByItem, ImGuiHoveredFlags_AllowWhenOverlappedByWindow., ( #6512 , #3909 , #517 )
2023-06-28 14:40:47 +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
b03a4993b3
Internals: reorder tests in ItemHoverable() so most likely early out are taken first.
2023-06-27 15:44:35 +02:00
ocornut
836aff3467
Drag and Drop: Amend ItemHoverable() logic for item with no identifier.
...
Amend d5d4d70
2023-06-27 15:23:19 +02:00
ocornut
d5d4d709c7
Drag and Drop: moved "drag souce doesn't report as hovered" from ButtonBehavior() to ItemHoverable().
...
Ensure DragXXX, SliderXXXX, InputText, PlotXXX follow same logic. Amend 251f178a6
, a33f0d1f7
2023-06-27 14:44:39 +02:00
ocornut
6b2e03c5b1
GetKeyName(): Fixed assert with ImGuiMod_XXX values when IMGUI_DISABLE_OBSOLETE_KEYIO is set.
2023-06-22 22:03:02 +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
b60acfa87d
Tooltips: Added SetItemTooltip(), BeginItemTooltip(). Improved Demo section.
2023-06-20 15:04:14 +02:00
ocornut
0f72652c2d
IsItemHovered, Tooltips: Added io.HoveredFlagsForTooltipMouse, io.HoveredFlagsForTooltipNav now pulled by ImGuiHoveredFlags_Tooltip. ( #1485 )
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
d4b94bd65b
(Breaking) Moved io.HoverDelayShort/io.HoverDelayNormal to style.HoverDelayShort/style.HoverDelayNormal. ( #1485 )
2023-06-20 15:04:13 +02:00
ocornut
f09ef23ae6
IsItemHovered, Tooltips: Tweak default delay again. ( #1485 )
...
Amend eec344c
2023-06-20 14:43:38 +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
89d3dabf2e
Modals: In the case of nested modal, made sure that focused or appearing windows are moved below the lowest blocking modal (rather than the highest one). ( #4317 )
...
Fix FindBlockingkModal() which didn't do what the comments say for the first 2 lines.
This is also fixing a crash in FindBlockingModal() which can only happen with dock node, see "window_popup_nested_interruptions_2" and viewport_platform_focus_4" tests.
The dock-node related crash comes from the fact that automatic dock node and implicit debug window don't share a common ancestor, so ParentWindowInBeginStack ends up NULL before the loop had a chance to find a match.
2023-06-14 21:58:28 +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
534340cd88
Tooltips: Tweak default offset for non-drag and drop tooltips.
2023-06-13 15:27:46 +02:00
ocornut
e95d66faa8
Clipper: Rework inner logic to allow functioning with a zero-clear constructor. ( #5856 )
2023-06-13 14:55:02 +02:00
ocornut
9c16976749
Debug Tools: Added 'io.ConfigDebugIniSettings' option to save .ini data with extra comments.
...
Moved from compile-time to runtime flag. Note: commit in master is not particularly useful. Docking version will add stuff.
2023-06-13 11:54:29 +02:00
ocornut
4fab72b40e
BeginChild/Tables: Fixed BeginChild temporary activation id collision. Fixes regression in 1.89.6 leading to the first column of tables with either ScrollX or ScrollY flags from being impossible to resize. ( #6503 )
2023-06-09 14:01:21 +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
5319d1cffa
Version 1.89.6
2023-05-31 14:47:32 +02:00
ocornut
88e7d773df
Backends: SDL_Renderer2: Renamed 'imgui_impl_sdlrenderer.h/cpp' to 'imgui_impl_sdlrenderer2.h/cpp' ( #6286 )
2023-05-30 20:11:19 +02:00
ocornut
7e03ae3240
Window: Fixed resizing from upper border when io.ConfigWindowsMoveFromTitleBarOnly is set. ( #6390 )
2023-05-25 15:23:01 +02:00
ocornut
7947f327de
Demo: added casing swap demo to clarify use of ImGuiInputTextFlags_CallbackCharFilter. ( #6457 ) + Metrics: simplified some code.
2023-05-25 14:19:11 +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
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
GamingMinds-DanielC
e489e40a85
Clipper: Amend ecb0aaa
( #6424 , #3841 )
2023-05-15 14:06:16 +02:00
ocornut
ecb0aaa7c2
Clipper: Renamed ForceDisplayRangeByIndices() to IncludeRangeByIndices(). ( #6424 , #3841 ) + commented out obsolete ImGuiListClipper() constructor.
2023-05-15 12:06:29 +02:00
ocornut
a550263d6c
Misc: made ErrorCheckEndWindowRecover() handle font stack. ( #6431 , #1651 )
2023-05-15 11:15:13 +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
430c05991c
Docs: added more detailed information about UTF-8 encoding.
...
+ Revert mistakenly committed Win32+DX11 main.cpp from last commit.
2023-05-10 12:54:51 +02:00
ocornut
0397321be0
Debug Tools: Added 'io.ConfigDebugIgnoreFocusLoss' option. ( #4388 , #4921 )
2023-05-09 20:28:08 +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
15da1a9abc
Fixed misleading local name ( #4493 ) + minor typo ( #6369 )
2023-04-25 16:39:02 +02:00
ocornut
b47507951e
Nav: Fixed CTRL+Tab into a root window with only childs with _NavFlattened flags erroneously initializing default nav layer to menu layer.
2023-04-24 21:00:00 +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
da3d7e1587
Focus: added an early out in FocusWindow() for the common case.
2023-04-24 12:18:55 +02:00
ocornut
4d42450a73
Focus: amend ImGuiFocusRequestFlags_UnlessBelowModal to bring to front-most below the modal, simplify code in Begin(). ( #6357 , #4317 )
2023-04-21 19:07:45 +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
662ce46971
Debug Log: Fixed not parsing 0xXXXXXXXX values when the identifier is at the end of the line.
2023-04-20 14:52:59 +02:00
ocornut
d6a7aca2f4
Nav: Debug: tweak debug facilities.
2023-04-18 15:47:29 +02:00
ocornut
064153fca4
Version 1.89.6 WIP
2023-04-17 14:40:00 +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
18d72a9142
Inputs: added a unique event identifier in ImGuiInputEvent.
2023-04-11 15:07:42 +02:00
Michael Martz
506f7e0074
Using nullptr in locations where warning disable is not convenient. ( #6313 , #4537 )
2023-04-11 11:33:50 +02:00
ocornut
9203883bbe
Comments + Metal using SetTexID(0) for consistency.
2023-04-11 11:22:42 +02:00
ocornut
8738ed88f0
Fixed FindWindowSettingsByID() being able to return a deleted setting.
2023-04-06 18:50:24 +02:00
ocornut
c9fe7ebc7b
IO: Input queue trickling adjustment for touch screens. ( #2702 , #4921 )
...
+ amend two comments in imgui.h
2023-04-04 21:05:27 +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
13931fd851
Redirecting domain name
...
Tired of paying/maintaining two domains names and .org tend to be fluctuating + changing host company for sponsoring.
2023-04-03 15:07:20 +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
84fd0c7ff4
Inputs, IO: record MouseWheelRequestAxisSwap information. Apply in UpdateMouseWheel() before legacy ctrl+wheel.
2023-03-29 17:09:58 +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
e55a0ef107
IO: avoid changing context in AddKeyAnalogEvent(). Amend 7269498
. ( #6199 , #6256 , #4921 , #5856 )
2023-03-21 14:32:37 +01:00
cfillion
7269498ecc
IO: actually fixed adding events from inactive context ( #6199 , #6256 , #4921 , #5856 )
2023-03-21 14:19:59 +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
24a44b9abe
Version 1.89.5 WIP
2023-03-15 12:25:20 +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
552969e33e
BeginTooltip: correctly testing return value of BeginTooltipEx() even though it always return true in current code.
...
Amend 3b2f617
2023-03-14 14:28:41 +01:00
domgho
6ca1556d02
Nav: Fixed SetItemDefaultFocus() from not scrolling when item is partially visible. ( #2814 , #2812 )
2023-03-10 19:12:04 +01:00
ocornut
2bb9e35a48
Nav: Tabbing now cycles through all items when ImGuiConfigFlags_NavEnableKeyboard is set. ( #3092 , #5759 , #787 )
2023-03-10 18:35:52 +01:00
ocornut
e83fb468c6
Renamed PushAllowKeyboardFocus()/PopAllowKeyboardFocus() to PushTabStop()/PopTabStop(). ( #3092 )
2023-03-09 18:53:57 +01:00
ocornut
a322122f74
InputText: Fixed not being able to use CTRL+Tab while an InputText() using Tab for completion or textinput is active.
...
(regresion from 1.89) + removed unnecessary if block in NavProcessItem()
2023-03-09 16:24:03 +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
b5f9381036
Made internal clipboard/IME handlers not rely on implicit GImGui context ( #5856 )
...
Code in SetPlatformImeDataFn_DefaultImpl amends 3a90dc389
by temporarily setting field in caller site.
2023-03-08 16:21:33 +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
5a1e6b60a2
Nav: Fixed an issue with Gamepad navigation when the movement lead to a scroll and frame time > repeat rate. ( #6171 )
2023-03-08 14:03:58 +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
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
e9743d85dd
Drag and Drop: Clear state on EndDragDropTarget() with delivery + fixed handling of overlapping targets when smaller one is submitted before and can accept the same data type. ( #6183 , #5817 )
2023-02-21 21:23:54 +01:00
Giuseppe Barbieri
2ee77aa6be
Missing closing parenthesis in debug popup log ( #6177 )
2023-02-20 14:43:40 +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
204cb4d226
Version 1.89.4 WIP
2023-02-15 15:35:56 +01:00
ocornut
458a109031
Version 1.89.3
2023-02-14 16:00:18 +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
fac19e1883
Backends: SDL2:+SDL3 Implement SetPlatformImeDataFn (amends). ( #6071 , #1953 ) + fix SDL3 setting PlatformHandleRaw. ( #6146 )
2023-02-07 19:29:44 +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
1b27ac982f
Backends+Examples: SDL2: renamed imgui_impl_sdl.cpp/.h to imgui_impl_sdl2.cpp/.h. ( #6146 )
...
+ CI: Update Windows CI to update SDL 2.26.3 instead of 2.0.10
2023-02-07 12:04:38 +01:00
ocornut
d6ea56dfd9
Tables: amend f799a29
with a better solution + fix potential overflow ( #6140 )
2023-02-03 22:50:43 +01:00
ocornut
3617a96372
Backends, Inputs: Made horizontal scroll wheel and horizontal scroll direction consistent accross backends/os. ( #4019 , #6096 , #1463 )
...
Documented assumptions.
2023-02-01 21:29:08 +01:00
nahkhiir
2efebe3315
ShowFontAtlas, Demo: optionally use style text color for tint. ( #6129 )
2023-01-31 18:12:42 +01:00
ocornut
27f2dd56d6
Internals: move "%s" skip-formatting logic to ImFormatStringToTempBuffer() function, meaning Text() and all the *V() functions can also benefit from it. ( #3466 )
...
Amend 645a6e0
and 23a785a
.
2023-01-27 15:24:23 +01:00
ocornut
5741cbae45
Internals: ImFileOpen: fixed misleading use of ImWchar (would allocate more when ImWchar=ImWchar32) + update version for previous changes namely tab bar ones.
2023-01-25 20:34:48 +01:00
ocornut
07490618ae
Misc: Tolerate zero delta-time under Emscripten. ( #6114 , #3644 )
2023-01-25 14:13:12 +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
739a79b1e9
ImDrawList: Added missing early-out in AddPolyline() and AddConvexPolyFilled() when color alpha is zero. Window: Avoid rendering shapes for hidden resize grips.
2023-01-24 17:30:50 +01:00
ocornut
ccf94e2e6e
Strip seemingly unecessary tests, as UTF-8 decoder can not return null since 9cca1b2e9
2023-01-12 12:46:06 +01:00
ocornut
55b8ce9b23
Reword ImTextCharFromUtf8() to avoid a warning + marked UTF-8 functions with IM_MSVC_RUNTIME_CHECKS_OFF. ( #5987 )
...
First change confirmed same code-gen.
2023-01-11 17:10:53 +01:00
ocornut
1297a2be52
Text: Tweaked rendering of three-dots "..." ellipsis variant. Baking more data. ( #2775 , #4269 )
...
Ideally we're bake a single glyph but it's currently difficult to setup in our font building process.
2023-01-11 16:37:47 +01:00
ocornut
8801f02949
Text: Fix clipping of single-character "..." ellipsis when font is scaled. ( #2775
2023-01-11 15:56:33 +01:00
ocornut
482ac70a0b
Version 1.89.3 WIP
2023-01-11 15:52:30 +01:00
ocornut
d7c8516a4b
Version 1.89.2
2023-01-05 15:49:29 +01:00
Neil Bickford
f1ddf63027
ScrollToRectEx: Fix bug where scrolling horizontally to an always-centered element that is not visible but could be would take the item's Y coordinate into account.
...
Neither behavior were used in the codebase for this axis.
Amend 27c58c39
(#5902 , #2812 , #4242 , #2900 )
Signed-off-by: Neil Bickford <nbickford@nvidia.com>
2022-12-20 06:39:25 +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
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
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
820b1e651a
Internals: reduced duplicate code in CalcNextScrollFromScrollTargetAndClamp() by looping through axiees.
2022-12-06 18:35:12 +01:00
ocornut
24b873a740
Internals: renaming inside ScrollToRectEx() + fixed misplaced changelog entry.
2022-12-06 18:22:59 +01:00
ocornut
ed54e14f1b
Refactor: moved UpdateAliasKey(), GetMergedModsFromKeys(), UpdateKeyboardInputs(), UpdateMouseInputs() to INPUTS section.
2022-12-06 12:21:18 +01:00
ocornut
f83da768b6
Refactor: moved LockWheelingWindow(), FindBestWheelingWindow(), UpdateMouseWheel() to INPUTS section
2022-12-06 12:21:18 +01:00
ocornut
f9ab2a0e9f
Refactor: moved UpdateKeyRoutingTable() to INPUTS section. renamed GetKeyVector2d() -> GetKeyMagnitude2d()
2022-12-06 12:21:17 +01:00
ocornut
38a0d7ceb5
Refactor: added INPUTS section index, moved IsMouseHoveringRect() to INPUTS section.
2022-12-06 12:21:17 +01:00
ocornut
b5883c1cfb
Refactor: moved bits into Initialization section.
2022-12-06 12:21:17 +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