Commit Graph

873 Commits (6b77668171240d52ffe85e1c6aa3ee24fe22aaf2)

Author SHA1 Message Date
omar a8eb64fc54 Log/Capture: Fixed BeginTabItem() label not being included in a text log/capture.
Extracted tab rendering code into a RenderTextEllipsis() function.
omar afa3978ff6 Internals: Added drawlist and color arg to RenderArrow(), RenderBullet(). Reordered args for RenderPixelEllipsis.
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.
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.
omar e6850891cc Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
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.
omar 15282261dd Internals: Minor no-op tidying up toward solving the WindowPadding / WindowBorderSize / ScrollbarSize overlapping mess.
+ Demo: Use SetScrollY().
omar fe32fde376 Internals: Renamed SizeContents to ContentSize, SizeContentsExplicit to ContentSizeExplicit. Tweaked Metrics->Show Rectangles functionality.
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. (, )
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). ()
Demo: Added demo code to test contentsrect/workrect
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.
omar b9874a2423 Comments about obsoleted features version. Todo. Clarify tab bar initial offset (useful if we decide to remove the half-windowpadding clip margin).
omar 440ad0b440 Merge branch 'master' into docking
DucaRii 6614bab883 Combo: Fixed rounding not applying with the ImGuiComboFlags_NoArrowButton flag. (, )
omar 84f3ecc231 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
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.
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
omar cb7ba60d3f CollapsingHeader: When a close button is enabled, better clip the label to avoid overlap. ()
omar 70d9f79312 Internal: Renamed InnerMainRect to InnerVisibleRect. Printing coordinates in Metrics window.
omar 70a4be07df ColorEdit: Fixed the color picker popup only displaying inputs as HSV instead of showing multiple options. (, broken in 1.69 by ).
omar e5dfa0855f Docking: Honor style.WindowMenuButtonPosition setting in docking node.
omar afad952450 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
#	imgui_widgets.cpp
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.
omar 6c3697f6f1 Internal: CloseButton takes an upper-left corner + a size to be consistent with similar widgets.
omar ec3ec24157 Internals: Extracted some of the tab bar shrinking code into a ShrinkWidths() function so columns/table can use it.
omar 3fda90d6a7 Fixed InputScalar, InputScalarN, SliderScalarN, DragScalarN with non-visible label from inserting style.ItemInnerSpacing.x worth of trailing spacing.
omar fda1365c15 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar 7bc03f7155 Internals: Added InnerWorkRect equal to old InnerClipRect, added InnerWorkRectClipped actually clipped.
omar 04022114d9 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
omar 882d2c3aea Fixed crash when appending with BeginMainMenuBar() more than once and no other window are showing. () + comments
omar f242cd4d8a Fixed GCC mem-access warnings ()
+ using "if defined" more consistently for Clang.
omar e6109a9145 Fixed ColorEdit breakage introduced by d3a387c (, , )
omar 4158cba1ff Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_win32.cpp
#	imgui.cpp
#	imgui_internal.h
omar d3a387cc18 Fixed InputFloatX, SliderFloatX, DragFloatX functions erroneously reporting IsItemEdited() multiple times when the text input doesn't match the formatted output value (e.g. input "1" shows "1.000"). It wasn't much of a problem because we typically use the return value instead of IsItemEdited() here. (, )
omar 99a845053a Internal: Renamed fields + minor tweaks (probably shallow break stack-layout pr, sorry!)
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
omar 632469d2e5 Renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Refactored SetNextItemXXX stuff to match SetNextWindowXXX code closely.
omar 36e714a459 Internal: Storing flags for NextWindowData so that we can clear everything with a single write and remove dummy condition fields.
omar 0b485f12d7 Internal: Minor tidying/reordering of sections within ImGuiContext / window DC.
omar 835a8b2c9b Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
omar 39eeda0227 Internal: Scrollbar: Further sane simplification (using InnerMainRect instead of duplicating calculations).
omar 37174c85e2 Internal: Scrollbar: Extracted scrollbar code for other uses (eg. table v2 scrolling without using a child window).
omar 9534ef9b26 Separator: Revert 1.70 "Declare its thickness (1.0f) to the layout" change (c5d83d8a). It's not incorrect but it breaks existing some layout patterns. Will return back to it when we expose Separator flags.
omar a4d0b0efa4 Internal: Refactored Separator into SeparatorEx(), exposed ImGuiSeparatorFlags_SpanAllColumns in imgui_internal.h and support without. () + misc comments
omar b7c2759f95 Columns: Fixed Separator from creating an extraneous draw command. Fixed Selectable with SpanAllColumns flag from creating an extraneous draw command. ()
omar 42fc563fed Version 1.71 WIP + fixed minor typo
omar d1d5075b66 Version 1.70
omar 76e61958fd Merge branch 'master' into docking
# Conflicts:
#	examples/README.txt
#	examples/imgui_impl_dx9.cpp
#	imgui.cpp
#	imgui.h
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. ()
omar ce19cb465f Internals: Rename GetContentRegionMaxScreen() -> GetWorkRectMax(). At this point this is mostly useful to facilitate merge of other branches.
omar 7e67aba286 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar 4dec744795 Tidying up BeginMenu() code + comments.
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. ()
Among other things, this allows opening a popup while no window are focused, and pressing Escape to clear the focus again.
omar 3276b12765 Internals: Added DataTypeApplyOp, DataTypeApplyOpFromText to imgui_internal.h
omar 4e81b2d093 Internals: Renaming. Renamed ImGuiPopupRef to ImGuiPopupData for consistency and added constructor.
omar 3d363c91fd Internals: Exposed ImGuiDataTypeInfo, DataTypeGetInfo(), DataTypeFormatString(). Comments.
omar c5d83d8af2 Separator: Declare its thickness (1.0f) to the layout, making items around separator more symmetrical.
omar dfb82d5c22 Merge branch 'master' into docking
# Conflicts:
#	examples/example_sdl_opengl2/main.cpp
#	examples/example_sdl_opengl3/main.cpp
#	examples/example_sdl_vulkan/main.cpp
#	examples/imgui_impl_sdl.cpp
#	examples/imgui_impl_sdl.h
#	imgui.cpp
omar 56c3aaf6bd Nav: Fixed Drag/Slider functions going into text input mode when keyboard CTRL is held while pressing NavActivate.
omar dd15b44230 Internals: TempInputText: Tidying up DragScalar / SliderScalar / TempInputTextScalar.
omar 0ca1675ff9 Internals: TempInputText: Rename InputScalarAsWidgetReplacement() -> TempInputTextScalar(), ScalarAsInputTextId -> TempInputTextId, small tidying up in affected functions.
omar 59a3f0476d Internals: Using more explicit PushOverrideID() helper + renamed equivalent internal tree helper.
omar 16b18b265e MenuItem, BeginMenu: Fix undesirable tall frames in horizontal layout context, which would be visible when trying to use rounded selectable/menus.
PushStyleVar: Added comments in the assert message.
Minor tweaks.
omar 6db0766564 Misc comments, internal renaming, added disable indentation option to Columns demo section.
omar 03b64defa5 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
omar 59f012d656 Internals: ImHashStr() default parameter.
omar 5078fa208b Added SetNextItemWidth() helper to avoid using PushItemWidth/PopItemWidth() for single items.
omar f355a40367 Added commentary about ContentRegion functions. Added internal GetContentRegionMaxScreen() to facilitate internal code at the moment.
omar 9d4a893a77 Internals: Moved CalcItemSize next to CalcItemWidth, added comments to clarify their respective intent. Should have no side effect.
omar 240dddff87 Combo, Slider: Improve rendering in situation when there's there's very little space available.
omar 1aeee9d40f Internals: Columns: Tweaks, renaming. Metrics: Show rectangles for child windows.
Renamed SameLine() first parameter.
omar 7baf45cffa Metrics: Added "Show windows rectangles" tool to visualize the different rectangles.
omar 655ebe4eaf Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
omar 311469e9d6 Internals: Columns: Some renaming, extracted code into GetColumnsID().
omar 712203dbcb Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar fb2626c21b Tests: Added hook/tweaks for imgui-test engine. + Fixed warnings.
omar c6f1b7b92a Tests: Added hook/tweaks for imgui-test engine. + Fixed warnings.
omar 30d81f53cb PlotLines, PlotHistogram: Ignore NaN values when calculating min/max bounds. ()
omar ee02cdbf03 Internals, Docs: Added a bunch of clarification about ButtonBehavior in the form of a table (and to facilitate writing tests)
omar 328e4fa7e7 Merge branch 'master' into docking
# Conflicts:
#	imgui_demo.cpp
omar 07a70dc972 Internals: Merge minor things from range_select branch. Added ImGuiButtonFlags_NoHoveredOnNav. Added IsItemToggledSelected() - unused here. Renaming.
omar cf029b3e1c Merge branch 'master' into docking
omar 1391904fd2 Internals: Selectable: Added ImGuiSelectableFlags_AllowItemOverlap in imgui_internal.h (~ , )
omar b53630813e Internals: Tweak ItemSize calls. Added todo items.
omar 50ceb25003 Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_vulkan.cpp
omar c8fd4afd75 Misc: Added IM_MALLOC/IM_FREE macros mimicking IM_NEW/IM_DELETE so user doesn't need to revert to using the ImGui::MemAlloc()/MemFree() calls directly.
omar 49fb8e6c45 Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_dx9.cpp
#	examples/imgui_impl_opengl3.cpp
omar 8dab7ac021 InputText: Made Shift+Tab consistently do nothing regardless of whether the back-end emits both char and keys or just keys. (, )
omar da035ced97 InputText, Examples/SDL: Emulate \t input if back-end doesn't provide it. (, )
+ Fix some output filename in SDL build batch files.
omar 01e29a3933 InputText: Fixed ImGuiInputTextFlags_AllowTabInput leading to two tabs characters being inserted if the back-end provided both Key and Character input. (, )
omar 4a57507f75 InputText: Work-around for buggy standard libraries where isprint('\t') returns true. (, )
Not using isprint. + todo items.
omar 9bf6509c6e Docking: Fixed focus restore lagging by a frame when a tab stops being submitted. () Building on a little build of technical debt there, should transition toward a more general docking-agnostic system ()
omar 9350158d61 Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
#	imgui_internal.h
omar 3d8ea352d1 InputText: Fixed selection background starts rendering one frame after the cursor movement when first transitioning from no-selection to has-selection. (Bug in 1.69) () [@Nazg-Gul]
omar abb7d7b18a InputText: Simplify read-only code path.
omar 221bf93a55 Comments, todo list, remove trailing spaces.
omar cf2c52282d Version 1.70 WIP
omar b1af4d36ce Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	examples/example_win32_directx10/main.cpp
#	examples/example_win32_directx11/main.cpp
#	examples/example_win32_directx12/main.cpp
#	examples/example_win32_directx9/main.cpp
omar 55c02099c5 Version 1.69, comments, typos
omar a26085ed53 Internals: Fixed Navigation from reaching ImGuiItemFlags_Disabled items () + Examples comments
omar 53e0c13be2 TabBar: Reworked scrolling policy (when ImGuiTabBarFlags_FittingPolicyScroll is set) to teleport the view when aiming at a tab far away the visible section, and otherwise accelerate the scrolling speed to cap the scrolling time to 0.3 seconds.
omar 99d8425173 TabBar: Fixed Tab tooltip code making drag and drop tooltip disappear during the frame where the drag payload activate a tab.
omar 9afb849e16 Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_sdl.cpp
omar 495065f790 Fixed Clang and PVS warnings.
omar f254168335 InputText: Fixed c779fbb leading to display of the wrong buffer when resizing a buffer. (, , , ).
omar 65c2220049 Internal: Removed unused fields from ImGuiMenuColumns.
omar f7db4fad31 Merge branch 'master' into docking
# Conflicts:
#	examples/example_win32_directx11/main.cpp
#	examples/example_win32_directx12/main.cpp
#	examples/example_win32_directx9/main.cpp
#	imgui.cpp
Haldean Brown 79bb4ce128 Added ImGuiColorEditFlagsFlags_InputHSV. (, )
omar 8e0e91827f ColorEdit: Fixed tooltip not honoring the ImGuiColorEditFlags_NoAlpha contract of never reading the 4th float in the array (value was read and discarded). ()
omar d77d3416d3 Merge branch 'master' into docking
omar e9651aaa77 TabBar: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with scrolling policy enabled) or if is currently appearing.
omar 1c23981782 Made ImS8 and ImS16 explicitly signed in case some crazy SDK decide to flip the signedness over. ()
omar e91d275b10 Merge branch 'master' into docking
# Conflicts:
#	imgui_demo.cpp
omar 8464df1f6e Internals: ColorEdit: Minor optimizations. Initialize internal arrays as static const, avoid unnecessary HSV->RGB conversion.
omar ea8158acdf Demo: Renamed ShowHelpMarker() -> HelpMarker(). Fixed minor PVS warning. Removed unnecessary casts.
omar c779fbb651 InputTextWithHint: Fix for Password fields. Update changelog, demo. ()
Lucas Lazare ab80ee6453 Added InputTextWithHint() ()
Squashed commit of the following:

