@@ -36,17 +36,19 @@ HOW TO UPDATE?
3636- Please report any issue!
3737
3838-----------------------------------------------------------------------
39- VERSION 1.91.0 WIP (In Progress )
39+ VERSION 1.91.0 (Released 2024-07-30 )
4040-----------------------------------------------------------------------
4141
42+ Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.0
43+
4244Breaking changes:
4345
4446- IO, IME: renamed platform IME hook and added explicit context for consistency and future-proofness.
4547 - old: io.SetPlatformImeDataFn(ImGuiViewport* viewport, ImGuiPlatformImeData* data);
4648 - new: io.PlatformSetImeDataFn(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data);
4749 It is expected that for a vast majority of users this is automatically set by core
4850 library and/or platform backend so it won't have any effect.
49- - Obsoleted GetContentRegionMax(), GetWindowContentRegionMin() and GetWindowContentRegionMax().
51+ - Obsoleted GetContentRegionMax(), GetWindowContentRegionMin() and GetWindowContentRegionMax(). (#7838)
5052 You should never need those functions! You can do everything in less a confusing manner by only
5153 using GetCursorScreenPos() and GetContentRegionAvail(). Also always consider that if you are using
5254 GetWindowPos() and GetCursorPos() you may also be making things unnecessarily complicated.
@@ -69,32 +71,24 @@ Breaking changes:
6971- Commented out obsolete ImGuiModFlags_XXX values (renamed to ImGuiMod_XXX in 1.89). (#4921, #456)
7072 - ImGuiModFlags_Ctrl -> ImGuiMod_Ctrl, ImGuiModFlags_Shift -> ImGuiMod_Shift etc.
7173- Backends: GLFW+Emscripten: Renamed ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback() to
72- ImGui_ImplGlfw_InstallEmscriptenCallbacks(), with additional GLFWWindow* parameter. (#7647) [@ypujante]
74+ ImGui_ImplGlfw_InstallEmscriptenCallbacks(), with an additional GLFWWindow* parameter. (#7647) [@ypujante]
7375
7476Other changes:
7577
7678- Added TextLink(), TextLinkOpenURL() hyperlink widgets. (#7660)
7779- IO: added io.PlatformOpenInShellFn handler to open a link/folder/file in OS shell. (#7660)
78- Default to use ShellExecute() under Windows, and system("") under Mac/Linux/etc.
79- Added IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS to disable default implementation.
80- - IO: added io.ConfigNavSwapGamepadButtons to swap Activate/Cancel (A<>B) buttons, to match tye
80+ Added IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS to disable default Windows/Linux/Mac implementations.
81+ - IO: added io.ConfigNavSwapGamepadButtons to swap Activate/Cancel (A<>B) buttons, to match the
8182 typical "Nintendo/Japanese consoles" button layout when using Gamepad navigation. (#787, #5723)
8283- Added PushItemFlag()/PopItemFlags(), ImGuiItemFlags to modify shared item flags:
83- - Added ImGuiItemFlags_NoTabStop to disable tabbing through items.
84- - Added ImGuiItemFlags_NoNav to disable any navigation and focus of items. (#787)
85- - Added ImGuiItemFlags_NoNavDefaultFocus to disable item being default focus. (#787)
86- - Added ImGuiItemFlags_ButtonRepeat to enable repeat on any button-like behavior.
87- - Added ImGuiItemFlags_AutoClosePopups to disable menu items/selection auto closing parent popups.
88- Disabling this was previously possible for Selectable() via a direct flag but not for MenuItem().
89- (#1379, #1468, #2200, #4936, #5216, #7302, #7573)
90- - This was mostly all previously in imgui_internal.h.
91- - Inputs: added SetItemKeyOwner(ImGuiKey key) in public API. This is a simplified version of a more
92- complete set of function available in imgui_internal.h. One common use-case for this is to allow
93- your items to disable standard inputs behaviors such as Tab or Alt handling, Mouse Wheel scrolling,
94- etc. (#456, #2637, #2620, #2891, #3370, #3724, #4828, #5108, #5242, #5641)
95- // Hovering or activating the button will disable mouse wheel default behavior to scroll
96- InvisibleButton(...);
97- SetItemKeyOwner(ImGuiKey_MouseWheelY);
84+ - Added ImGuiItemFlags_NoTabStop to disable tabbing through items.
85+ - Added ImGuiItemFlags_NoNav to disable any navigation and focus of items. (#787)
86+ - Added ImGuiItemFlags_NoNavDefaultFocus to disable item being default focus. (#787)
87+ - Added ImGuiItemFlags_ButtonRepeat to enable repeat on any button-like behavior.
88+ - Added ImGuiItemFlags_AutoClosePopups to disable menu items/selection auto closing parent popups.
89+ Disabling this was previously possible for Selectable() via a direct flag but not for MenuItem().
90+ (#1379, #1468, #2200, #4936, #5216, #7302, #7573)
91+ - This was mostly all previously in imgui_internal.h.
9892- Multi-Select: added multi-select API and demos. (#1861, #6518)
9993 - This system implements standard multi-selection idioms (CTRL+mouse click, CTRL+keyboard moves,
10094 SHIFT+mouse click, SHIFT+keyboard moves, etc.) with support for clipper (not submitting non-visible
@@ -103,15 +97,16 @@ Other changes:
10397 This is designed to allow all kinds of selection storage you may use in your application
10498 (e.g. set/map/hash, intrusive selection, interval trees, up to you).
10599 - The supported widgets are Selectable(), Checkbox(). TreeNode() is also technically supported but...
106- using this correctly is more complicated (you need some sort of linear/random access to your tree,
100+ using this correctly is more complicated. You need some sort of linear/random access to your tree,
107101 which is suited to advanced trees setups already implementing filters and clipper.
108- We will work toward simplifying and demoing this later.
109- - A helper ImGuiSelectionBasicStorage is provided to facilitate getting started in a typical app.
102+ We will work toward simplifying our existing demo for trees.
103+ - A helper ImGuiSelectionBasicStorage is provided to facilitate getting started in a typical app
104+ (likely to suit a majority of users).
110105 - Documentation:
111106 - Wiki page https://github.com/ocornut/imgui/wiki/Multi-Select for API overview.
112107 - Demo code + headers are well commented.
113108 - Added BeginMultiSelect(), EndMultiSelect(), SetNextItemSelectionUserData().
114- - Added IsItemToggledSelection() for use if you need latest selection update during currnet iteration.
109+ - Added IsItemToggledSelection() for use if you need latest selection update during current iteration.
115110 - Added ImGuiMultiSelectIO and ImGuiSelectionRequest structures:
116111 - BeginMultiSelect() and EndMultiSelect() return a ImGuiMultiSelectIO structure, which
117112 is mostly an array of ImGuiSelectionRequest actions (clear, select all, set range, etc.)
@@ -142,48 +137,61 @@ Other changes:
142137 - Multi-Select (with clipper)
143138 - Multi-Select (with deletion)
144139 - Multi-Select (dual list box) (#6648)
140+ - Multi-Select (in a table)
145141 - Multi-Select (checkboxes)
146142 - Multi-Select (multiple scopes)
143+ - Multi-Select (tiled assert browser)
144+ - Multi-Select (trees) (#1861)
147145 - Multi-Select (advanced)
146+ - Inputs: added SetItemKeyOwner(ImGuiKey key) in public API.
147+ This is a simplified version of a more complete set of function available in imgui_internal.h.
148+ One common use-case for this is to allow your widgets to disable standard inputs behaviors such
149+ as Tab or Alt handling, Mouse Wheel scrolling, etc.
150+ (#456, #2637, #2620, #2891, #3370, #3724, #4828, #5108, #5242, #5641)
151+ // Hovering or activating the button will disable mouse wheel default behavior to scroll
152+ InvisibleButton(...);
153+ SetItemKeyOwner(ImGuiKey_MouseWheelY);
148154- Nav: fixed clicking window decorations (e.g. resize borders) from losing focused item when
149155 within a child window using ImGuiChildFlags_NavFlattened.
150- - InputText: added '\' and '/' as word seperator . (#7824, #7704) [@reduf]
156+ - InputText: added '\' and '/' as word separator . (#7824, #7704) [@reduf]
151157- TreeNode: added SetNextItemStorageID() to specify/override the identifier used for persisting
152158 open/close storage. Useful if needing to often read/write from storage without manipulating
153159 the ID stack. (#7553, #6990, #3823, #1131)
154160- Selectable: added ImGuiSelectableFlags_Highlight flag to highlight items independently from
155161 the hovered state. (#7820) [@rerilier]
156162- Clipper: added SeekCursorForItem() function. When using ImGuiListClipper::Begin(INT_MAX) you can
157163 can use the clipper without knowing the amount of items beforehand. (#1311)
158- In this situation, call ImGuiListClipper::SeekCursorForItem(items_count) as the end of your iteration
164+ In this situation, call ImGuiListClipper::SeekCursorForItem(items_count) at the end of your iteration
159165 loop to position the layout cursor correctly. This is done automatically if provided a count to Begin().
160166- Groups, Tables: fixed EndGroup() failing to correctly capture current table occupied size. (#7543)
161- - TabBar, Style: added style.TabBarOverlineSize / ImGuiStyleVar_TabBarOverlineSize to manipulate
162- thickness of the horizontal line over selectable tabs. [@DctrNoob]
163- - Misc: added GetID(int) variant for consistency. (#7111)
167+ - Style, TabBar: added style.TabBarOverlineSize / ImGuiStyleVar_TabBarOverlineSize to manipulate
168+ thickness of the horizontal line over selected tabs. [@DctrNoob]
164169- Style: close button and collapse/window-menu button hover highlight made rectangular instead of round.
165- - Debug Tools: Added IMGUI_DEBUG_LOG(), ImGui::DebugLog() in public API. (#5855)
166- Debug log entries add a imgui frame counter prefix + are redirected to ShowDebugLogWindow() and
167- other configurable locations. Always call IMGUI_DEBUG_LOG() for maximum stripping in caller code.
168- - Debug Tools: Debug Log: Added "Configure Outputs.." button. (#5855)
169- - Debug Tools: Debug Log: Fixed incorrect checkbox layout when partially clipped.
170- - Demo: Reworked "Property Editor" demo in a manner that more ressemble the tree data and
170+ - Misc: added GetID(int) variant for consistency. (#7111)
171+ - Debug Tools:
172+ - Debug Log: Added IMGUI_DEBUG_LOG(), ImGui::DebugLog() in public API. (#5855)
173+ Printed entries include imgui frame counter prefix + are redirected to ShowDebugLogWindow() and
174+ other configurable locations. Always call IMGUI_DEBUG_LOG() for maximum stripping in caller code.
175+ - Debug Log: Added "Configure Outputs.." button. (#5855)
176+ - Debug Log: Fixed incorrect checkbox layout when partially clipped.
177+ - Demo: Reworked "Property Editor" demo in a manner that more resemble the tree data and
171178 struct description data that a real application would want to use.
172- - Backends: Win32: Fixed ImGuiMod_Super being mapped to VK_APPS instead of VK_LWIN||VK_RWIN.
173- (#7768, #4858, #2622) [@Aemony]
174- - Backends: SDL3: Update for API changes: SDL_GetGamepads() memory ownership change. (#7807)
175- - Backends: SDL3: Update for API changes: SDL_GetClipboardText() memory ownership change. (#7801)
176- - Backends: SDL3: Update for API changes: SDLK_x renames and SDLK_KP_x removals (#7761, #7762)
177- - Backends: SDL3: Update for API changes: SDL_GetProperty() change to SDL_GetPointerProperty(). (#7794) [@wermipls]
178- - Backends: SDL2,SDL3,OSX: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() rename.
179- - Backends: GLFW,SDL2: Added io.PlatformOpenInShellFn handler for web/Emscripten versions. (#7660)
180- [@ypujante, @ocornut]
181- - Backends; GLFW+Emscripten: Added support for GLFW3 contrib port which fixes many of the things
182- not supported by the embedded GLFW: gamepad support, mouse cursor shapes, copy to clipboard,
183- workaround for Super/Meta key, different ways of resizing, multi-window (glfw/canvas) support.
184- (#7647) [@ypujante]
185- - Backends: GLFW+Emscripten: Fixed Emscripten warning when using mouse wheel on some setups
186- "Unable to preventDefault inside passive event listener". (#7647, #7600) [@ypujante]
179+ - Backends:
180+ - Backends: Win32: Fixed ImGuiMod_Super being mapped to VK_APPS instead of (VK_LWIN || VK_RWIN).
181+ (#7768, #4858, #2622) [@Aemony]
182+ - Backends: SDL3: Update for API changes: SDL_GetGamepads() memory ownership change. (#7807)
183+ - Backends: SDL3: Update for API changes: SDL_GetClipboardText() memory ownership change. (#7801)
184+ - Backends: SDL3: Update for API changes: SDLK_x renames and SDLK_KP_x removals (#7761, #7762)
185+ - Backends: SDL3: Update for API changes: SDL_GetProperty() change to SDL_GetPointerProperty(). (#7794) [@wermipls]
186+ - Backends: SDL2,SDL3,OSX: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() rename.
187+ - Backends: GLFW,SDL2: Added io.PlatformOpenInShellFn handler for web/Emscripten versions. (#7660)
188+ [@ypujante, @ocornut]
189+ - Backends; GLFW+Emscripten: Added support for GLFW3 contrib port which fixes many of the things
190+ not supported by the embedded GLFW: gamepad support, mouse cursor shapes, copy to clipboard,
191+ workaround for Super/Meta key, different ways of resizing, multi-window (glfw/canvas) support.
192+ (#7647) [@ypujante]
193+ - Backends: GLFW+Emscripten: Fixed Emscripten warning when using mouse wheel on some setups
194+ "Unable to preventDefault inside passive event listener". (#7647, #7600) [@ypujante]
187195
188196
189197-----------------------------------------------------------------------
0 commit comments