Version 1.89

+ fix warning from a582d92
This commit is contained in:
ocornut 2022-11-15 14:23:44 +01:00
parent a582d92c31
commit 81160fee56
8 changed files with 35 additions and 39 deletions

View File

@ -32,11 +32,26 @@ HOW TO UPDATE?
----------------------------------------------------------------------- -----------------------------------------------------------------------
VERSION 1.89 WIP (In Progress) VERSION 1.89 (Released 2022-11-15)
----------------------------------------------------------------------- -----------------------------------------------------------------------
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89
Breaking changes: Breaking changes:
- Layout: Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548)
This relates to when moving the cursor position beyond current boundaries WITHOUT submitting an item.
- Previously this would make the window content size ~200x200:
Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End();
- Instead, please submit an item:
Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End();
- Alternative:
Begin(...) + Dummy(ImVec2(200,200)) + End();
Content size is now only extended when submitting an item.
With '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will now be detected and assert.
Without '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will silently be fixed until we obsolete it.
(This incorrect pattern has been mentioned or suggested in: #4510, #3355, #1760, #1490, #4152, #150,
threads have been amended to refer to this issue).
- Renamed and merged keyboard modifiers key enums and flags into a same set: (#4921, #456) - Renamed and merged keyboard modifiers key enums and flags into a same set: (#4921, #456)
- ImGuiKey_ModCtrl and ImGuiModFlags_Ctrl -> ImGuiMod_Ctrl - ImGuiKey_ModCtrl and ImGuiModFlags_Ctrl -> ImGuiMod_Ctrl
- ImGuiKey_ModShift and ImGuiModFlags_Shift -> ImGuiMod_Shift - ImGuiKey_ModShift and ImGuiModFlags_Shift -> ImGuiMod_Shift
@ -61,11 +76,11 @@ Breaking changes:
- Custom backends not writing to io.NavInputs[] -> no issue. - Custom backends not writing to io.NavInputs[] -> no issue.
- Custom backends writing to io.NavInputs[] -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need fixing! - Custom backends writing to io.NavInputs[] -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need fixing!
- TL;DR: Backends should call io.AddKeyEvent()/io.AddKeyAnalogEvent() with ImGuiKey_GamepadXXX values instead of filling io.NavInput[]. - TL;DR: Backends should call io.AddKeyEvent()/io.AddKeyAnalogEvent() with ImGuiKey_GamepadXXX values instead of filling io.NavInput[].
That data was essentially 1.60's attempt to combine keyboard and gamepad inputs with named The ImGuiNavInput enum was essentially 1.60's attempt to combine keyboard and gamepad inputs with named
semantic, but the additional indirection and copy added complexity and got in the way of other semantic, but the additional indirection and copy added complexity and got in the way of other
incoming work. User's code (other than backends) should not be affected, unless you have custom incoming work. User's code (other than backends) should not be affected, unless you have custom
widgets intercepting navigation events via the named enums (in which case you can upgrade your code). widgets intercepting navigation events via the named enums (in which case you can upgrade your code).
- Removed runtime patching of invalid "%f"/"%.0f" types of format strings for DragInt()/SliderInt(). - DragInt()/SliderInt(): Removed runtime patching of invalid "%f"/"%.0f" types of format strings.
This was obsoleted in 1.61 (May 2018). See 1.61 changelog for details. This was obsoleted in 1.61 (May 2018). See 1.61 changelog for details.
- Changed signature of ImageButton() function: (#5533, #4471, #2464, #1390) - Changed signature of ImageButton() function: (#5533, #4471, #2464, #1390)
- Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. - Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter.
@ -79,34 +94,15 @@ Breaking changes:
- Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)'. (#1057) - Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)'. (#1057)
Must always pass a pointer value explicitly, NULL/nullptr is ok but require cast, e.g. TreePush((void*)nullptr); Must always pass a pointer value explicitly, NULL/nullptr is ok but require cast, e.g. TreePush((void*)nullptr);
If you used TreePush() replace with TreePush((void*)NULL); If you used TreePush() replace with TreePush((void*)NULL);
- Commented out redirecting functions/enums names that were marked obsolete in 1.77 and 1.79 (August 2020): (#3361)
- DragScalar(), DragScalarN(), DragFloat(), DragFloat2(), DragFloat3(), DragFloat4()
- SliderScalar(), SliderScalarN(), SliderFloat(), SliderFloat2(), SliderFloat3(), SliderFloat4()
- For old signatures ending with (..., const char* format, float power = 1.0f) -> use (..., format ImGuiSliderFlags_Logarithmic) if power != 1.0f.
- BeginPopupContextWindow(const char*, ImGuiMouseButton, bool) -> use BeginPopupContextWindow(const char*, ImGuiPopupFlags)
- OpenPopupContextItem() (briefly existed from 1.77 to 1.79) -> use OpenPopupOnItemClick()
- Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548)
This relates to when moving the cursor position beyond current boundaries WITHOUT submitting an item.
- Previously this would make the window content size ~200x200:
Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End();
- Instead, please submit an item:
Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End();
- Alternative:
Begin(...) + Dummy(ImVec2(200,200)) + End();
Content size is now only extended when submitting an item.
With '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will now be detected and assert.
Without '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will silently be fixed until we obsolete it.
(This incorrect pattern has been mentioned or suggested in: #4510, #3355, #1760, #1490, #4152, #150,
threads have been amended to refer to this issue).
- Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255) - Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255)
They only made sense before we could use IMGUI_USER_CONFIG. They only made sense before we could use IMGUI_USER_CONFIG.
Other Changes: Other Changes:
- Popups & Modals: fixed nested Begin() being erroneously input-inhibited. While it is - Popups & Modals: fixed nested Begin() inside a popup being erroneously input-inhibited.
unusual, you can nest a Begin() inside a popup or modal, it is occasionally useful to While it is unusual, you can nest a Begin() inside a popup or modal, it is occasionally
achieve certains things (e.g. some ways to implement suggestion popup #718, #4461). useful to achieve certain things (e.g. to implement suggestion popups #718, #4461).
- Inputs: Standard widgets now claim for key/button ownership and test for them. - Inputs: Standard widgets now claim for key/button ownership and test for them.
- Fixes scenario where e.g. a Popup with a Selectable() reacting on mouse down - Fixes scenario where e.g. a Popup with a Selectable() reacting on mouse down
(e.g. double click) closes, and behind it is another window with an item reacting (e.g. double click) closes, and behind it is another window with an item reacting
@ -137,7 +133,7 @@ Other Changes:
- IsItemHovered: Added ImGuiHoveredFlags_DelayNormal and ImGuiHoveredFlags_DelayShort flags, - IsItemHovered: Added ImGuiHoveredFlags_DelayNormal and ImGuiHoveredFlags_DelayShort flags,
allowing to introduce a shared delay for tooltip idioms. The delays are respectively allowing to introduce a shared delay for tooltip idioms. The delays are respectively
io.HoverDelayNormal (default to 0.30f) and io.HoverDelayFast (default to 0.10f). (#1485) io.HoverDelayNormal (default to 0.30f) and io.HoverDelayFast (default to 0.10f). (#1485)
- IsItemHovered: Added ImGuiHoveredFlags_NoSharedDelay to disable sharing delays between itemm, - IsItemHovered: Added ImGuiHoveredFlags_NoSharedDelay to disable sharing delays between items,
so moving from one item to a nearby one will requires delay to elapse again. (#1485) so moving from one item to a nearby one will requires delay to elapse again. (#1485)
- Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns - Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns
output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957) output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957)
@ -166,15 +162,15 @@ Other Changes:
the gap between a menu item inside a window and a child-menu in a secondary viewport. (#5614) the gap between a menu item inside a window and a child-menu in a secondary viewport. (#5614)
- Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775) - Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775)
- Menus, Popups: Experimental fix for issue where clicking on an open BeginMenu() item called from - Menus, Popups: Experimental fix for issue where clicking on an open BeginMenu() item called from
a window which is neither a popup neither a menu used to incorrectly close and reopen the menu. a window which is neither a popup neither a menu used to incorrectly close and reopen the menu
(the fix may have side-effect so labelld as experimental as we may need to revert) (#5775) (the fix may have side-effect and is labelld as experimental as we may need to revert). (#5775)
- Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item - Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item
in parent window when the parent is not a popup. (#5730) in parent window when the parent is not a popup. (#5730)
- Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730) - Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730)
- Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple - Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple
BeginMenu() call with same names). (#1207) BeginMenu() call with same names). (#1207)
- Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu() - Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu()
returning false (specifically ) returning false.
- Nav: Fixed moving/resizing window with gamepad or keyboard when running at very high framerate. - Nav: Fixed moving/resizing window with gamepad or keyboard when running at very high framerate.
- Nav: Pressing Space/GamepadFaceDown on a repeating button uses the same repeating rate as a mouse hold. - Nav: Pressing Space/GamepadFaceDown on a repeating button uses the same repeating rate as a mouse hold.
- Nav: Fixed an issue opening a menu with Right key from a non-menu window. - Nav: Fixed an issue opening a menu with Right key from a non-menu window.

View File

@ -1,4 +1,4 @@
// dear imgui, v1.89 WIP // dear imgui, v1.89
// (main code and documentation) // (main code and documentation)
// Help: // Help:
@ -4344,7 +4344,7 @@ static void LockWheelingWindow(ImGuiWindow* window, float wheel_amount)
if (window) if (window)
g.WheelingWindowReleaseTimer = ImMin(g.WheelingWindowReleaseTimer + ImAbs(wheel_amount) * WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER, WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER); g.WheelingWindowReleaseTimer = ImMin(g.WheelingWindowReleaseTimer + ImAbs(wheel_amount) * WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER, WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER);
else else
g.WheelingWindowReleaseTimer = NULL; g.WheelingWindowReleaseTimer = 0.0f;
if (g.WheelingWindow == window) if (g.WheelingWindow == window)
return; return;
IMGUI_DEBUG_LOG_IO("LockWheelingWindow() \"%s\"\n", window ? window->Name : "NULL"); IMGUI_DEBUG_LOG_IO("LockWheelingWindow() \"%s\"\n", window ? window->Name : "NULL");

View File

@ -1,4 +1,4 @@
// dear imgui, v1.89 WIP // dear imgui, v1.89
// (headers) // (headers)
// Help: // Help:
@ -22,8 +22,8 @@
// Library Version // Library Version
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM > 12345') // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM > 12345')
#define IMGUI_VERSION "1.89 WIP" #define IMGUI_VERSION "1.89"
#define IMGUI_VERSION_NUM 18838 #define IMGUI_VERSION_NUM 18900
#define IMGUI_HAS_TABLE #define IMGUI_HAS_TABLE
/* /*

View File

@ -1,4 +1,4 @@
// dear imgui, v1.89 WIP // dear imgui, v1.89
// (demo code) // (demo code)
// Help: // Help:

View File

@ -1,4 +1,4 @@
// dear imgui, v1.89 WIP // dear imgui, v1.89
// (drawing and font code) // (drawing and font code)
/* /*

View File

@ -1,4 +1,4 @@
// dear imgui, v1.89 WIP // dear imgui, v1.89
// (internal structures/api) // (internal structures/api)
// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! // You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility!

View File

@ -1,4 +1,4 @@
// dear imgui, v1.89 WIP // dear imgui, v1.89
// (tables and columns code) // (tables and columns code)
/* /*

View File

@ -1,4 +1,4 @@
// dear imgui, v1.89 WIP // dear imgui, v1.89
// (widgets code) // (widgets code)
/* /*