commit 1970d84051d3878f8c1354d9c33c795d9c66143f
Author: Lucas Lazare <lazarelucas@yahoo.fr>
Date:   Tue Mar 5 12:20:39 2019 -0500

    Removing sneaky tabulations #2 (why, editor T-T)

    I should update my settings, I guess

commit 219bdfcb7fbd17edf3048cb0edfde2532e4d6ac3
Author: Lucas Lazare <lazarelucas@yahoo.fr>
Date:   Tue Mar 5 12:17:27 2019 -0500

    Removing useless check introduced in b0d172

commit 8afd7a2b459df0eb14eca88d832d2bebd1e684e6
Author: Lucas Lazare <lazarelucas@yahoo.fr>
Date:   Tue Mar 5 11:49:24 2019 -0500

    Removing sneaky tabulations

commit 8e0490863126d63cafc782a6aac8707e44f95653
Author: Lucas Lazare <lazarelucas@yahoo.fr>
Date:   Tue Mar 5 11:45:13 2019 -0500

    Moving InputTextHinted code to InputTextEx

commit b0d1723a2fb02d17ba15b9c1e679dedbbe3c17fd
Author: Lucas Lazare <lazarelucas@yahoo.fr>
Date:   Tue Mar 5 00:23:02 2019 -0500

    C++11 to C++98

