Commit Graph

3388 Commits

Author SHA1 Message Date
omar
f1ba217a92 Internals: Extracted some code out of the NewFrame() function. 2019-07-21 12:13:44 -07:00
ocornut
047dc16af5 Debug Tools: Added DebugStartItemPicker() in imgui_internal.h to facilitate binding this anywhere in user's tool. Adedd highlight. Added IMGUI_DEBUG_TOOL_ITEM_PICKER_EX to break in ItemAdd(). 2019-07-19 11:28:03 -07:00
omar
1f3feb481e Internals: Refactor: Moved all Columns code from imgui.cpp to imgui_widgets.cpp (#125)
Also moved NextColumn between BeginColumn and NextColumn which makes it easier to work on that code.
2019-07-17 17:10:27 -07:00
omar
130b44994e Debug, Metrics: Added "Tools->Item Picker" tool which allow clicking on a widget to break in the debugger within the item code. The tool calls IM_DEBUG_BREAK() which can be redefined in imconfig.h if needed. 2019-07-16 18:25:49 -07:00
omar
e6a286b3a5 Style: Added style.ColorButtonButton (left/right, defaults to ImGuiDir_Right) to move the color button of ColorEdit3/ColorEdit4 functions to either side of the inputs. 2019-07-16 16:43:21 -07:00
omar
a35f42f123 Removed TreeAdvanceToLabelPos() which is rarely used and only does SetCursorPosX(GetCursorPosX() + GetTreeNodeToLabelSpacing()). Kept redirection function (will obsolete). (#581, #324) 2019-07-15 18:30:20 -07:00
omar
7a9d32acee Fixed unnecessary test in UpdateMouseWheel() (thanks PVS).
TreeNodeBehavior: avoid computing bg_col for non-framed non-active tree nodes.
Comments, binaries update, minor typos.
2019-07-15 18:30:20 -07:00
omar
71d20abbc3 Settings: Minor optimization to reduce calls in SettingsHandlerWindow_WriteAll. 2019-07-12 13:33:38 +02:00
omar
d52c6316c8 Renamed ImFontAtlas::CustomRect to ImFontAtlasCustomRect. Keep redirection typedef (will obsolete). 2019-07-12 11:58:46 +02:00
omar
e66799f79a Prefixed internal structs exposed in imgui.h with a fully qualified name to facilitate auto-generation with cimgui. 2019-07-12 11:54:22 +02:00
omar
54c49b5fb1 Window: Mouse wheel scrolling while hovering a child window is automatically forwarded to parent window if ScrollMax is zero on the scrolling axis. Also still case if ImGuiWindowFlags_NoScrollWithMouse is set (not new), but previously the forwarding
would be disabled if ImGuiWindowFlags_NoScrollbar was set on the child window, which is not the case any more (amend #1502, #1380).
2019-07-02 18:33:50 +02:00
omar
58c9f8a194 Misc: Added IMGUI_DISABLE_METRICS_WINDOW imconfig.h setting to explicitly compile out ShowMetricsWindow(). + Internals: Minor renaming. 2019-07-01 20:58:10 +02:00
omar
da29d77253 Added SetScrollXHere, SetScrollFromPosX: Changelog, demo, comments (#1580). 2019-07-01 12:15:53 +02:00
kevreco
caf119a982 Added 'SetScrollHereX' and 'SetScrollFromPosX' (#1580) 2019-07-01 12:15:48 +02:00
omar
a89f05a10e Child windows inherit Hidden frames setting from parent more accurately, so HiddenFramesCannotSkipItems is honored by child windows. 2019-06-29 20:12:15 +02:00
omar
401e05147c Internals: Moved CalcListClipping close to ImGuiListClipper code (no-op) 2019-06-29 20:11:03 +02:00
omar
82711251b6 Internals: ImGuiListClipper using absolute coordinate (instead of relative one). Minor no-op tweaks + ImDrawListSplitter assert 2019-06-29 20:10:55 +02:00
omar
4b95e7c2f3 Doc: Tweak and extra mention of AddCustomRectFontGlyph + made the example register two rectangles. 2019-06-26 12:15:32 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
a1c432d1ad Internals: SettingsHandlerWindow_ReadLine uses context parameter. 2019-05-02 14:30:35 +02:00
omar
3fbc0b7a9e Obsoleted GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead. Kept inline redirection function. 2019-04-29 18:33:08 +02:00
omar
db2d58a68b Drag and Drop: Fixed drag source with ImGuiDragDropFlags_SourceAllowNullID and null ID from receiving click regardless of being covered by another window (it didn't honor correct hovering rules). (#2521) 2019-04-29 16:34:02 +02:00
omar
0f2852806c Amend 48a09a7 with changelog, breaking changes, tweak demo code for spacing. (#2518) 2019-04-29 12:44:17 +02:00
omar
4dec744795 Tidying up BeginMenu() code + comments. 2019-04-29 00:02:02 +02:00
omar
842a720e72 Popups: Closes popup at the time of FocusWindow(). Fixes right-click from closing all popups instead of aiming at the hovered popup level (regression in 1.67's ae76a1fd). 2019-04-28 22:33:58 +02:00
omar
bda2cde68e Popups: Closing a popup restores the focused/nav window in place at the time of the popup opening, instead of restoring the window that was in the window stack at the time of the OpenPopup call. (#2517)
Among other things, this allows opening a popup while no window are focused, and pressing Escape to clear the focus again.
2019-04-28 22:18:51 +02:00
omar
09db2f6dec Fix 61d9258 when there is not scrollbar "Window: Fixed contents region being off by WindowBorderSize amount on the right when scrollbar is active." 2019-04-28 18:50:51 +02:00
omar
4e81b2d093 Internals: Renaming. Renamed ImGuiPopupRef to ImGuiPopupData for consistency and added constructor. 2019-04-28 17:15:08 +02:00
omar
00b3c830db Internals: Begin: Moved OuterRectClipped/InnerMainRect/InnerClipRect computation higher up in the function, next to ContentsRect/WorkRect code. Removed commented out debug drawing code which is now available in Metrics window. 2019-04-26 23:33:09 +02:00
omar
61d92580aa Window: Fixed contents region being off by WindowBorderSize amount on the right when scrollbar is active. 2019-04-26 23:32:29 +02:00
omar
5d799d76ea Internals: Nav scrolling uses InnerMainRect instead of InnerClipRect. 2019-04-26 23:31:51 +02:00
omar
0ca1675ff9 Internals: TempInputText: Rename InputScalarAsWidgetReplacement() -> TempInputTextScalar(), ScalarAsInputTextId -> TempInputTextId, small tidying up in affected functions. 2019-04-25 16:03:47 +02:00
omar
59a3f0476d Internals: Using more explicit PushOverrideID() helper + renamed equivalent internal tree helper. 2019-04-25 15:21:22 +02:00