Commit Graph

909 Commits

Author SHA1 Message Date
omar
291bfe6841 Docking: work to allow programmatic control of dock nodes, various refactor + assert fix. Probably broke something (but I haven't found what yet!) 2018-09-19 16:00:13 +02:00
omar
35032d41fa Docking: Internals: Transitioning some code toward consistently using ImGuiContext* ctx parameter instead of ImGuiDockContext 2018-09-17 17:06:52 +02:00
omar
b55b9aee9b Fixed bad merge (a82be53) where we lost the version number in Docking branch + moved Docking related API together for now. 2018-09-14 18:09:46 +02:00
omar
175bab4f5f Docking: Removed SplitRatio from ImGuiDockNode and ImGuiDockNodeSettings, which we don't need anymore. 2018-09-14 17:51:30 +02:00
omar
e32256b4b4 Merge branch 'viewport' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui_demo.cpp
#	imgui_internal.h
2018-09-14 11:38:10 +02:00
omar
1cefc48f13 Docking: Internal renaming and comments. + Fixed DockNodeMoveChildNodes() to transfer the LastExplicitSize value (was inconsequential afaik). 2018-09-11 18:53:08 +02:00
omar
211a9c8fd2 Docking: Added ImGuiDockSpaceFlags_KeepAliveOnly, important for multiple level of tabs. (also renamed ImGuiDockFlags to ImGuiDockSpaceFlags.) 2018-09-11 17:58:09 +02:00
omar
df65d4a14f Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2018-09-11 11:18:46 +02:00
omar
e2436ca625 Nav, Focus: Fixed ImGuiWindowFlags_NoBringToFrontOnFocus windows not being restoring focus properly after the main menu bar or last focused window is deactivated. 2018-09-10 20:40:21 +02:00
omar
d5692bff00 Nav, Focus: Fixed ImGuiWindowFlags_NoBringToFrontOnFocus windows not being restoring focus properly after the main menu bar or last focused window is deactivated. 2018-09-10 20:30:14 +02:00
omar
dcef0c0237 Docking: Updating LastFrameActive earlier in Begin() because BeginDocked() will need to use it. Extracted some code into a DockNodeIsDropAllowedOne() function. Comments. 2018-09-10 20:23:03 +02:00
omar
a68c98bb67 Docking: Added SetNextWindowUserType() + user type filtering in dockspace and window merging. Added DockSpace() flag ImGuiDockFlags_NoSplit. Renaming. Reworked the DockNodeUpdateFindOnlyNodeWithWindows code so DockNodeUpdate can access the first window. 2018-09-10 14:32:00 +02:00
omar
a82be53407 Merge branch 'docking2' into viewport_docking
# Conflicts:
#	examples/example_glfw_opengl2/main.cpp
#	examples/example_glfw_opengl3/main.cpp
#	examples/example_glfw_vulkan/main.cpp
#	examples/example_sdl_opengl3/main.cpp
#	examples/example_sdl_vulkan/main.cpp
#	examples/example_win32_directx10/main.cpp
#	examples/example_win32_directx11/main.cpp
#	examples/example_win32_directx12/main.cpp
#	imgui.cpp
#	imgui.h
#	imgui_demo.cpp
#	imgui_internal.h
2018-09-06 22:28:21 +02:00
omar
bd5b38e232 Docking: Added Docking system. Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable. (Part 1) (#351) 2018-09-06 21:45:46 +02:00
omar
2ec135c9f7 Docking: Added ImVec2[] non const operator. Added ImStrSkipBlank. Reseting some values earlier in Begin. Added IMGUI_DEBUG_LOG() helper. Added docking source code section. 2018-09-06 21:45:45 +02:00
omar
58d46e1fe6 Tabs: Added BeginTabBar(), EndTabBar(), BeginTabItem(), EndTabItem() + demo. (#261, #351) 2018-09-06 21:45:44 +02:00
omar
c039a77d21 Internals: Added ImPool helper structure. Moved ImVec1f. 2018-09-06 21:45:10 +02:00
omar
52e0de84a9 Internals: Split RenderTextClipped into two functions. 2018-09-06 21:45:09 +02:00
omar
eb7033e75b Version 1.66 WIP 2018-09-06 21:44:59 +02:00
omar
b974fffea0 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
2018-09-06 15:59:35 +02:00
omar
e0cab5664a Version 1.65 2018-09-06 15:58:58 +02:00
omar
5a679a45cc Renamed stb_truetype.h to imstb_truetype.h, stb_textedit.h to imstb_textedit.h, and stb_rect_pack.h to imstb_rectpack.h. (#1718, #2036)
If you were conveniently using the imgui copy of those STB headers in your project, you will have to update your include paths.
The reason for this change is to avoid conflicts for projects that may also be importing their own copy of the STB libraries. Note that imgui's copy of stb_textedit.h is modified.
2018-09-06 15:58:25 +02:00
omar
8601c39571 Viewport: Making the code a little more sturdy (flag changes) + added descriptions. (#1542) 2018-09-05 17:50:55 +02:00
omar
b944aa623c Minor mostly inconsequential merges from Viewport + LoadIniSettingsFromMemory() entirely skip lines starting with ';' 2018-09-05 11:52:48 +02:00
omar
bdb30d7145 Merge branch 'master' into viewport 2018-09-05 11:08:57 +02:00
omar
897e5c6231 Viewport: Moved code following refactor. (#2036, #1542) 2018-09-05 11:08:44 +02:00
omar
d07f494305 Internals: Exposed SliderBehaviorT, DragBehaviorT, RoundScalarWithFormatT, SliderCalcRatioFromValueT. (#2036)
Renamed RoundScalarWithFormat -> RoundScalarWithFormatT.
Renamed SliderBehaviorCalcRatioFromValue -> SliderCalcRatioFromValueT
2018-09-03 14:49:13 +02:00
omar
bcb1441ce7 Version 1.65 WIP 2018-09-03 14:38:04 +02:00
omar
0c24fe276c Merge branch 'master_164' into viewport_164
# Conflicts:
#	imgui.cpp
#	imgui_draw.cpp
#	imgui_widgets.cpp
2018-08-31 10:28:21 +02:00
omar
48db5713d6 Version 1.64 2018-08-31 10:00:03 +02:00
omar
81bc4265e5 Refactor: Internals: Moved Settings functions in imgui.cpp in their own section. (#2036) 2018-08-30 19:32:52 +02:00
omar
15172f0742 Refactor: Internals: Moved Settings functions in imgui.cpp in their own section. (#2036) 2018-08-30 19:23:10 +02:00
omar
6c34bffbb5 Version 1.64 WIP 2018-08-30 19:00:22 +02:00
omar
f2aa124eb8 Version 1.64 WIP 2018-08-30 14:25:23 +02:00
omar
36b2f64051 Merge branch 'master' into viewport
# Conflicts:
#	examples/example_glfw_opengl3/main.cpp
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
#	imgui_internal.h
2018-08-29 17:40:52 +02:00
omar
9e0f24dcb6 Version 1.63 2018-08-29 16:20:25 +02:00
omar
92edb7a4e3 Internals: Tidying up, moving helpers to imgui_internal.h (in prevision of 1.64 refactor) 2018-08-29 16:12:54 +02:00
omar
f9634feb66 Internals: Merged some changes to facilitate 1D->2D transition for some elements, and merging the stack layout PR (#846) 2018-08-28 19:10:59 +02:00
omar
f81caac459 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui.h
2018-08-25 21:19:42 +02:00
omar
06e917f135 Internals: Renaming of non-user facing parts from ValueChanged to Edited terminology. (#2034, #820, #956, #1875) 2018-08-23 13:47:37 +02:00
omar
abaa274592 Internals: Wired a ImGuiItemStatusFlags_ValueChanged into ItemStatusFlags, for an hypothetical IsItemValueChanged() function. (#2034) 2018-08-22 22:31:51 +02:00
omar
102d5e6de6 Rearrange header comments to find enums easily + fixed inconsistent sorting. 2018-08-22 22:13:05 +02:00
omar
a4191857c1 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_vulkan.h
#	imgui.cpp
2018-08-22 21:35:44 +02:00
omar
2dc5ec95d7 Internals: InputText: Renaming. Comments. 2018-08-22 12:46:46 +02:00
omar
9f393c38e9 InputText: Renamed ImGuiTextEditCallback to ImGuiInputTextCallback, ImGuiTextEditCallbackData to ImGuiInputTextCallbackData for consistency. Kept redirection types (will obsolete). 2018-08-22 12:46:45 +02:00
omar
24ff259816 InputText: Added support for buffer size/capacity changes via the ImGuiInputTextFlags_CallbackResize flag. (#2006, #1443, #1008). 2018-08-21 21:36:07 +02:00
omar
4de6e1f7e4 InputText: Internal renaming of some fields + final copy uses edit_state.CurLenA+1 instead of buf_size. 2018-08-21 15:14:10 +02:00
omar
4910629f6a Internals: Moved code out of SliderBehaviorT to reduce code bloat and also because caller may have use for the grab_bb for styling purposes. 2018-08-20 09:59:51 +02:00
omar
9d7480774f Merge branch 'master' into viewport 2018-08-17 11:37:03 -07:00
omar
bb2de30e3e Internals: Added ImTextCountUtf8BytesFromChar() helper. 2018-08-17 11:33:45 -07:00
omar
341ebd961b Fixed assertion when transitioning from an active ID to another within a group, affecting ColorPicker (broken in 1.62). Made ActiveIdIsAlive track the actual ID to avoid incorrect polling in BeginGroup/EndGroup when the ID changes within the group. (#2023, #820, #956, #1875). 2018-08-16 13:33:16 -07:00
omar
4e33aeed82 Selectable: Added ImGuiSelectableFlags_Disabled flag in the public API. (#211) 2018-08-14 16:07:01 -07:00
omar
e5f2295398 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_opengl2.cpp
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
2018-08-13 17:50:48 -07:00
omar
d4cd121ae1 TODO + added missing _None enum for some internals flags. 2018-08-09 21:03:17 +02:00
omar
fda9dc8e18 Internals: Extracted RenderMouseCursor() out of EndFrame(). Moved to imgui_draw.cpp along with RenderArrowPointingAt(). Comments. (#2013) 2018-08-09 18:07:49 +02:00
omar
0905202f44 Internals: Minor renaming for consistency. 2018-08-05 18:13:24 +02:00
omar
8ef0ca9765 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_sdl.cpp
#	imgui.cpp
2018-08-01 12:27:56 +02:00
omar
65b46f62ef Fixed PushID() from keeping alive the new ID Stack top value (if a previously active widget shared the ID it would be erroneously kept alive) (drag and drop demo could soft-lock the UI until pressing Escape!) 2018-07-31 17:28:18 +02:00
omar
9824bf1ba1 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
2018-07-31 12:12:56 +02:00
omar
e13e5982ff Drag and Drop: Payload stays available and under the mouse if the source stops being submitted, however the tooltip is replaced by "..." + moved FrameScopeActive = false at the bottom of EndFrame() for safety. (#1725) 2018-07-31 12:11:18 +02:00
omar
a7ac9e8346 Made assertion more clear when trying to call Begin() outside of the NewFrame()..EndFrame() scope. (#1987) 2018-07-30 18:20:25 +02:00
omar
4d5dcdb57a Internals: Changed signature of ShadeVerts functions to remove pointers. (#1286, #1700, #1986) 2018-07-30 17:24:04 +02:00
omar
0095b7a0ea Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2018-07-26 23:55:23 +02:00
omar
28c1a9857e Internals: Changed SplitterBehavior() signature to be consistent with other similar signatures. (#319). 2018-07-26 23:50:05 +02:00
omar
63df9d6311 Internals: Extracted part of Begin into UpdateWindowParentAndRootLinks(). Useful to call to keep state updated immediately (namely useful for docking) + small tidying up of imgui_internal.h 2018-07-26 23:49:36 +02:00
omar
6b4f6cd2c5 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
2018-07-26 19:25:55 +02:00
omar
dd0d5debef Internals: Child windows that are clipped or part of a collapsed parent are not marked as collapsed anymore, but just a separate hidden marker set. We distinguish hiding for size measurement vs hiding for other reasons. Cleaned a little the end of Begin. 2018-07-26 19:24:27 +02:00
omar
0b045d8de5 Nav: Tweaked CTRL+TAB to hide visual noise on fast switch + fading out screen dimming and highlight to make the experience less harsh 2018-07-26 19:03:02 +02:00
omar
1b646a4440 Nav: Tweaked CTRL+TAB to hide visual noise on fast switch + fading out screen dimming and highlight to make the experience less harsh 2018-07-26 19:01:51 +02:00
omar
0c88fad6c2 Internals: SplitterBehavior() added hover_visibility_delay parameter which is helpful to reduce visual noise. (#319) 2018-07-25 16:07:05 +02:00
omar
f22024cb19 Internals: Exposed NavScoreItemGetQuadrant() as ImGetDirQuadrantFromDelta() in imgui_internal.h 2018-07-24 16:54:29 +02:00
omar
352695bc57 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_sdl.cpp
#	imgui.cpp
2018-07-24 16:50:49 +02:00
omar
357534e588 Made it possible to move a window by dragging from the Collapse button (past the drag threshold). Extracted some code out to a CollapseButton() function. 2018-07-24 16:45:11 +02:00
omar
3a522b2400 Internals: Renamed one of the arrow functions so their name don't collide. 2018-07-24 16:41:17 +02:00
omar
e07f5d4c78 Changed ImGui::GetTime() return value from float to double to avoid accumulating floating point imprecisions over time. 2018-07-22 18:46:41 +02:00
omar
7b4fbf4301 Viewport: Removed the need for the back-end to fill io.MousePosViewport, it seems unnecessary at this point. (#1542) 2018-07-17 16:37:10 +02:00
omar
b8b74970d7 Internals: Viewport: Renamed g.MouseRefViewport to g.MouseViewport. (#1542) 2018-07-17 16:04:47 +02:00
omar
b30b82835a Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
#	imgui_internal.h
2018-07-12 11:48:49 +02:00
omar
5e73e969fb Comments, exposed a few things in imgui_internal.h for consistency, added ImQsort wrapper. 2018-07-12 11:08:24 +02:00
omar
88df66ec83 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
#	imgui.h
#	imgui_draw.cpp
#	imgui_internal.h
2018-07-12 10:03:18 +02:00
omar
9007dff5eb IsItemHovered(): Added ImGuiHoveredFlags_AllowWhenDisabled flag to query hovered status on disabled items. (#1940, #211)
+ shallow changelog tweaks
2018-07-10 19:16:57 +02:00
omar
4dfb9ef751 Internals: Extracted StartMouseMovingWindow so we can add code to turn an arbitrary widget into a window mover (will be useful to make the Collapse button a window mover past a mouse drag threshold) + added a couple of _None flags. 2018-07-10 11:16:40 +02:00
omar
140ece0aeb Internals: HoveredWindowUnderMovingWindow special handling for drag and drop of window without altering the _NoInputs window flag, which worked but messed up the IsWindowHovered() user-facing flags. 2018-07-09 21:18:10 +02:00
omar
574185426c Internals: Misc/shallow merge from Docking branch. 2018-07-09 21:06:46 +02:00
omar
7033b2043b Internals: Move IMGUI_CDECL declaration to imgui_internal.h so everyone can profit. 2018-07-09 20:34:12 +02:00
omar
dd61c4802a Nav: Added a CTRL+TAB window list and changed the highlight system accordingly. (#787) 2018-07-09 19:22:49 +02:00
omar
c7016c25e8 Nav: Added a CTRL+TAB window list and changed the highlight system accordingly. (#787) 2018-07-09 19:16:48 +02:00
omar
14cef31467 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
2018-07-09 16:24:01 +02:00
omar
0708f91617 Internals: Removed RootWindowForTabbing, won't be needed. Nav: Not starting NavWindowingTarget when a modal is active (was not noticeable). 2018-07-09 16:20:14 +02:00
omar
bd6097ac6f Drag and Drop: Calling BeginTooltip() between a BeginDragSource()/EndDragSource() or BeginDropTarget()/EndDropTarget() uses adjusted tooltip settings matching the one created when calling BeginDragSource() without the ImGuiDragDropFlags_SourceNoPreviewTooltip flag. (#143) + additional safety checks. 2018-07-08 20:06:49 +02:00
omar
64938178b7 Internals: Moved selectable flags to avoid collision with public flags + rewrote some tests so we can consistently grep for (held && hovered) 2018-07-08 18:23:12 +02:00
omar
6277781e83 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
2018-07-08 13:08:16 +02:00
omar
93950b8c32 Internals: Removed unused ShadeVertsLinearAlphaGradientForLeftToRightText code. 2018-07-06 15:50:07 +02:00
omar
770cba0bd0 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_glfw.h
#	examples/imgui_impl_sdl.cpp
#	examples/imgui_impl_sdl.h
#	examples/imgui_impl_win32.cpp
#	examples/imgui_impl_win32.h
#	imgui.cpp
#	imgui_internal.h
2018-07-02 20:13:16 +02:00
omar
004fe8916a Internals: Settings: Simple optimization caching index into the settings buffer, to remove an unnecessary O(N*M) search during saving. (with N=active root windows during the session, M=stored settings which grows over time) 2018-06-28 18:42:38 +02:00
omar
7adae3299e Double-click on resize grip doesn't need to test HoveredWindow (as button has the flattenchild flag anyway) + double-click on title bar verify that we don't have overlapping items to allow contents in title bar. + Comments 2018-06-27 17:29:31 +02:00
omar
c38fe6b0e1 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
2018-06-26 12:41:36 +02:00
omar
79153cf19f Internals: Various renaming. e.g. NewFrameUpdateHoveredWindowAndCaptureFlags() to UpdateHoveredWindowAndCaptureFlags() + exposed UpdateMovingWindow() in imgui_internal.h. 2018-06-26 12:40:37 +02:00
omar
14ceaaf460 ArrowButton: Fixed to honor PushButtonRepeat() setting (and internals' ImGuiItemFlags_ButtonRepeat). Setup current line text baseline so that ArrowButton() + SameLine() + Text() are aligned properly. 2018-06-26 12:37:20 +02:00
omar
c1d8dee6c5 Version 1.63 WIP 2018-06-25 09:40:09 +02:00
omar
ce500f8727 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_win32.cpp
2018-06-22 12:01:42 +02:00
omar
1b74e3be02 Version 1.62 2018-06-22 09:41:25 +02:00
omar
70b0bd13aa Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_opengl2.cpp
#	examples/imgui_impl_opengl2.h
#	examples/imgui_impl_opengl3.cpp
#	examples/imgui_impl_opengl3.h
#	imgui.cpp
#	imgui.h
2018-06-14 15:30:15 +02:00
omar
d57fc7fb97 Added IsItemDeactivatedAfterChange() if the last item was active previously, isn't anymore, and during its active state modified a value. Note that you may still get false positive. (#820, #956, #1875) 2018-06-13 00:10:33 +02:00
omar
be4b8b5615 Internals: Added GetItemID(), GetFocusID() for consistency. Made GetActiveID() inline. Comments, fixed typos, demo tweaks. 2018-06-13 00:02:19 +02:00
omar
cd455a4600 Added IsItemDeactivated() to query if the last item was active previously but isn't anymore. Useful for Undo/Redo patterns. (#820, #956, #1875) 2018-06-12 18:44:33 +02:00
omar
c725710c6d Comments 2018-06-12 18:25:04 +02:00
omar
93b032ea92 Merge branch 'master' into viewport
# Conflicts:
#	examples/opengl3_example/imgui_impl_glfw_gl3.cpp
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp
#	imgui.cpp
2018-06-05 15:51:52 +02:00
omar
6d98c0323b Nav: Added support for PageUp/PageDown (explorer-style: first aim at bottom/top most item, when scroll a page worth of contents). (#787) 2018-06-05 15:49:33 +02:00
omar
5a7e98c7cf Internals: Nav: Removed ParentID from move result (unused, would need to be full-filled for PageUp/PageDown code) + FAQ typo fix. 2018-06-04 15:43:33 +02:00
omar
08e20ae465 Internals: Reintroducing LastActiveIdTimer because it is useful and to reduce merge conflicts. (#1537) 2018-05-28 21:48:25 +02:00
omar
d4b151076c Internals: Added BeginDragDropTooltip() internal function to convey semantic (drag and drop tooltip doesn't get clipped within display boundaries). Revert part of 3218666fb9. (#1739, #143). 2018-05-28 21:40:09 +02:00
omar
92b7d6bc4f Added ImGuiDragDropFlags_AcceptNoPreviewTooltip flag to disable drag source tooltip from the target site (#143) 2018-05-28 20:57:41 +02:00
omar
01429e7d16 Merge branch 'master' into viewport
# Conflicts:
#	examples/opengl3_example/imgui_impl_glfw_gl3.cpp
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp
#	imgui.cpp
#	imgui.h
2018-05-17 15:03:56 +02:00
omar
d5c8f404b2 Remove trailing white spaces. 2018-05-17 14:12:37 +02:00
omar
ede5059e69 Internals: Forward declaring and commenting internal structures. Renamed ImGuiDrawContext to ImGuiWindowTempData, but kept .DC member name for backward compatibility purpose 2018-05-17 10:48:15 +02:00
omar
86f8cdbd98 Comments + Internals: Selectable: decoupled internal flags and removed their menu / menu-item semantic as upcoming changes are requiring more flexibility. 2018-05-16 18:03:37 +02:00
omar
99ff6fc7e4 Nav: Draft internal api to forward move request with loop/wrap options. Will rework for parallel scoring of two paths (as a generalization of the NavFlattened concept). (#787) 2018-05-14 23:07:35 +02:00
omar
036dce634e Version 1.62 WIP 2018-05-14 19:19:19 +02:00
omar
b0fb340b57 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
2018-05-14 13:15:21 +02:00
omar
78b28d545f Version 1.61 + todo additions 2018-05-14 12:34:47 +02:00
omar
725c13ca68 Fix for atof with glibc. 2018-05-13 22:43:43 +02:00
omar
2a2bb8970d Added ImAtof, ImCeil, ImFloorStd to IMGUI_DISABLE_MATH_FUNCTIONS for consistency. Configuration comments. 2018-05-13 22:31:29 +02:00
omar
ff033f431b Added IMGUI_DISABLE_MATH_FUNCTIONS in imconfig.h to make it slightly easier to redefine wrappers to std maths functions such as fabsf(), fmodf(), etc. Comments. 2018-05-13 21:04:07 +02:00
omar
85f3ba844c Merge branch 'master' into viewport
# Conflicts:
#	examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp
#	imgui.cpp
#	imgui.h
2018-05-11 22:22:41 +02:00
omar
fc7fc83f9e Data types: DragScalar, InputScalar: default parameters. Added IM_STATIC_ASSERT(). Comments. 2018-05-11 19:27:27 +02:00
omar
8149408408 Merge branch 'data_types'
# Conflicts:
#	CHANGELOG.txt
#	imgui.cpp
2018-05-11 16:48:50 +02:00
omar
773d484009 Internals: Made ContentsRegionRect absolute to reduce confusion. Renamed InnerRect to InnerMainRect, renamed WindowRectClipper to OuterRectClipped. 2018-05-09 23:12:34 +02:00
omar
f83f566530 Internals: Nav: Extracted code into a NavClampToVisibleAreaForMoveDir() + fix debug code + inline some functions, removed obsolete EndChild() comment. 2018-05-09 21:48:03 +02:00
omar
5f464877ed Internals: Declaring DragBehavior, SliderBehavior in there (no warantee given) as they may be useful to custom widgets. 2018-05-08 19:52:56 +02:00
omar
8da0d42ef2 Moved DragScalar, InputScalar, SliderScalar to imgui.h as well as ImGuiDataType (#320, #643, #708, #1011) 2018-05-08 19:52:55 +02:00
omar
4ff23d3306 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx9.cpp
#	imgui.cpp
#	imgui.h
2018-05-07 22:23:58 +02:00
omar
0bf43b3a1b Settings: Added LoadIniSettingsFromDisk(), LoadIniSettingsFromMemory(), SaveIniSettingsToDisk(), SaveIniSettingsToMemory(), io.WantSaveIniSettings. (#923, #993) 2018-05-07 22:18:45 +02:00
omar
023cc25c7c Internals: Removed unnecessary allocation indirection for g.LogClipboard (this only made sense when there was a global context instance) 2018-05-07 22:15:25 +02:00
omar
3e8087458d SliderScalar, VSliderScalar(): Support for any data types. Tested with various ranges/limits. Note that Drag/Slider/Input currently fail if the format string doesn't preview the actual value. Will fix next. (#320, #643, #708, #1011) 2018-05-04 20:55:51 +02:00
omar
944f414cc6 Internals: A few selected math helpers are now using template to handle all supported types. Added ImPow() to wrap float/double in a standard manner without calling pow(double) when not needed in Drag code. 2018-05-04 18:14:59 +02:00
omar
f4c16fbb99 Internals: Data types: Made format string optional. DragBehavior: Moved a bit of code outside of the template. Slider tidying up. Removed unnecessary call to fabsf(). 2018-05-04 17:57:47 +02:00
omar
f47c756755 Internals: Missing const, some renaming. Tweak legacy fast path. 2018-05-03 22:12:55 +02:00
omar
069b284f17 Internals: Tidying up internal helpers. Fixed a case ImParseFormatTrimDecorations() can return an off by one (out of bound) pointer if the format string is invalid. Extracted ImParseFormatFindEnd() out of TrimDecorations so we can use it to find the format type and replace the %f in old Int apis. 2018-05-03 20:22:29 +02:00
omar
086c3925c4 Internals: Fixed DragInt* default format string. InputScalar(), InputScalarN(), removed InputFloatN(), InputInt(). Note that DragInt2/3/4 will %f format strings will currently be broken. (#320, #643, #708, #1011) 2018-05-03 19:42:35 +02:00
omar
6c932479f2 Internal: DragScalar(), InputScalar() now support signed/unsigned, 32/64 bits, float/double data types. (#320, #643, #708, #1011) 2018-05-03 17:34:38 +02:00
omar
93b8580a8d Internals: DragFloat: Fixed power handling. Use an temporary accumulator and no absolute values so we will be able to manipulate double as well as 64-bit integers. (#1011, #708, #320) 2018-05-03 17:34:33 +02:00
omar
3f04fd0644 Internals: DragFloat: Removed DragSpeedScaleFast/DragSpeedScaleSlow since it's not yet usable and Nav version doesn't have an equivalent. 2018-05-03 17:34:29 +02:00
omar
4780ac1ca4 Internals: Data types: Added s64, u64 data types. Added support in InputScalar(). Removed internal.h InputScalarEx() to InputScalar(). Removed cheap-relative-operators support in recently added U32 data path, since this is heading toward being legacy code. + Fixed InputDouble parsing code. (#1011, #320, #708) 2018-05-03 17:34:22 +02:00
omar
10e3f17235 DragFloat/SliderFloat internal InputScalar trim leading/trailing spaces emitted from the format string when presenting an edit box to the user. (#648)
Follow up to 6881d065b8
2018-05-03 17:34:02 +02:00
omar
a62f195e83 Internals: Renamed IsCharIsSpace() to IsCharIsBlank*() to match standard terminlogy and added ascii/u16 variations. 2018-05-03 17:33:55 +02:00
omar
ed756d474e Internals: Added ImGuiDataType_Uint32 data type which is usable with InputScalarEx(). 2018-04-30 20:02:33 +02:00
omar
92f0165f85 DragFloat, SliderFloat: Rounding scalar using the provided format string instead of parsed precision. (#648) 2018-04-30 16:44:57 +02:00
omar
6881d065b8 DragFloat/SliderFloat internal InputScalar trip trailing decoration off the format string when presenting an edit box to the user. (#648) 2018-04-30 15:59:59 +02:00
omar
d7e24416dd DragFloat/SliderFloat internal InputScalar relies on the user supplied format string to format and parse value. (#648)
The trailing text after the format will be displayed in the InputText but not affect back parsing. Ideally we can try to strip it later.
2018-04-30 15:21:51 +02:00
omar
f80314754c InputFloat,InputFloat2,InputFloat3,InputFloat4: Added variations taking a more flexible and consistent optional "const char* format" parameter instead of "int decimal_precision". This allow using custom formats to display values in scientific notation, and is generally more consistent with other API. Obsoleted functions using the optional "int decimal_precision" parameter. (#648) 2018-04-28 00:11:40 +02:00
omar
c47d34cf70 Viewport: Exposing SetNextWindowViewport(). Used in demo and old/obsolete SetNextWindowPosCenter() (which is an interesting case). Fixed back-end likely crash calling GetFocus() after viewport destruction. Fixed metrics crash. 2018-04-27 15:13:22 +02:00
omar
cd51f37fc0 Viewport, Platform: Refresh monitor list (win32, glfw) + avoid calling GetWindowFocus before platform window creation to not require of backend to null-check things inconsistently. (#1542) 2018-04-26 16:18:47 +02:00
omar
da70c837da Viewport: Removed unnecessary fields (now that the coordinate system is consistent accross viewports): MouseRefPrevViewport, MouseClickedPosViewportId. (#1542) 2018-04-26 15:30:19 +02:00
omar
f1ae07e532 Viewport, Platform: Using Platform_GetWindowFocus to provide a much stronger heuristic of platform z-order, in replacement for when the back-end cannot provide io.MouseHoveredViewport. The pressure for it to work well increased with the use of viewports by popups/menus. (#1542) 2018-04-26 11:52:38 +02:00
omar
5979233a3c Misc: tweaks + minor changes merged from master to reduce branch drift. Removed code that ended up unused. 2018-04-25 18:23:39 +02:00
omar
0b1d6a0d52 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
2018-04-25 18:13:23 +02:00
omar
e3453d0dc4 Misc: Comments and shallow/small changes (merged from viewport branch to minimize branch drift). 2018-04-25 17:58:53 +02:00
omar
3b9b1956cd Merge branch 'master' into viewport
# Conflicts:
#	examples/allegro5_example/imgui_impl_a5.cpp
#	examples/allegro5_example/imgui_impl_a5.h
#	examples/allegro5_example/imgui_impl_allegro5.cpp
#	examples/allegro5_example/imgui_impl_allegro5.h
#	examples/allegro5_example/main.cpp
#	examples/imgui_impl_allegro5.cpp
#	examples/imgui_impl_allegro5.h
#	imgui.cpp
#	imgui_internal.h
2018-04-25 15:32:04 +02:00
omar
01fa934222 Internals: Removed unecessary Pos/PosFloat separation, only reason appears to be mostly pre-1.0. The only piece of code that I expected sub-pixel window position to matter actually already round its delta (wrongly so, will fix later/separately if we want). 2018-04-25 15:24:26 +02:00
omar
cc882b0723 Viewport: Tidying up AddUpdateViewport() calls. Moved flags argument. Removed extraneous mid-frame call to FindPlatformMonitorFromRect(). (#1542) 2018-04-25 15:14:51 +02:00
omar
7684f53328 Viewport: Fixed issues with popups drifting in particular when reference mouse position become invalid (e.g. changing app focus while viewported-menu is open). Storing monitor index in viewport at beginning of the frame. (#1542) 2018-04-25 11:23:58 +02:00
omar
dc03c93164 Internals: Removed misleading ImRect::FixInverted + fix minor formatting in Readme.
Demo: Fixed Overlay: Added a context menu item to enable freely moving the window.
2018-04-24 14:19:10 +02:00
omar
cb78e62df9 Viewport, Platform: Fixed IME positioning for multi-viewport. Moved API from ImGuiIO to ImGuiPlatformIO. Because it is extremely unlikely to people redefined this API manually the moving-forward-breakage is ok. (#1542)
SDL2 ime support under Win32 never worked properly because of SDL interferences.
2018-04-24 12:40:38 +02:00
omar
456bbffcc4 Viewport: Switched to using unified platform-absolute mouse coordinates, which simplify lots of problems and simplify/reduce tricky conversions, makes ImVec2 less ambiguous. Fixed various viewport/windowing/popups/synchronization bugs. Settings on host-viewport are stored as relative (made settings decently compatible between viewport enable/disabled settings). Merged ImGuiViewport::Pos and ::PlatformPos. Tweaked thumbnails. Better, smaller code. (#1542) 2018-04-20 21:36:36 +02:00
omar
637d9c42bf Viewport: WIP for Tooltips, Popups, Menus to create their own viewport. Resizing a window allows it to leave the main viewport. (#1542) 2018-04-19 13:12:02 +02:00
omar
1c385c2ca4 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_dx9.cpp
#	examples/opengl2_example/imgui_impl_glfw_gl2.cpp
#	examples/opengl3_example/imgui_impl_glfw_gl3.cpp
#	examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp
#	examples/vulkan_example/imgui_impl_glfw_vulkan.cpp
#	imgui.cpp
#	imgui_internal.h
2018-04-18 19:06:49 +02:00
omar
6a0b2627ad BeginMainMenuBar: Followup to 1e41bad9. Removed public window flag. DisplaySafeAreaPadding defaults to (3,3) instead of (4.4). Comments, tab to spaces, Changelog. (#1439) 2018-04-18 17:37:35 +02:00
Doug Binks
1e41bad90f Added DisplaySafeAreaPadding to MainMenuBar height and fixed starting x position. Fixes main menu bar problems with TVs. (#1439) 2018-04-18 15:13:09 +02:00
omar
25f25d546d Viewport: Fixed manual mouse resize to handle mouse viewport change, which will allow resizing a window while it changes viewport. Releasing manual resize may merge a window. Added ConvertViewportPosToViewportPos() helper. Renamed NewFrameUpdateMovingWindowDropViewport() to UpdateTryMergeWindowIntoHostViewport() and removed the now-unnecessary half of the function. + renaming (#1542) 2018-04-17 23:34:19 +02:00
omar
50e453a3e2 Viewport: Comments, tweaks, renaming. Removed unnecessary stuff. Fixed zealous Clang warning. (#1542) 2018-04-17 18:25:05 +02:00
omar
0d16492eb7 Viewport: Moved ImGuiWindowFlags_FullViewport to an internal ViewportOwned flag. Renamed AddViewport to AddUpdateViewport. (#Viewport: Shuffled code in Begin to reset size of reappearing popups prior to selecting viewport, to avoid mistakenly using an old size. Moved code out of UpdateSelectWindowViewport() to the section of Begin where positions is being locked down, to avoid code in-between duplicating this. (#1542)) 2018-04-16 17:11:59 +02:00
omar
38e357ef10 Viewport: Virtual mouse position are patched immediately when viewports are moved in the virtual space, avoiding interaction glitchs on a resizing frame. (#1542) 2018-04-12 19:57:35 +02:00
omar
e25da4230b Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2018-04-11 21:25:44 +02:00
omar
8be6f40ae1 Viewport: per-viewport overlay draw list created on demand. With this pattern it'll be easier to consider adding more (e.g. background draw list). (#545) 2018-04-11 21:21:52 +02:00
omar
bfc0efaae9 Internals: Window: Aggregating ImDrawList into the ImGuiWindow structure. 2018-04-11 12:43:38 +02:00
omar
83bd3595a4 Viewport: Merged ImGuiPlatformData into ImGuiPlatformIO. Comments. (#1542) 2018-04-10 22:58:39 +02:00
omar
52cac135c9 Internals: Renamed GetFrontMostModalRootWindow() to GetFrontMostPopupModal() and exposed in imgui_internal.h (#1738) 2018-04-10 15:04:36 +02:00
omar
56ad2a2d74 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/opengl2_example/imgui_impl_glfw_gl2.cpp
#	examples/opengl3_example/imgui_impl_glfw_gl3.cpp
#	examples/vulkan_example/main.cpp
#	imgui.h
2018-04-09 19:35:14 +02:00
omar
6f1f5cbc20 Version 1.61 WIP 2018-04-09 14:02:32 +02:00
omar
3a29ddbcfa Version 1.60 2018-04-08 00:45:02 +02:00
omar
6d0c720451 Internals: Removed unused internal variant of ArrowButton(). 2018-04-07 23:06:06 +02:00
omar
82b7a39f31 Fixed a few zealous warnings. 2018-04-07 10:38:01 +02:00
omar
f421e73b40 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_dx9.cpp
#	examples/opengl2_example/imgui_impl_glfw_gl2.cpp
#	examples/opengl3_example/imgui_impl_glfw_gl3.cpp
#	examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp
#	examples/vulkan_example/imgui_impl_glfw_vulkan.cpp
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
2018-04-06 23:36:23 +02:00
omar
e88fb10d7c NewFrame: Extract some code into a NewFrameUpdateHoveredWindowAndCaptureFlags() which can be of use with touch-based inputs systems. 2018-04-06 19:36:15 +02:00
omar
ac2027c415 NewFrame: Extract some code into a NewFrameUpdateMouseInputs function. Moved settings saving higher up in the function so it is next to its peers. 2018-04-06 19:36:14 +02:00
omar
72899318e6 Viewport, Platform, Examples: Added support for transparent window via PlatformIO Platform_SetWindowAlpha (#1542) + fixes for GLFW 3.3 2018-04-05 17:07:46 +02:00
omar
0cad274b87 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_dx9.cpp
#	examples/opengl2_example/imgui_impl_glfw_gl2.cpp
#	examples/opengl3_example/imgui_impl_glfw_gl3.cpp
#	examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp
#	examples/sdl_opengl2_example/imgui_impl_sdl_gl2.h
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.h
#	imgui.cpp
2018-04-04 19:39:42 +02:00
omar
78610a54d2 Fixed Clang zealous cast-call warning (on par with GCC) which decided to warn against explicit C-style casts now. 2018-04-03 20:55:30 +02:00
omar
ac8931b2e9 Viewport: Moved OverlayDrawList to be a per-viewport instead of being global + fix overlay clipping glitch during viewport creation frame + support for software mouse cursor stradding over multiple viewport. The overlay draw list move is rather important as draw lists are not shared among viewports anymore and we can do a swap of their data without copying it. (#1542) 2018-03-22 22:09:42 +01:00
omar
b69dc45f6e Internals: Removed ImGuiDataType_Float2. 2018-03-22 20:14:31 +01:00
omar
c19b27813d Added InputDouble() function. We use a format string instead of a decimal_precision parameter to also for "%e" and variants. (#1011) May transition the other InputXXX function to use format strings as well. 2018-03-22 18:58:40 +01:00
omar
172570acae Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_dx9.cpp
#	examples/opengl2_example/imgui_impl_glfw_gl2.cpp
#	examples/opengl3_example/imgui_impl_glfw_gl3.cpp
#	examples/sdl_opengl2_example/imgui_impl_sdl_gl2.cpp
#	examples/sdl_opengl3_example/imgui_impl_sdl_gl3.cpp
#	examples/vulkan_example/imgui_impl_glfw_vulkan.cpp
#	imgui.h
2018-03-20 22:14:34 +01:00
omar
170f44e6f0 IO: Renamed io.WantMoveMouse to io.WantSetMousePos (was added in 1.52, _not_ used by core and only honored by some binding ahead of merging the Nav branch) + internal renaming (#787) 2018-03-20 20:12:34 +01:00
omar
c29971cf72 Merge branch 'master' into viewport
# Conflicts:
#	examples/sdl_opengl2_example/main.cpp
#	examples/sdl_opengl3_example/main.cpp
#	examples/vulkan_example/main.cpp
2018-03-20 16:05:31 +01:00
omar
ccc9a22db3 Viewport: Changelog + Internals: Renamed viewport mouse fields for consistency (going to add more). (#1542) 2018-03-19 22:59:55 +01:00
omar
33ad8b2f0c Nav: Track nav input source more generally (gamepad vs keyboard) (#787) + update todos and demo tweaks 2018-03-19 13:20:18 +01:00
omar
46b61427e1 Viewport, Platform: Refactored platform interface. Removed need to use imgui_internal.h in backends. Split viewport into public facing ImGuiViewport and internal structure. Exposing enough data to provide custom tweaked renderers. Renamed handlers, fixed lots of inconsistencies. (#1542, #1042) 2018-03-18 18:44:57 +01:00
omar
1ab236d9df Viewport, Platform: Internal renaming to use more consistent (OsDesktopPos > PlatformPos). (#1542) 2018-03-15 20:07:48 +01:00
omar
8364d1ca6c Viewport: Removed back-end renderer code that implied we need to clear with WindowBg color. Added NoRendererClear flag. (#1542, #1042) 2018-03-15 18:17:04 +01:00