commit 9afeae399826015357962607b4aeb0109fde698e
Author: Lucas Lazare <lazarelucas@yahoo.fr>
Date:   Mon Mar 4 23:43:28 2019 -0500

    Added InputTextHinted
omar fe48368cb2 InputText: Moving some code in anticipation of supporting hint display with password. This commit is aimed at having no visible side effect. ()
omar e02d6014bf Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar 344140004b Fixed IsItemDeactivated()/IsItemDeactivatedAfterEdit() from not correctly returning true when tabbing out of a focusable widget (Input/Slider/Drag) in most situations. (, )
+ Minor renaming of a local variable in widget code.
omar 26328fc9fe Internal: Tabbing/Focus: Tidying up old code, moved some state to context instead of window. Storing new data will allow us to fix the bug mentioned in (probably in next commit).
omar 076be7ec41 MenuItem, Selectable: Fixed disabled widget interfering with navigation (fix c2db7f63 in 1.67).
omar ce4e62649a Internal: Tabbing: Tweaks to FocusableItemRegister and using the standard mechanism to allow/block Tab being interpreting by tabbing instead of InputText() widget.
omar 1ed3c4cf4a Internal: Text: Extracted TextUnformatted into TextEx over which we can freely atter the signature. Clarified current large text behavior of TextUnformatted with explicit ImGuiTextFlags_NoWidthForLargeClippedText flag (always set).
omar 622a27506a Text: Fixed large Text/TextUnformatted call not declaring its size when starting below the lower point of the current clipping rectangle. Somehow this bug has been there since v1.0! It was hardly noticeable but would affect the scrolling range, which in turn would affect some scrolling request functions when called during the opening frame of a window.
omar 8414c0bb09 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
omar 94e794f81b Renamed GetOverlayDrawList() to GetForegroundDrawList() for consistency. Kept redirection function (will obsolete). ()
Demo: Using GetBackgroundDrawList() and GetForegroundDrawList() in "Custom Rendering" demo.
omar 49eb5f0280 Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_opengl3.cpp
omar 1c67d09c0b ColorPicker: Fix assertion when running in a collapsed window and dragging its title bar ()
omar ff0c6c2bde Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
omar f02705fbaa InputInt, InputScalar: +/- buttons now respects the natural type limits instead of overflowing or underflowing the value.
omar 736d3e2654 DragScalar, InputScalar, SliderScalar: Added support for u8/s8/u16/s16 data types. We are reusing function instances for larger types to reduce code size. (, , , )
omar ac47710db7 Internal: InputText: Tweaks to make PVS static analyzer relax a little with its false positive.
omar 6de09a5e48 Renamed ColorEdit/ColorPicker's ImGuiColorEditFlags_RGB/_HSV/_HEX flags to respectively ImGuiColorEditFlags_DisplayRGB/_DisplayHSV/_DisplayHex. This is anticipation of adding new flags to ColorEdit/ColorPicker functions which would make those ambiguous. () [@haldean]
haldean 8a2f6866a6 add _Show prefix to color flags that control inputs, rename __InputsMask to __ShowMask
This is anticipation of changing __InputsMask to control the format of
input colors, and adding _InputRGB and _InputHSV to change how input
colors are interpreted.
omar def723b6b6 Plot: Fixed error in 5e3a1de ()
omar 5e3a1de4e6 Plot: Fixed divide-by-zero in PlotLines() when passing a count of 1. () [@Lectem]
omar 6b43a314bf Merge branch 'master' into docking
omar cf3cb7cf7e InputText: Fixed various display corruption related to swapping the underlying buffer while a input widget is active (both for writable and read-only paths). Often they would manifest when manipulating the scrollbar of a multi-line input text.
omar b7b82520b4 Internal: InputText: Minor changes (intended to have side-effect but clarify next commit, however there is rarely such a thing as zero side effect in InputText land!)
omar 439f726945 InputText; Disabled rendering selection when inactive (it kinda work but I'm not sure this is desirable especially for single-line input, was not intended to be active).
omar 8915f7933a Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
omar 6f80179a1d InputText: Fixed deactivated but-last-active InputText instance holding on displaying the last active version of the text and not reflecting change in the source. Fix/amend 2e9a175. [+test]
omar cd67d4d3c1 Log/Capture: Fixed LogXXX functions 'auto_open_depth' parameter being treated as an absolute tree depth instead of a relative one. Fixed CollapsingHeader trailing ascii representation being "#" instead of "##". Minor tidying up the of code.
omar 87ded34f9f Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	examples/imgui_impl_opengl3.cpp
#	imgui_widgets.cpp
omar 9da48c16c5 TabBar: Added extra mis-usage error recovery. Past the assert, common mis-usage don't lead to hard crashes any more, facilitating integration with scripting languages. ()
omar 0f83145aa8 TabBar: Fixed a crash when using BeginTabBar() recursively (didn't affect docking). ()
Added ImPool::Contains() helper.
omar f988618ebe Internal: InputText: Tweaks (including a large indentation change, compare ignoring space) to make next commit more digestible.
omar be593f2c16 Internal: InputText: refactor the flow to easily decorrelate rendering of selection vs cursor, which would allow us to render selection on inactive items, and generally makes the code clearer. + Some renaming.
omar 332f8f2462 Internal: InputText: Made clipboard copy/cut use its own temporary buffer (like paste) so we can guarantee that TempBuffer if not altered and can be preserved. Renamed TempBufferA to TextA to celebrate this.
omar 81a8730022 Internal: InputText: Renamed is_editable to !is_readonly, Hopefully more explicit. Renamed internal member. Shuffled some code. Added comments, assert (_will_ trigger on !readonly > readonly edge, old bug).
omar cc3be5d428 InputText: Fixed an edge case crash that would happen if another widget sharing the same ID is being swapped with an InputText that has yet to be activated.
omar 2e9a175057 Internal: InputText: Refactor to clarify access pattern to the InputTextState (we are now accessing via a pointer which can be NULL, shortened its name while we are at it) + added an assert to track an issue that existed already before.
omar 677e64e71e Internal: InputText: Comments. Renamed internal member. Renamed ImGuiStb->ImStb.
omar 782b747a17 InputText: Renamed some local variables to clarify code. Should be a no-op functionality wise. TODO items.
omar 7c51cba74f InputInt, InputFloat, InputScalar: Fix to keep the label of the +/- buttons centered when style.FramePadding.x is abnormally larger than style.FramePadding.y. Since the buttons are meant to be square (to align with e.g. color button) we always use FramePadding.y. ()
omar 257f5d204e Version 1.69 WIP
omar 93b06e6e7c Internal: Changed Scrollbar() signature. Using GetScrollbarID() in InputTextMultiline().
Removed multiple semi-colons ()
omar 77833003ff Fixed unused argument warning when compiling with IM_ASERT() evaluating to an empty macro.
omar 9dc02464a4 Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
omar 3c15dffc94 Version 1.68
omar 7573d10a4a Docking: Fixed bad ever-growing/ leak (accumulating text into TabsNames forever, fix d38f4dc14 from February 5th, affected docking branch only). ()
omar 09c9bf2edb Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
haldean b277cfffc8 Selectable: add support for specifying text alignment on selectables ()
Adds a style variable to Selectable that allows clients to specify the
text alignment within Selectables, adds a section in the demo to
demonstrate selectable text alignment, and a pair of sliders in the
style editor to change selectable alignment on the fly.

In terms of implementation, this one is extremely simple: Selectable was
already calling an API that supports text alignment, but had hard-coded
it to top-left. This changes that to just pass the style variable
straight through to RenderTextClipped. Backwards-compatibility is
preserved by defaulting the text_align parameter to (0, 0), i.e.,
top-left.

This also fixes a bug with selectable text rendering that caused
right-aligned text in a selectable to be clipped incorrectly, because
the wrong clipping rectangle was being used.
omar 0236bc246f Scrollbar: Fade out and disable interaction when too small, in order to facilitate using the resize grab on very small window, as well as reducing visual noise/overlap. (+1 squashed commits)
Internals: Added GetScrollbarID(). ()
omar 0640b6e67c Shallow tweaks
omar 2cada3c143 Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_opengl2.cpp
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
#	imgui_widgets.cpp
omar 1b63ded8fa Tabs: Fixed border (when enabled) so it is aligned correctly mid-pixel and appears as bright as other borders.
omar 4a3a895be9 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
omar 29d38b59d0 ListBox/InputTextMultiline: Better optimized when clipped / non-visible.
omar 62084aac0f DragScalarN, SliderScalarN, InputScalarN: Removed unnecessary string id after the integer PushID() calls.
omar f366828dd2 Minor tweaks to reduce false positive of PVS Studio static analyzer.
omar 5bdc7d7a6f Menus: Tweaked horizontal overlap between parent and child menu (to help convey relative depth) from using style.ItemSpacing.x to style.ItemInnerSpacing.x, the later being expected to be smaller. ()
omar 97ed97b8ce Plot: Register an ID to take the click the same way as other framed widgets. Set HoveredId in the FramePadding zone (between inner_bb and frame_bb).
omar cef4e086ba Internals: Selectable: Fixed rendering width miscalculation when starting pos is not line start pos, which would generally be unnoticeable. Could affect group lock X with a smaller SetCursorPos value but that's unlikely to be used.
omar 521470b3cd Internals: Removed unnecessary code.
omar be107ba8f8 Merge branch 'master' into docking
# Conflicts:
#	imgui_internal.h
#	imgui_widgets.cpp
omar b980e0077a Tabs: Moved Tab List Popup to left-side to match docking button. Highlight selected tab. (, )
omar d38f4dc143 Tabs: Non-docking tab bars are storing names to allow tab list button + whole style scaling. Added ImGuiTabBarFlags_TabListPopupButton flag to show a popup button on manual tab bars. Locking FramePadding for the scope of a tab-bar to avoid sheering/clipping of tab item. Made scaling of tab ellipsis less awkward. (, )
omar f7c879eb60 RadioButton: Fixed label horizontal alignment to precisely match Checkbox(). + Internals: Checkbox, RadioButton: Single call to ItemSize() for flow layout purpose.
omar 0b05ba18df Internals: DragScalar, SliderScalar: Calling ItemSize before ItemAdd as with every other widgets so we can more easily rearrange the signature of ItemXXX functions (toward allowing non-rounded sizes for scaling and flow layout).
omar d1c45c0d76 Merge branch 'master' into docking (enable range_select merge)
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar d5945aa25b Internals: Minor changes to TreeNodeBehavior() and Selectable() for the benefit of fhe range_select branch. ()
omar 0d4a2a2cd0 Internals: Track ActiveIdHasBeenPressed (similar to ActiveIdHasBeenEdited). This is currently mostly for the benefit of the range_select branch. ()
omar f906d53f7d Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
omar dc8ff68871 Docking: VisibleWindow of a node spread its _NoMove attribute to the node (fixed dragging or undocking of dock node host from collapse button). (, )
omar 5536edede9 Docking: Fixed faulty undocking of windows with the _NoMove flag. (, )
Whereas BeginAsDockableDragDropTarget could be reworked to filter, we simply set g.HoveredWindowUnderMovingWindow to be NULL when MovingWindow is not set, which was the initial intent.
Also fixed some comments and removed unused braces in TabItemEx().
omar 578e15f006 Docking: Removed unnecessary ImGuiTabItemFlags_DockedWindow internal flag.
omar 1fb57c97c6 Internals: InputScalarAsWidgetReplacement: Fixed seemingly unnecessary calling of SetActiveID/SetHoveredID every frame, which in turns allow us to remove the g.ActiveIdAllow/Block settings duplicated.
omar fb4f1ff7f6 InputText: Fixed a bug where ESCAPE would be first captured by the Keyboard Navigation code. (, )
omar 158995f271 InputText: Fixed a bug where ESCAPE would not restore the initial value in all situations. () [@relick]
omar 0a233a505d imgui-test: Added extra item info callbacks. Using nav_bb for interactions when possible. Comments, Demo tweaks.
omar 13a5f5ba8b Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
omar 4e8e177cac Persistently fixing some PVS-Studio static analyzer false positive warnings.
omar ee3b4f2bf1 Using IM_UNUSED() macro.
omar c3c2cd1e82 Fix various XCode and PVS-Studio static analyzer warnings ()
omar 07ff47bf1b Docking: Fixed various border / padding related inconsistency with dock node vs floating windows. ()
omar 9f96fcff3c Docking: Added ImGuiDockNodeFlags_Dockspace instead of node internal IsDockspace toward allowing the DockBuilder API to create non-dockspace nodes.
omar 0947fa3de0 Merge branch 'viewport' into docking
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar cb9a6b8a8b Merge branch 'master' into viewport
# Conflicts:
#	examples/README.txt
#	imgui.cpp
omar f14f93ef6e Fixed range-version of PushID() and GetID() not honoring the ### operator to restart from the seed value.
omar f94af2f5c5 Merge branch 'viewport' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
#	imgui_draw.cpp
omar 8079344cee Merge branch 'master' into viewport
# Conflicts:
#	examples/example_sdl_vulkan/main.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_sdl.cpp
#	examples/imgui_impl_vulkan.h
#	imgui.cpp
omar 2c38b32db1 Removed trailing spaces (, )
omar f94ba546ba Added checks for "zero-as-null-pointer-constant" warnings for older Clang (, followup to )
omar e9c625a1dc Merge branch 'master' into viewport
# Conflicts:
#	docs/CHANGELOG.txt
#	examples/imgui_impl_win32.cpp
#	imgui_demo.cpp
omar d1851ed6b7 Various tweaks and fixes as suggested by PVS Studio (thanks PVS Studio!) [docking branch]
omar 32c4e01267 Various tweaks and fixes as suggested by PVS Studio (thanks PVS Studio!)
omar 06aaf23877 Various tweaks and fixes as suggested by PVS Studio (thanks PVS Studio!)
omar 8a45c56c2c Merge branch 'viewport' into docking
omar 9391a97fbf Merge branch 'master' into viewport
# Conflicts:
#	docs/CHANGELOG.txt
#	examples/imgui_impl_win32.cpp
#	examples/imgui_impl_win32.h
omar 95ee99e6aa Version 1.68 WIP
omar ff4bd758ca Merge branch 'viewport' into docking
omar e24674fc0e Merge branch 'master' into viewport
omar 7a5058e3bf Version 1.67
omar 1da40df279 DragFloat: Fixed broken mouse direction change with power!=1.0. (, ) [@Joshhua5]
omar 6e41745f31 Added a bunch of diagnostic ignore to cope with Clang -Weverything being absurd. Also fixed two legit warnings. ()
omar 8011197c50 Merge branch 'viewport' into docking
# Conflicts:
#	imgui.cpp
omar c96aaef132 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui.h
omar 1f6e0b2f98 ImVector: Made a struct. Using T/T* in the code instead of value_type/iterator. Renamed index_from_pointer() to index_from_ptr() (was not documented, added in 1.63, users not supposed to use ImVector, hopefully not a big deal).
omar 61a99f994e Minot internal tweaks, comments
omar b33977bc15 Tests: Reworking hook prototypes for imgui-test to be faster and multi-context friendly.
omar c2db7f63bd Selectable() should have an ID even though they are disabled, to be consistent with other widgets. Not sure of the reasoning ~1.41 which made this turn to 0.
omar 6b32570644 Merge branch 'viewport' into docking
# Conflicts:
#	imgui_internal.h
#	imgui_widgets.cpp
omar 5af930f97a Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
omar 1ae7f88495 Tabs: Added ImGuiTabBarFlags_NoTooltip flag. (, ) + added helpful assert
omar acfa4050ec Tweak changelog + tweak internal render helper functions.
omar c3af134cc8 IO: Renamed InputCharacters[], marked internal as was always intended. AddInputCharacter() goes into a queue which can receive as many characters as needed during the frame. This is useful for automation to not have an upper limit on typing speed. Will later transition key/mouse to use the event queue later.
omar 9ba202821f Nav: Fixed an keyboard issue where holding Activate/Space for longer than two frames on a button would unnecessary keep the focus on the parent window, which could steal it from newly appearing windows. ()
omar d223d1e951 Added bindings in Readme. Added internal IMGUI_DEBUG_LOG() helper. Comments, missing breaking changes note relative to imgui_impl_xxxx changes, not really part of core but worth adding in the imgui.cpp breaking change section.
omar 7f7e8eeecd Docking: Fixed a bug undocking a window from its tab when it is the only docked window of a root dockspace with ConfigDockingTabBarOnSingleWindows enabled.
omar ce1626a51e Merge branch 'viewport' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
omar 951c9dd68b Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_sdl.cpp
omar acacd93836 Renamed extra_flags to flags in InputXXX parameters.
omar c738f9ef92 InputFloat: When using ImGuiInputTextFlags_ReadOnly the step buttons are disabled. ()
omar 088ef6623a Merge branch 'viewport' into docking
omar 9c916cdaf9 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
omar ae76a1fda7 Window, Focus, Popup: Fixed an issue where closing a popup by clicking another window with the _NoMove flag would refocus the parent window of the popup instead of the newly clicked window.
omar ac9512e095 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
omar 65dac02171 Internals: Popups: Renamed CurrentPopupStack to BeginPopupStack which is much less ambiguous.
omar f6f5c51106 Internals: Popups: EndMenu() calls ClosePopupToLevel(g.CurrentPopupStack.Size) which is more correct.
omar 587506dd57 Tests: Changed prototype of ImGuiTestEngineHook_ItemAdd to match functions called in same spot. Made ButtonBehavior submit fallback item info if ItemAdd() was not called (for resize grips, resize borders, scrollbar, columns, etc.)
omar 2a1e903f43 Merge branch 'master' into viewport
# Conflicts:
#	imgui.h
omar 991b16cc6a Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
#	imgui_widgets.cpp
omar 1b263f6ab0 Tabs: Fixed support for drag and drop ImGuiButtonFlags_PressedOnDragDropHold. () incorrectly missing from the merge from Docking branch.
omar 5a6b8e00db BeginTabBar: Fix to push the expected ID into the ID stack (instead of a hash's hash). ()
omar 067b691fd8 Merge branch 'viewport' into docking
# Conflicts:
#	docs/TODO.txt
#	imgui.cpp
#	imgui.h
#	imgui_demo.cpp
#	imgui_draw.cpp
#	imgui_internal.h
#	imgui_widgets.cpp
omar c40feabe4d Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar 54a60aaa40 Added BETA api for Tab Bar/Tabs widgets. (, ) (merged this feature from the from Docking branch so it can be used earlier as as standalone feature)
- Added BeginTabBar(), EndTabBar(), BeginTabItem(), EndTabItem(), SetTabItemClosed() API.
- Added ImGuiTabBarFlags flags for BeginTabBar().
- Added ImGuiTabItemFlags flags for BeginTabItem().
- Style: Added ImGuiCol_Tab, ImGuiCol_TabHovered, ImGuiCol_TabActive, ImGuiCol_TabUnfocused, ImGuiCol_TabUnfocusedActive colors.
- Demo: Added Layout->Tabs demo code.
- Demo: Added "Documents" example app showcasing possible use for tabs.
omar 15447f5b7b Using named flags instead of 0 + shallow formatting tweaks from other branches.
omar e6439e1a16 Merge branch 'viewport' into docking + moved io.ConfigFlags ImGuiConfigFlags_DockingNoSplit to io.ConfigDockingNoSplit
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_demo.cpp
omar 26b9e2d0a5 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
omar d20e3ee710 Tests: Adding imgui-test engine hooks (experimental) to provide missing widget state to the testing system.
omar 3a5e758ee3 Tabs: Fixed crash when using TabItem in a regular (non-docking) tab bar. ()
omar f768727284 Merge branch 'viewport' into docking
# Conflicts:
#	imgui.cpp
omar a03846bd9e Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar 125e62491e Internals: Nav: Added ImGuiNavLayer_ to clarify semantic of previously integer NavLayer values, and not pretend that increment/decrement operators on them super flexible. + Storage tweaks.
omar 6644f1ff64 Docking: Added io.ConfigDockingTabBarOnSingleWindows option (mostly made possible by the previous fixes).
Note that dock node have regressions compared to current floating window: no collapse, no auto-resize, resize grip under the scrollbar, border issues, general overhead. Will tackle those.
omar 5105c6c0d0 Merge branch 'viewport' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
omar 3a678d48b1 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
omar 8bac6d428d Docking: Another attempt at tidying the inconsistent focus / tab bar reordering issues, and toward generalizing single window dock nodes. ()
omar 10e13dd6bb Version 1.67 WIP (again, this time IMGUI_VERSION_NUM has leeway for another hot-fix).
omar ac10889bde Merge branch 'viewport' into docking
# Conflicts:
#	docs/CHANGELOG.txt
omar 65e579e558 Merge branch 'master' into viewport
# Conflicts:
#	docs/CHANGELOG.txt
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_opengl2.cpp
#	examples/imgui_impl_opengl3.cpp
#	examples/imgui_impl_sdl.cpp
#	examples/imgui_impl_vulkan.cpp
#	examples/imgui_impl_win32.cpp
#	imgui.h
#	imgui_demo.cpp
omar 801645d350 Version 1.66b (will revisit how to change IMGUI_VERSION_NUM across versions, this commit reduces the numerical IMGUI_VERSION_NUM compared to the commit on Nov 22).
omar f78b5a0cdb Merge branch 'viewport' into docking
omar afeefadb4e Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx10.cpp
#	examples/imgui_impl_dx11.cpp
#	examples/imgui_impl_glfw.cpp
#	examples/imgui_impl_opengl2.cpp
#	examples/imgui_impl_opengl3.cpp
#	examples/imgui_impl_sdl.cpp
#	examples/imgui_impl_win32.cpp
#	imgui.h
omar 1bfcf8f339 Separator: Fixed Separator() outputting an extraneous empty line when captured into clipboard/text/file.
omar 3f51c831de Docking: Added internal DockBuilderGetCentralNode(). Fixed being unable to undock whole node from dock button in DockSpace with a central node. ()
omar ddc3f8f069 Merge branch 'viewport' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
#	imgui_internal.h
omar 5261e5a6ba Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_sdl.cpp
omar d27ffefbd4 Version 1.67 WIP
omar 2515413080 Merge branch 'viewport' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui_widgets.cpp
omar d87b80c6c1 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
omar da3c4330c1 Version 1.66
omar 4a43f347bb Merge branch 'viewport' into docking
# Conflicts:
#	examples/example_allegro5/main.cpp
#	examples/example_marmalade/main.cpp
omar dcbf976a8e Merge branch 'master' into viewport + comments
# Conflicts:
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
omar f2d577c33f Viewport: BeginMainMenuBar(): explicitly set viewport to avoid creating new one when ImGuiConfigFlags_ViewportsNoMerge is set + misc shallow changes.
omar ae34241f8b Viewport: BeginMainMenuBar(): explicitly set viewport to avoid creating new one when ImGuiConfigFlags_ViewportsNoMerge is set + misc shallow changes.
omar 6c1ae6cc71 Internals: DragBehavior: Added support for ImGuiDragFlags_Vertical to implement a vertical drag widget (no frontend function provided).
omar 6d7677534f Internals: SliderBehavior: Using axis indexing.
omar 565af90958 Merge branch 'viewport' into docking
omar 52ca91ca57 Merge branch 'master' into viewport
omar eb592bf7d3 ListBox(): Fixed frame sizing when items_count==1 unnecessarily showing a scrollbar. (). Tweaked frame sizing so list boxes will look more consistent when FramePadding is far from ItemSpacing.
omar 7fa3e71abb Internals: Moved the FocusableItemUnregister() outside of InputScalarAsWidgetReplacement(), it should not be here and doesn't facilitate reusing InputScalarAsWidgetReplacement(). (cc )
omar 168af9b377 Merge branch 'viewport' into docking
# Conflicts:
#	imgui_demo.cpp
omar 1a6eea012d Docking: Tweaked tooltip on tabs so they don't show immediately when holding and releasing a tab (using HoveredIdNotActiveTimer) + Minor refactor + Removed legacy .ini parsing.
omar 50f6e12d31 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
Konstantin Podsvirov faecf90383 SliderAngle: Added optional `format` argument to allow users customize precision and make localization. ()
omar 5f8c9ae0ef Merge branch 'viewport' into docking
# Conflicts:
#	imgui.cpp
#	imgui.h
omar 056af2b1af Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui.h
omar 31fd6c585a Removed unnecessary ImGui:: qualifiers in internal code.
omar e6cc547a94 Merge branch 'viewport' into docking
# Conflicts:
#	imgui.cpp
#	imgui_widgets.cpp
omar e73217d6f7 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_sdl.cpp
#	imgui.cpp
omar ca753829cb Revert using wchar_t functions (9cf94d5 + 2eaf5b0). Big mistake, wchar_t is not guaranteed to be 16-bits.
omar 2eaf5b03df Fixes crash introduced in previous commit 9cf94d5.
omar ede3a3b92d Fixes crash introduced in previous commit 9cf94d5.
omar c398153b40 Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_impl_sdl.cpp
#	imgui.cpp
#	imgui_internal.h
omar 9cf94d5dd6 RenderText(), InputTextMultiline(): Optimization for large text by using memchr, wmemchr, wcschr when appropriate.
omar 0fe48cbb61 Renamed misc/stl/imgui_stl.h,.cpp to misc/cpp/imgui_stdlib.h in prevision for other files.(, )
Added misc/README file.
omar cf0afb48ac TextUnformatted: Using memchr(), fixed not properly testing for text_end bound + comments.
Internals: Added ImStreolRange() + used in LogRenderedText() + comments.
omar 059560d28b ButtonBehavior, ImGuiButtonFlags_FlattenChildren flag can be used from a child window. Would typically affect calling SplitterBehavior() from a child window.
omar 2cff3f6a65 Docking: Renamed io.ConfigDockingWithKeyMode to io.ConfigDockingWithShift.
omar ed3c015f4e Docking: Reorganizing some of the tab-bar selection and window focus related code.
omar 35d1fb7b34 Style: Added style.TabRounding setting.
omar c6193d0605 Merge branch 'viewport' into docking
omar 6cc380fc41 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_win32.cpp
#	examples/imgui_impl_win32.h
#	imgui.cpp
omar 4053d9d638 Docking: Fixed tab order restoring (follow up to 67be485e, broken in 455dc6e2)
omar 9960ccddb2 Docking: Added DockBuilderRemoveNode() + various tweaks. Fixed dragging/undocking dock node from CollapseButton.
omar fa0ce4b7d5 Docking: Some DockBuilder functions are applied on settings data if windows are not present. Added DockBuilderCreateNode which needs a size else if we can't split properly. DockNodeTreeSplit() doesn't clamp SizeRef. (+1 squashed commits)
omar 599d5f185c TabBar: Recover if SelectedTabId doesn't exist anymore.
omar 3d318a6577 ArrowButton(): Fixed arrow shape being horizontally misaligned by (FramePadding.y-FramePadding.x) if they are different.
Demo: Added extra usage of AlignTextToFramePadding() in a more visible section.
omar e647f89c33 Docking: Added undocking of whole dock node by dragging from the Collapse button. Super useful and works great!
omar 455dc6e229 Docking: Creating tab bar and adding window into tab bar immediately (not sure why I didn't do that before). Probably broke something subtle, will find out. *Edit* Initially broke restoring selected tab.
omar 35032d41fa Docking: Internals: Transitioning some code toward consistently using ImGuiContext* ctx parameter instead of ImGuiDockContext
omar e32256b4b4 Merge branch 'viewport' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui_demo.cpp
#	imgui_internal.h
omar b85f345369 Merge branch 'master' into viewport
# Conflicts:
#	examples/imgui_impl_dx9.cpp
#	examples/imgui_impl_opengl2.cpp
#	examples/imgui_impl_opengl3.cpp
#	examples/imgui_impl_vulkan.cpp
omar c12da2a607 BeginMenu(): Fixed menu popup horizontal offset being off the item in the menu bar when WindowPadding=0.0f.
omar ca5dc0c019 ColorPicker: Replaced the Separator with a Spacing call. ()
Elias Daler ec04e8bb05 Fix MSVC's C4312 warning about casting user texture type to void* in ImageButton ()
omar 9cc63ba279 Internals: Replace unsigned short with ImWchar when dealing with character storage (missing cases) + in imgui_impl_ file keep using neutral type everywhere, added missing explicit cast in three bindings. ()
omar df65d4a14f Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
omar d014d0285a DragFloat: Disabled using power curve when one edge is FLT_MAX (broken in 1.61). Disabled setting a default drag speed when one edge is FLT_MAX. ()
omar af6cf25255 DragFloat: Fixed a situation where dragging with value rounding enabled or with a power curve erroneously wrapped the value to one of the min/max edge. (, , , ).
omar e2436ca625 Nav, Focus: Fixed ImGuiWindowFlags_NoBringToFrontOnFocus windows not being restoring focus properly after the main menu bar or last focused window is deactivated.
omar d5692bff00 Nav, Focus: Fixed ImGuiWindowFlags_NoBringToFrontOnFocus windows not being restoring focus properly after the main menu bar or last focused window is deactivated.
omar b872aa5c8e Docking: io.ConfigResizeWindowsFromEdges default to true in Docking branch. Moved code in BeginTabItem().
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
omar bd5b38e232 Docking: Added Docking system. Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable. (Part 1) ()
omar 58d46e1fe6 Tabs: Added BeginTabBar(), EndTabBar(), BeginTabItem(), EndTabItem() + demo. (, )
omar eb7033e75b Version 1.66 WIP
omar b974fffea0 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
omar e0cab5664a Version 1.65
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. (, )
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.
omar a2616c79fe Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
omar e58bc3d5b7 Refactor: Tweaked and improved the sectioning to facilitate grepping/moving around and applied to all files. ()
omar 31b5b18611 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
omar bb3184af74 Refactor: moved low-layout helpers to imgui_widgets.cpp (Spacing, Dummy, NewLine, Separator, etc.) ()
omar af27ec296b Merge branch 'master' into viewport + added viewport ConfigFlags/BackendFlags
# Conflicts:
#	imgui.cpp
#	imgui.h
omar 77ba883f23 Renamed io.OptCursorBlink/io.ConfigCursorBlink to io.ConfigInputTextCursorBlink. () + changed ImGuiIO layout.
omar b944aa623c Minor mostly inconsequential merges from Viewport + LoadIniSettingsFromMemory() entirely skip lines starting with ';'
omar bdb30d7145 Merge branch 'master' into viewport
omar d07f494305 Internals: Exposed SliderBehaviorT, DragBehaviorT, RoundScalarWithFormatT, SliderCalcRatioFromValueT. ()
Renamed RoundScalarWithFormat -> RoundScalarWithFormatT.
Renamed SliderBehaviorCalcRatioFromValue -> SliderCalcRatioFromValueT
omar bcb1441ce7 Version 1.65 WIP
omar fd201a90f1 Merge branch 'master' into viewport
# Conflicts:
#	imgui.cpp
omar 767649afb1 Fix missing include on some systems to use intptr_t. (, )
omar 0c24fe276c Merge branch 'master_164' into viewport_164
# Conflicts:
#	imgui.cpp
#	imgui_draw.cpp
#	imgui_widgets.cpp
omar 48db5713d6 Version 1.64
omar 38cfcf9fbc Tweak comments and indexes
omar a58e4dfd0f Refactor: Moved Scrollbar function from imgui.cpp to imgui_widgets.cpp, added file index ()
omar df37a156e8 Refactor: Moved Scrollbar function from imgui.cpp to imgui_widgets.cpp, added file index ()
omar d4e49a2697 Merge commit '2714f8fa23d8ca44e98272baf885d12b5185d084' into viewport_164
# Conflicts:
#	imgui.cpp
#	imgui_widgets.cpp
omar 521405488b Refactor: Moved Slider/Drag/Input functions + support DataType stuff from imgui.cpp to imgui_widgets.cpp ()
omar 24dfa0c957 Refactor: Moved InputText functions from imgui.cpp to imgui_widgets.cpp ()
omar 158a65c98f Refactor: Moved ColorEdit/ColorPicker/ColorButton/etc. functions from imgui.cpp to imgui_widgets.cpp ()
omar 6caf074bd5 Refactor: Moved Tree/Selectable functions from imgui.cpp to imgui_widgets.cpp ()
omar 905e14f384 Refactor: Moved Plot/Value functions from imgui.cpp to imgui_widgets.cpp ()
omar 4be79a8955 Refactor: Moved Menu functions from imgui.cpp to imgui_widgets.cpp ()
omar 2d952504ed Refactor: Moved Combo/ListBox functions from imgui.cpp to imgui_widgets.cpp ()
omar 43219d36a6 Refactor: Moved Button/Image/Checkbox/RadioButton/Bullet/ProgressBar functions from imgui.cpp to imgui_widgets.cpp ()
omar 99b27488e7 Refactor: Moved Text functions from imgui.cpp to imgui_widgets.cpp ()
omar 18972c5513 Refactor: Added imgui_widgets.cpp headers to easily merge in the functions in all our branches. ()
omar e312363007 Refactor: Added empty imgui_widgets.cpp + updated project files / makefiles etc. accordingly ()
omar 2714f8fa23 Refactor: Moved Slider/Drag/Input functions + support DataType stuff from imgui.cpp to imgui_widgets.cpp ()
omar c25f48b902 Refactor: Moved InputText functions from imgui.cpp to imgui_widgets.cpp ()
omar ad0bfdcd95 Refactor: Moved ColorEdit/ColorPicker/ColorButton/etc. functions from imgui.cpp to imgui_widgets.cpp ()
omar 5dc954f5d7 Refactor: Moved Tree/Selectable functions from imgui.cpp to imgui_widgets.cpp ()
omar a265c62636 Refactor: Moved Plot/Value functions from imgui.cpp to imgui_widgets.cpp ()
omar 0e9577d0da Refactor: Moved Menu functions from imgui.cpp to imgui_widgets.cpp ()
omar f26b8c1e07 Refactor: Moved Combo/ListBox functions from imgui.cpp to imgui_widgets.cpp ()
omar 6468a3c0ce Refactor: Moved Button/Image/Checkbox/RadioButton/Bullet/ProgressBar functions from imgui.cpp to imgui_widgets.cpp ()
omar 3eaa063984 Refactor: Moved Text functions from imgui.cpp to imgui_widgets.cpp ()
omar 52c115fb2c Refactor: Added imgui_widgets.cpp headers to easily merge in the functions in all our branches. ()
omar 01586d33f3 Refactor: Added empty imgui_widgets.cpp + updated project files / makefiles etc. accordingly ()