Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.37
Other Changes:
- Added a more convenient three parameters version of Begin() which covers the common uses better.
- Added mouse cursor types handling (resize, move, text input cursors, etc.) that user can query with GetMouseCursor(). Added demo and instructions in ShowTestWindow().
- Added embedded mouse cursor data for MouseDrawCursor software cursor rendering, for consoles/tablets/etc. (#155).
- Added first version of BeginPopup/EndPopup() helper API to create popup menus. Popups automatically lock their position to the mouse cursor when first appearing. They close automatically when clicking outside, and inhibit hovering items from other windows when active (to allow for clicking outside). (#126)
- Added thickness parameter to ImDrawList::AddLine().
- Added style.DisplaySafeAreaPadding which was previously hard-coded (useful if you can't see the edges of your display, e.g. TV screens).
- Added CalcItemRectClosestPoint() helper.
- Added GetMouseDragDelta(), IsMouseDragging() helpers, given a mouse button and an optional "unlock" threshold. Added io.MouseDragThreshold setting. (#167)
- IsItemHovered() return false if another widget is active, aka we can't use what we are hovering now.
- Added IsItemHoveredRect() if old behavior of IsItemHovered() is needed (e.g. for implementing the drop side of a drag'n drop operation).
- IsItemhovered() include space taken by label and behave consistently for all widgets (#145)
- Auto-filling child window feed their content size to parent (#170)
- InputText() removed the odd ~ characters when clipping.
- InputText() update its width in case of resize initiated programmatically while the widget is active.
- InputText() last active preserve scrolling position. Reset scroll if widget size becomes bigger than contents.
- Selectable(): not specifying a width defaults to using max of label width and remaining width.
- Selectable(const char*, bool) version has bool defaulting to false.
- Selectable(): fixed misusage of GetContentRegionMax().x leaking into auto-fitting.
- Windows starting Collapsed runs initial auto-fit to retrieve a width for their title bar (#175)
- Fixed new window from having an incorrect content size on their first frame, if queried by user. Fixed SetWindowPos/SetNextWindowPos having a side-effect size computation (#175)
- InputFloat(): fixed label alignment if total widget width forcefully bigger than space available.
- Auto contents size aware of enforced vertical scrollbar if window is larger than display size.
- Fixed new windows auto-fitting bigger than their .ini saved size. This was a bug but it may be a desirable effect sometimes, may reconsider it.
- Fixed negative clipping rectangle when collapsing windows that could affect manual submission to ImDrawList and end-user rendering function if unhandled (#177)
- Fixed bounding measurement of empty groups (fix #162)
- Fixed assignment order in Begin() making auto-fit size effectively lag by one frame. Also disabling "clamp into view" while windows are auto-fitting so that auto-fitting window in corners don't get pushed away.
- Fixed MouseClickedPos not updated on double-click update (#167)
- Fixed MouseDrawCursor feature submitting an empty trailing command in the draw list. Fixed unmerged draw calls for software mouse cursor.
- Fixed double-clicking on resize grip keeping the grip active if mouse button is kept held.
- Bounding box tests exclude higher bound, so touching items (zero spacing) don't report double hover when cursor is on edge.
- Setting io.LogFilename to NULL disable default LogToFile() (part of #175)
- Tweak stb_textedit integration to be lenient if another piece of code are leaking their STB_TEXTEDIT definitions/symbols.
- Shutdown() freeing a few extra vectors so they don't have to freed by destruction (#169)
- Examples: OpenGL2/3 examples automatically hide the OS mouse cursor if software cursor rendering is used.
- ShowTestWindow: Added Widgets Alignment demo under Layout section
- Added io.KeyAlt + support in examples apps, in prevision for future usage of Alt modifier (was missing).
- Added ImGuiStyleVar_GrabMinSize enum value for PushStyleVar().
- Various fixes related to vertical alignment of text after widget of varied sizes. Allow for multiple blocks of multiple lines text on the same "line". Added demos.
- Explicit size passed to Plot*(), Button() includes the frame padding.
- Style: Changed default Border and Column border colors to be most subtle.
- Renamed style.TreeNodeSpacing to style.IndentSpacing, ImGuiStyleVar_TreeNodeSpacing to ImGuiStyleVar_IndentSpacing.
- Renamed GetWindowIsFocused() to IsWindowFocused(), kept inline redirection with old name (will obsolete).
- Renamed GetItemRectMin()/GetItemRectMax() to GetItemRectMin()/GetItemRectMax(), kept inline redirection with old name (will obsolete).
- Sliders: Fast-path when power=1.0f, also makes code easier to read.
- Sliders: Fixed parsing of decimal precision back from format string when using %%.
- Sliders: Fixed hovering bounding test excluding padding between outer frame and grab (there was a few pixels dead-zone).
- Separator() logs itself as text when passing through text log.
- Optimisation: TreeNodeV() early out if SkipItems is set without formatting.
- Moved various static buffers into state. Increase the formatted string buffer from 1K to 3K.
- Examples: Example console keeps focus on input box at all times.
- Examples: Updated to GLFW 3.1. Moved to examples/libs/ folder.
- Examples: Added 64-bit projects for MSVC.
- Examples: Increase warning level from /W3 to /W4 for MSVC.
- Examples: DirectX9: fixed duplicate creation of vertex buffer.
- Renamed internal type ImGuiAabb to ImRect. Changed mentions of 'box' or 'aabb' to say 'rect'.
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.35
Other Changes:
- Examples: refactored all examples application to make it easier to isolate and grab the code you need for OpenGL 2/3, DirectX 9/11, and toward a more sensible format for samples.
- Scrollbar grab have a minimum size (style.GrabSizeMin), always visible even with huge scroll amount. (#150).
- Scrollbar: Clicking inside the grab box doesn't modify scroll value. Subsequent movement always relative.
- Added "###" labelling syntax to pass a label that isn't part of the hashed ID (#107), e.g. ("%d###static_id",rand()).
- Fixed the Chinese/Japanese glyph ranges; include missing punctuations (#156)
- Fixed Combo() and ListBox() labels not included in declared size, for use with SameLine(), etc. (fix #149, #151).
- Fixed ListBoxHeader() incorrect handling of SkipItems early out when window is collapsed.
- Fixed using IsItemHovered() after EndChild() (#151)
- Fixed malformed UTF-8 decoding errors leading to infinite loops (#158)
- InputText() handles buffer limit correctly for multi-byte UTF-8 characters, won't insert an incomplete UTF-8 character when reaching buffer limit (fix #158)
- Handle double-width space (0x3000) in various places the same as single-width spaces, for Chinese/Japanese users.
- Collapse triangle uses text color (not border color).
- Fixed font fallback glyph width.
- Renamed style.ScrollBarWidth to style.ScrollbarWidth to be consistent with other casing.
- Windows: setup a default handler for ImeSetInputScreenPosFn so the IME dialog (for Japanese/Chinese, etc.) is positioned correctly as you input text.
- Windows: default clipboard handlers for Windows handle UTF-8.
- Examples: Fixed DirectX 9/11 examples applications handling of Microsoft IME.
- Examples: Allow DirectX 9/11 examples applications to resize the window.
- ShowTestWindow: Fixed "undo" button of custom rendering applet.
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.33
Other Changes:
- InputText: having a InputText widget active doesn't steal mouse inputs from clicking on a button before losing focus (relate to #134)
- InputText: cursor/selection/undo stack persist when using other widgets and getting back to same (#134).
- InputText: fix effective buffer size being smaller than necessary by 1 byte (so if you give 3 bytes you can input 2 ascii chars + zero terminator, which is correct).
- Added IsAnyItemActive().
- Child window explicitly inherit collapse state from parent (so if user keeps submitting items even thought Begin has returned 'false' the child items will be clipped faster).
- BeginChild() return a bool the same way Begin() does. if true you can skip submitting content.
- Removed extraneous (1,1) padding on child window (pointed out in #125)
- Columns: doesn't bail out when SkipItems is set (fix #136)
- Columns: Separator() within column correctly vertical offset all cells (pointed out in #125)
- GetColumnOffset() / SetColumnOffset() handles padding values more correctly so matching columns can be lined up between a parent and a child window (cf. #125)
- PixelCenterOffset has been removed and isn't a necessary setting anymore. Offset your projection matrix by 0.5 if you have rendering problems.
Other Changes:
- Loading TTF files with stb_truetype.h.
- We still embed a compressed pixel-perfect TTF version of ProggyClean for convenience.
- Runtime font rendering is a little faster than previously.
- You can load multiple fonts with multiple size inside the font atlas. Rendering with multiple fonts are still merged into a single draw call whenever possible.
- The system handles UTF-8 and provide ranges to easily load e.g. characters for Japanese display.
- Added PushFont() / PopFont().
- Added Image() and ImageButton() to display your own texture data.
- Added callback system in command-list. This can be used if you want to do your own rendering (e.g. render a 3D scene) inside ImGui widgets.
- Added IsItemActive() to tell if last widget is being held / modified (as opposed to just being hovered). Useful for custom dragging behaviors.
- Style: Added FrameRounding setting for a more rounded look (default to 0 for now).
- Window: Fixed using multiple Begin/End pair on the same wnidow.
- Window: Fixed style.WindowMinSize not being honored properly.
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.20
- Fixed InputInt() InputFloat() label not declaring their width, breaking usage of SameLine().
- Fixed hovering of combo boxes that extend beyond the parent window limits.
- Fixed text input of Unicode character in the 128-255 range.
- Fixed clipboard pasting into an InputText box not filtering the characters according to contents semantic.
- Dragging outside area of a widget while it is active doesn't trigger hover on other widgets.
- Activating widget bring parent window to front if not already.
- Checkbox and Radio buttons activate on click-release to be consistent with other widgets and most UI.
- InputText() nows consume input characters immediately so they cannot be reused if ImGui::Update is called again with a call to ImGui::Render(). (fixes #105)
- Examples: Console: added support for History callbacks + some cleanup.
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.18
- Added ImGuiWindowFlags_NoScrollWithMouse, disable mouse wheel scrolling on a window.
- Added ImGuiWindowFlags_NoSavedSettings, disable loading/saving window state to .ini file.
- Added SetNextWindowPos(), SetNextWindowSize(), SetNextWindowCollapsed() API along with SetWindowPos(), SetWindowSize(), SetWindowCollapsed(). All functions include an optional second parameter to easily set current value vs session default value vs persistent default value.
- Removed rarely useful SetNewWindowDefaultPos() in favor of new API.
- Fixed hovering of lower-right resize grip when it is above a child window.
- Fixed InputInt() writing to output when it doesn't need to.
- Added IMGUI_INCLUDE_IMGUI_USER_H define to include user file at the bottom of imgui.h without modifying the vanilla distribution.
- ImGuiStorage helper can store float + added helpers to get pointer to stored data.
- Setup Travis CI integration. Builds the OpenGL examples on Linux with GCC and Clang.
- Examples: Added a "Fixed overlay" example in ShowTestWindow().
- Examples: Re-added OpenGL 3 programmable-pipeline example (along with the existing fixed pipeline example).
- Examples: OpenGL examples can now resize the application window.
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.14
- Comments and fixes.
- Added SetKeyboardFocusHere() to set input focus from code.
- Added GetWindowFont(), GetWindowFontSize() for users of the low-level ImDrawList API.
- Added a UserData void *pointer so that the callback functions can access user state "Just in case a project has adverse reactions to adding globals or statics in their own code."
- Renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.09
Breaking Changes:
- The behaviour of PixelCenterOffset changed! You may need to change your value if you had set it to non-default in your code and/or offset your projection matrix by 0.5 pixels. It is likely that the default PixelCenterOffset value of 0.0 is now suitable unless your rendering uses some form of multisampling.
Other Changes:
- Various minor render tweaks and fixes. Better support for renderers using multisampling.
- Moved IMGUI_FONT_TEX_UV_FOR_WHITE #define to a variable in the IO structure so font can be changed at runtime.