Commit Graph

3923 Commits

Author SHA1 Message Date
omar
50d421fa19 Docking: Fixed GetBackgroundDrawList(), GetForegroundDrawList() overwriting ImDrawList flags after clear, leading to the AllowVtxOffset flag not being cleared. (#2638) 2019-06-26 09:52:25 +02:00
omar
f563e1a504 Internals: Renamed GetFrontMostPopupModal() to GetTopMostPopupModal() to be consistent. Renamed other locals to follow that terminology. 2019-06-19 18:16:38 +02:00
omar
e2c1f0a7cd Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
2019-06-18 23:12:50 +02:00
omar
70fe409338 Window: Fixed InnerClipRect right-most coordinates using wrong padding setting (introduced in 1.71). 2019-06-18 10:58:03 +02:00
omar
ae2c9f7101 Internals: Columns: Poke into WorkRect and use them in the GetContentRegionMax() functions. This should be a no-op, but preparing us to transition toward using WorkRect instead of ContentRegionRect.
Removed one use of ContentsRegionRect.
2019-06-17 12:14:34 +02:00
omar
e9b92d1cef Disable -Wpragmas warning in GCC to avoid relying on version checks, as unusual/forks/mods don't appear to always have same warning<>version. (#2618)
+ Fix version number in imgui.h
2019-06-17 11:32:00 +02:00
omar
ca43436cd3 Fix monitor dpi info not being copied to main viewport when multi-viewports are not enabled. (#2621, #1676) + Tweaks, short path in FindPlatformMonitorForRect(). 2019-06-17 11:19:34 +02:00
omar
b27fd87177 Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
#	imgui.h
2019-06-17 11:10:14 +02:00
omar
af3080b81b Removed redirecting functions/enums that were obsoleted in version 1.51 (June 2017): ImGuiCol_Column*, ImGuiSetCond_*, IsItemHoveredRect(), IsPosHoveringAnyWindow(), IsMouseHoveringAnyWindow(), IsMouseHoveringWindow(), IMGUI_ONCE_UPON_A_FRAME. 2019-06-14 12:05:00 +02:00
omar
5286ecb8a7 Version 1.72 WIP 2019-06-14 11:58:58 +02:00
omar
07d3083279 Docking: Fixed rendering of outer decoration happening on non-visible docked window (#2623, #2109). Revealed by 0770449. We are actually better than before now, as previously those would get unnecessarily get rendered into a hidden draw list. 2019-06-13 10:19:14 +02:00
omar
d3d998a885 Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	examples/README.txt
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
#	imgui_widgets.cpp
2019-06-12 18:40:50 +02:00
omar
2da1c66d15 Version 1.71 + comments 2019-06-12 18:30:06 +02:00
omar
5ae268c0a3 Internals: Reworked RenderTextEllipsis() to satisfy what we need for table headers. 2019-06-11 16:12:00 +02:00
omar
4597632662 Readme, comments, dear imgui prefixes 2019-06-11 16:11:36 +02:00
omar
a8eb64fc54 Log/Capture: Fixed BeginTabItem() label not being included in a text log/capture.
Extracted tab rendering code into a RenderTextEllipsis() function.
2019-06-11 14:03:13 +02:00
omar
0770449630 Window: child windows outer decorations (e.g. scrollbar) are rendered as part of their parent window, avoiding the creation of an extraneous draw command.
+ Metrics: inverted color of clip rect vs vertices bounding box when hovering a draw command, so the color matches the per-vertex preview.
2019-06-07 17:34:36 +02:00
omar
afa3978ff6 Internals: Added drawlist and color arg to RenderArrow(), RenderBullet(). Reordered args for RenderPixelEllipsis. 2019-06-07 17:32:51 +02:00
omar
2b997141cf Made PushID() behave the same in 32-bit and 64-bit, by not padding the integer into a void*. (Also technically faster.) 2019-06-06 16:36:26 +02:00
omar
63310acd58 Synced/merged minor cruft from master branch to minimize drift. Only meaningful change AFAIK is removing ImGuiComboFlags_PopupAlignLeft flag from the tab list combo emitted by TabBar. 2019-06-06 16:16:18 +02:00
omar
431aa4e456 Synced/merged minor cruft from docking branch to minimize drift. AFAIK the only meaningful no-op change is that the call UpdateHoveredWindowAndCaptureFlags() was moved above UpdateMouseMovingNewFrame() to match what docking branch has been doing for a while. 2019-06-06 16:13:30 +02:00
omar
480d57e6a2 Revert "Changed syntax for (very rarely used) IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT mechanism, instead you only need to '#define ImDrawVert MyDrawVert' to use this feature, avoiding the need to declare the entire structure within an awkward macro. Using the old macro will now error with a message pointing you to the new method. (#38, #103, #1172, #1231, #2489)"
This reverts commit 597c024904.
2019-06-06 01:00:30 +02:00
omar
597c024904 Changed syntax for (very rarely used) IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT mechanism, instead you only need to '#define ImDrawVert MyDrawVert' to use this feature, avoiding the need to declare the entire structure within an awkward macro. Using the old macro will now error with a message pointing you to the new method. (#38, #103, #1172, #1231, #2489) 2019-06-06 00:42:27 +02:00
omar
e6850891cc Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2019-06-05 16:09:06 +02:00
omar
c96f2c4057 Window: Fixed one case where auto-resize by double-clicking the resize grip would make either scrollbar appear for a single frame after the resize. Moved Scrollbar visibility block. 2019-06-05 15:59:14 +02:00
omar
300d8dd656 Internals: Moved scrollbar visibility calculation block below the call to UpdateManualResize(). This commit is _intended_ to have no side-effect (next commit will). Also moved ItemWidthDefault calculation below rectangles. 2019-06-05 15:59:14 +02:00
omar
c1a61d25a7 Scrollbar overlap an extra WindowBorderSize amount on the left to make all distances consistent. Reverted to BorderSize not affecting work/contents rectangles. Scrollbar, Style: Changed default style.ScrollbarSize from 16 to 14. 2019-06-05 15:59:14 +02:00
omar
15282261dd Internals: Minor no-op tidying up toward solving the WindowPadding / WindowBorderSize / ScrollbarSize overlapping mess.
+ Demo: Use SetScrollY().
2019-06-05 15:59:14 +02:00
omar
4149d22e85 Fixed newly created window (e.g. appearing child window) from having scrollbar active on the first frame. (fix 6e03b27) + reworded code a little. (+1 squashed commits)
Fixed auto-resize with AlwaysVerticalScrollbar or AlwaysHorizontalScrollbar flags not taking account of the expect scrollbar sizes.
2019-06-05 15:59:14 +02:00
omar
06f1d2c101 Internals: Storing ScrollMax into a member. Mostly to facilitate debugging. Also locking down window->Scroll slightly lower in the Begin function. 2019-06-05 15:59:13 +02:00
omar
d6df777ff2 TextWrapped, PushTextWrapPos(0.0f) within a window with horizontal scrolling from not covering the full horizontal area (previously only worked with an explicit contents size). 2019-06-05 15:59:13 +02:00
omar
fe32fde376 Internals: Renamed SizeContents to ContentSize, SizeContentsExplicit to ContentSizeExplicit. Tweaked Metrics->Show Rectangles functionality. 2019-06-05 15:59:13 +02:00
omar
f95c77eeea Window rectangles: Changed WorkRect to cover the whole region including scrolling (toward obsolete ContentsRegionRect) + using full WindowPadding*1 padding.
Tweaked InnerClipRect.
TreeNode, CollapsingHeader: Fixed highlight frame not covering horizontal area fully when using horizontal scrolling. (#2211, #2579)
TabBar: Fixed BeginTabBar() within a window with horizontal scrolling from creating a feedback loop with the horizontal contents size.
Columns: Fixed Columns() within a window with horizontal scrolling from not covering the full horizontal area (previously only worked with an explicit contents size). (#125)
Demo: Added demo code to test contentsrect/workrect
2019-06-05 15:59:13 +02:00
omar
a0994d74c2 Clarified behavior of SetNextWindowContentSize(). Content size is defined as the size available after removal of WindowPadding on each sides. So SetNextWindowContentSize(ImVec2(100,100)) + auto-resize will always allow submitting a 100x100 item without creating a scrollbar, regarding of WindowPadding.The exact meaning of ContentSize for decorated windows was previously ill-defined. 2019-06-05 15:59:13 +02:00
omar
09bcf9fbc5 Window rectangles: Made InnerRect not affected by window border sizes. its few users shouldn't be meaningfully affected. 2019-06-05 15:59:12 +02:00
omar
440ad0b440 Merge branch 'master' into docking 2019-06-05 00:37:20 +02:00
omar
5cdd788f30 Comments (#2599). Moved branch Changelog above 1.71 wip one. Added some missing changelog bits. 2019-06-05 00:37:14 +02:00
omar
57d8ab62f4 Nav: Fixed rare crash when e.g. releasing Alt-key while focusing a window with a menu at the same frame as clearing the focus. This was in most noticeable in some back-ends with emits key release events when focusing another viewport. (#2609) 2019-06-05 00:28:55 +02:00
omar
eb7849b477 Nav: Fixed gamepad/keyboard moving of window affecting contents size incorrectly, sometimes leading to scrollbars appearing during the movement. + minor fix with the mostly dead Ctrl+wheel scaling. 2019-05-31 20:48:52 +02:00
omar
84f3ecc231 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2019-05-30 18:52:24 +02:00
omar
546b728199 Internals: Window rectangles: Fixed ContentsRegion lag by moving back after Scrollbar, fixes b50c61c9. Shuffling setup order and added comments. 2019-05-30 18:19:14 +02:00
omar
21ebdcafc9 Internals: Window rectangles: Renaming of all rectangles toward their final form. Should be a no-op. Renamed GetWorkRectMax() to GetContentRegionMaxAbs(). Metrics shows SizeContents. 2019-05-30 18:04:21 +02:00
omar
8dc04a4c9f Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx9.cpp
#	examples/imgui_impl_opengl3.cpp
#	imgui.h
#	imgui_demo.cpp
2019-05-29 16:32:27 +02:00
omar
7755cbbef2 Renamed ImGuiBackendFlags_HasVtxOffset to ImGuiBackendFlags_RendererHasVtxOffset to match naming convention already used in viewport/docking branch. (#2591) + Fix OpenGL3 code missing flag. 2019-05-29 16:29:17 +02:00
omar
c72040a715 Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx10.h
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx11.h
#	examples/imgui_impl_dx9.cpp
#	examples/imgui_impl_dx9.h
#	examples/imgui_impl_opengl3.cpp
#	examples/imgui_impl_opengl3.h
#	examples/imgui_impl_osx.h
#	examples/imgui_impl_osx.mm
#	imgui.cpp
#	imgui.h
#	imgui_demo.cpp
#	imgui_internal.h
2019-05-29 16:20:26 +02:00
omar
d1e8b698d0 ImDrawList: Added ImDrawCmd::VtxOffset value to support large meshes (64k+ vertices) using 16-bits indices. To enable the feature, the renderer back-end needs to set 'io.BackendFlags |= ImGuiBackendFlags_HasVtxOffset' and honor the ImDrawCmd::VtxOffset field. Otherwise the value will always be zero. This has the advantage of preserving smaller index buffers and allowing to execute on hardware that do not support 32-bits indices.
ImDrawList: Added ImDrawCmd::IdxOffset value, equivalent to summing element count for each draw command. This is provided for convenience and consistency with VtxOffset. (#2591)
2019-05-29 16:13:38 +02:00
omar
40b9e5e0b4 ImDrawList: Store initial flags for the frame in ImDrawListSharedData, reducing code duplication in setting up the flags. 2019-05-29 14:26:03 +02:00
omar
70d9f79312 Internal: Renamed InnerMainRect to InnerVisibleRect. Printing coordinates in Metrics window. 2019-05-28 11:23:04 +02:00
omar
c7c1bf177b Docking: Fixed DockBuilderRemoveNode() from overwriting other parent node flags when trying to move the CentralNode flag. 2019-05-28 00:06:21 +02:00
omar
5b0e59d9d5 Docking: Saving local _NoResize flag. (#2583) 2019-05-27 22:11:21 +02:00
omar
2d68e892a8 Added full "Dear ImGui" prefix to the title of "Dear ImGui Demo" and "Dear ImGui Metrics" windows. Shortened amount of nodes in columns>tree demo. 2019-05-27 18:38:28 +02:00
omar
7c06d9f043 Docking: Saving the NoTabBar, NoWindowMenuButton, NoCloseButton fields of dock node into the .ini file. Added them to the Metrics window. (#2583, #2423, #2109). 2019-05-27 17:06:17 +02:00
omar
511e32e8ca Docking: Clarified terminology of docking/tablist/collapse button into Window Menu button matching master. Added private ImGuiDockNodeFlags_NoWindowMenuButton, ImGuiDockNodeFlags_NoCloseButton flags. (#2583, #2109) 2019-05-27 12:35:20 +02:00
omar
e5dfa0855f Docking: Honor style.WindowMenuButtonPosition setting in docking node. 2019-05-24 21:59:44 +02:00
omar
afad952450 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
#	imgui_widgets.cpp
2019-05-24 21:58:17 +02:00
omar
958d75c00a Style: Added style.WindowMenuButtonPosition (left/right, defaults to ImGuiDir_Left) to move the collapsing/docking button to the other side of the title bar. 2019-05-24 21:54:52 +02:00
omar
6c3697f6f1 Internal: CloseButton takes an upper-left corner + a size to be consistent with similar widgets. 2019-05-24 17:58:21 +02:00
omar
fda1365c15 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2019-05-23 00:04:25 +02:00
omar
7bc03f7155 Internals: Added InnerWorkRect equal to old InnerClipRect, added InnerWorkRectClipped actually clipped. 2019-05-22 23:56:31 +02:00
omar
a2eec8f5b5 Fix OuterRectClipped not being clipped correctly, which resulted in child window outside visible bound to not be marked with SkipItems. Broken in b50c61c961.
+ Comments on InnerClipRect being misleading. Demo: Tweak to sizing of child window in the Layout->Scrolling section.
2019-05-22 22:14:31 +02:00
omar
04022114d9 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2019-05-21 14:47:29 +02:00
omar
882d2c3aea Fixed crash when appending with BeginMainMenuBar() more than once and no other window are showing. (#2567) + comments 2019-05-21 12:18:34 +02:00
omar
392ab08580 BeginPopupContextItem(): Skip processing when SkipItems is set as LastItemId is unreliable and we assert when it is zero. + Minor comments on columns. 2019-05-20 16:46:47 +02:00
omar
f242cd4d8a Fixed GCC mem-access warnings (#2565)
+ using "if defined" more consistently for Clang.
2019-05-19 17:15:14 +02:00
omar
1575a3fbcd Docking: Fixed temporarily losing Dockspace flag when merging remaining sibling back into a parent node. (#2563, #2109)
Would trigger an assert in the Passthru hole path. Broken by fd5859ed.
2019-05-19 17:00:17 +02:00
omar
7e772f6a51 Docking: Fixed undocking whole node (from collapse/docking menu button) from losing its size/pos. Made collapose/docking menu id easier to compute for testing. 2019-05-18 18:42:59 +02:00
omar
31e3e861ef Update changelog, comments, made empty/no-text clipboard return NULL as with other implementation. Minor style tweaks. (#2546)
Fixed IMGUI_DISABLE_WIN32_FUNCTIONS not disabling IME code.
2019-05-18 17:44:09 +02:00
Andrew Willmott
02de498a41 Add native mac copy/paste support to match win32 (#2546) 2019-05-18 17:34:58 +02:00
omar
2e5860b5a0 Docking: Fixed incomplete merge of 36e714a leading to undocking. #2109 2019-05-18 13:00:00 +02:00
omar
4158cba1ff Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_win32.cpp
#	imgui.cpp
#	imgui_internal.h
2019-05-13 19:23:18 +02:00
omar
fc3c3de551 Fixed uses of IsItemDeactivated(), IsItemDeactivatedAfterEdit() on multi-components widgets and after EndGroup(). (#2550, #1875) 2019-05-13 19:05:41 +02:00
omar
99a845053a Internal: Renamed fields + minor tweaks (probably shallow break stack-layout pr, sorry!) 2019-05-13 18:26:28 +02:00
omar
64dbd932d2 Internal: Removed GetNextItemWidth(), relying on ItemAdd or NextItemData.ClearFlags() to clear the width data. Amend 5078fa20 and undo some of its effects of imgui_widgets.cpp 2019-05-13 15:29:00 +02:00
omar
632469d2e5 Renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Refactored SetNextItemXXX stuff to match SetNextWindowXXX code closely. 2019-05-13 15:11:25 +02:00
omar
36e714a459 Internal: Storing flags for NextWindowData so that we can clear everything with a single write and remove dummy condition fields. 2019-05-13 14:57:30 +02:00
omar
0b485f12d7 Internal: Minor tidying/reordering of sections within ImGuiContext / window DC. 2019-05-13 14:02:03 +02:00
omar
7355c84701 Tweak EndGroup() to facilitate fixing #2550 later (currently should have no side-effect0. Demo: Add extra widget to status query test. 2019-05-12 21:42:36 +02:00
Chris Savoie
b955e485f1 Fixed unused variables warnings when asserts are compiled out. (#2551) 2019-05-12 17:53:08 +02:00
omar
aca6ee1a91 Cast ImTextureId to void* before printing in Metrics window. (#2548) 2019-05-11 11:34:41 +02:00
omar
ef13d95466 IO: changed AddInputCharacter(unsigned short c) signature to AddInputCharacter(unsigned int c).
Examples/Backends: Don't filter characters under 0x10000 before calling io.AddInputCharacter(), the filtering is done in io.AddInputCharacter() itself. This is in prevision for fuller Unicode support. (#2538, #2541)
2019-05-11 10:33:56 +02:00
omar
b668726a38 Fixed a PVS Studio static analyzer warning. 2019-05-10 22:58:24 +02:00
omar
835a8b2c9b Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
2019-05-10 22:56:43 +02:00
omar
7c256fbd40 Internal: Extracted some of the Begin code into RenderWindowDecorations(). 2019-05-10 22:45:52 +02:00
omar
72951a1a85 Internal: Extracted some of the Begin code into RenderWindowTitleBarContents(). 2019-05-10 22:45:28 +02:00
omar
b50c61c961 Internal: Begin: Update rectangles before Scrollbar() which now uses them. Fixes 39eeda0. 2019-05-10 22:30:33 +02:00
omar
e29176df53 Internals: Columns: Renamed fields. Comments and tweak. Moved a demo block. 2019-05-09 13:12:09 +02:00
omar
a4d0b0efa4 Internal: Refactored Separator into SeparatorEx(), exposed ImGuiSeparatorFlags_SpanAllColumns in imgui_internal.h and support without. (#759) + misc comments 2019-05-09 12:55:01 +02:00
omar
b7c2759f95 Columns: Fixed Separator from creating an extraneous draw command. Fixed Selectable with SpanAllColumns flag from creating an extraneous draw command. (#125) 2019-05-09 12:10:36 +02:00
omar
239c8732d7 Viewports: Minor tweaks. (#2471) 2019-05-08 18:33:08 +02:00
omar
9bf3f910c8 Viewports: Fix to avoid SetNextWindowViewport being overrided by creation of a standalone viewport. (#2544, #1542) 2019-05-08 18:20:13 +02:00
omar
42fc563fed Version 1.71 WIP + fixed minor typo 2019-05-07 16:36:08 +02:00
omar
d1d5075b66 Version 1.70 2019-05-06 14:17:39 +02:00
omar
76e61958fd Merge branch 'master' into docking
# Conflicts:
#	examples/README.txt
#	examples/imgui_impl_dx9.cpp
#	imgui.cpp
#	imgui.h
2019-05-06 10:16:43 +02:00
omar
6c196cf432 Examples Readme and Changelog tweaks, added #2527, re-ordered examples/README alphabetically. 2019-05-06 10:02:59 +02:00
omar
526e2303bc Window: Fixed SetNextWindowSizeConstraints() with non-rounded positions making windows drift. (#2067, #2530) 2019-05-03 19:09:44 +02:00
omar
9c1f02a42c Misc: Made IMGUI_CHECKVERSION() macro also check for matching size of ImDrawIdx. 2019-05-03 18:42:53 +02:00
omar
e2166db282 Internals: Fixed incorrect repeat delay/rate calculation in IsMouseClicked() with repeat flag leading to involontary but thankfully doubling the rate. Using our standard function, making the multiplicator explicit. 2019-05-03 15:06:06 +02:00
omar
2dc81057ec Selectable: With ImGuiSelectableFlags_AllowDoubleClick doesn't return true on the mouse button releas efollowing the double-click. Only first mouse release + second mouse down (double-click) returns true. Likewise for internal ButtonBehavior() with both _PressedOnClickRelease | _PressedOnDoubleClick. (#2503) 2019-05-03 14:31:12 +02:00
omar
ce19cb465f Internals: Rename GetContentRegionMaxScreen() -> GetWorkRectMax(). At this point this is mostly useful to facilitate merge of other branches. 2019-05-02 16:29:40 +02:00
omar
825b61e4ba Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_dx9.cpp
#	examples/imgui_impl_opengl2.cpp
#	examples/imgui_impl_opengl3.cpp
#	examples/imgui_impl_vulkan.cpp
#	imgui.cpp
2019-05-02 14:56:47 +02:00