Skip to content

v1.45

Compare
Choose a tag to compare
@ocornut ocornut released this 01 Sep 18:32
· 6879 commits to master since this release

The horizontal scrolling release!

Patreon

NOTE, POTENTIAL API-BREAKING CHANGES

  • With the addition of better horizontal scrolling primitives I had to make some consistency fixes.
    GetCursorPos() SetCursorPos() GetContentRegionMax() GetWindowContentRegionMin() GetWindowContentRegionMax() are now incorporating the scrolling amount. They were incorrectly not incorporating this amount previously. It PROBABLY shouldn't break anything, but that depends on how you used them. Namely:
    • If you always used SetCursorPos() with values relative to GetCursorPos() there shouldn't be a problem. However if you used absolute coordinates, note that SetCursorPosY(100.0f) will put you at +100 from the initial Y position (which may be scrolled out of the view), NOT at +100 from the window top border. Since there wasn't any official scrolling value on X axis (past just manually moving the cursor) this can only affect you if you used to set absolute coordinates on the Y axis which is hopefully rare/unlikely, and trivial to fix.
    • The value of GetWindowContentRegionMax() isn't necessarily close to GetWindowWidth() if horizontally scrolling. Previously they were roughly interchangeable (roughly because the content region exclude window padding).

horizontal_scrollbar2

Changes

  • Added Horizontal Scrollbar via ImGuiWindowFlags_HorizontalScroll (#246).
  • Added GetScrollX(), GetScrollX(), GetScrollMaxX() apis (#246).
  • Added SetNextWindowContentSize(), SetNextWindowContentWidth() to explicitly set the content size of a window, which define the range of scrollbar. When set explicitly it also define the base value from which widget width are derived.
  • Added IO.WantTextInput telling when ImGui is expecting text input, so that e.g. OS on-screen keyboard can be enabled.
  • Added printf attribute to printf-like text formatting functions (Clang/GCC).
  • Added GetMousePosOnOpeningCurrentPopup() helper.
  • Added GetContentRegionAvailWidth() helper.
  • Malformed UTF-8 data don't terminate string, output 0xFFFD instead (#307).
  • ImDrawList: Added AddBezierCurve(), PathBezierCurveTo() API for cubic bezier curves (#311).
  • ImDrawList: Allow to override ImDrawIdx type (#292).
  • ImDrawList: Added an assert on overflowing index value (#292).
  • ImDrawList: Fixed issues with channels split/merge. Now functional without manually adding a draw cmd. Added comments.
  • ImDrawData: Added ScaleClipRects() helper useful when rendering scaled. (#287).
  • Fixed Bullet() inconsistent layout behaviour when clipped.
  • Fixed IsWindowHovered() not taking account of window hoverability (may be disabled because of a popup).
  • Fixed InvisibleButton() not honoring negative size consistently with other widgets that do so.
  • Fixed OpenPopup() accessing current window, effectively opening "Debug" when called from an empty window stack.
  • TreeNode(): Fixed IsItemHovered() result being inconsistent with interaction visuals (#282).
  • TreeNode(): Fixed mouse interaction padding past the node label being accounted for in layout (#282).
  • BeginChild(): Passing a ImGuiWindowFlags_NoMove inhibits moving parent window from this child.
  • BeginChild() fixed missing rounding for child sizes which leaked into layout and have items misaligned.
  • Begin(): Removed default name = "Debug" parameter. We already have a "Debug" window pushed to the stack in the first place so it's not really a useful default.
  • Begin(): Minor fixes with windows main clipping rectangle (e.g. child window with border).
  • Begin(): Window flags are only read on the first call of the frame. Subsequent calls ignore flags, which allows appending to a window without worryin about flags.
  • InputText(): ignore character input when ctrl/alt are held. (Normally those text input are ignored by most wrappers.) (#279).
  • Demo: Fixed incorrectly formed string passed to Combo (#298).
  • Demo: Added simple Log demo.
  • Demo: Added horizontal scrolling example + enabled in console, log and child examples (#246).
  • Style: made scrollbars rounded by default. Because nice. Minor menu bar background alpha tweak. (#246)
  • Metrics: display indices along with triangles count (#299) and some internal state.
  • ImGuiTextFilter::PassFilter() supports string range. Added [] helper to ImGuiTextBuffer.
  • ImGuiTextFilter::Draw() default parameter width=0.0f for no override, allow override with negative values.
  • Examples: OpenGL2/OpenGL3: fix for retina displays. Default font current lack crispness.
  • Examples: OpenGL2/OpenGL3: save/restore more GL state correctly.
  • Examples: DirectX9/DirectX11: resizing buffers dynamically (#299).
  • Examples: DirectX9/DirectX11: added missing middle mouse button to Windows event handler.
  • Examples: DirectX11: fix for Visual Studio 2015 presumably shipping with an updated version of DX11.
  • Examples: iOS: fixed missing files in project.

Bonus: a proof of concept of building something from the low-level components of ImGui. It's a not really functional demo (missing lots of stuff) but may inspire you to build custom high-level components #306

node_graph_editor