Commit Graph

1716 Commits

Author SHA1 Message Date
ocornut
c6b01e8e1d Drag, Sliders: Merged ImGuiDragFlags back into ImGuiSliderFlags. (#3361, #1823, #1316, #642, #1829, #3209)
Technically API breaking (but ImGuiDragFlags were pushed on master 16 hours ago)
2020-08-18 17:02:58 +02:00
Ben Carter
fa279a6aa0 Drags, Sliders: Added deadzone to make selecting 0.0 on linear sliders easier, slider navigation delta accumulation. (#3361, #1823, #1316, #642) 2020-08-17 22:10:42 +02:00
omar
f75b29e7be Drags, Sliders: Added ImGuiDragFlags_NoInput/ImGuiSliderFlags_NoInput to disable turning widget into a text input with CTRL+Click or Nav Enter. 2020-08-17 22:10:42 +02:00
omar
8018623c5b Drags, Sliders: Added ImGuiDragFlags_NoRoundToFormat / ImGuiSliderFlags_NoRoundToFormat flags (#642) 2020-08-17 22:10:41 +02:00
omar
170d02bd99 Drags, Sliders: Added ImGuiDragFlags_ClampOnInput/ImGuiSliderFlags_ClampOnInput flags to force clamping value when using CTRL+Click to type in a value manually. (#1829, #3209) 2020-08-17 22:10:41 +02:00
omar
7607aea018 Drags, Sliders: Removed power features. Old entry points will pass-through if power=1.0f, otherwise assert + safe fallback. Remove 3 redirection functions (#3361, #1823, #1316, #642) 2020-08-17 22:10:41 +02:00
omar
43c099f31e Drags, Sliders: Logarithmic: Moved flags to internals, allowing 1.0f to pass by. (#3361, #1823, #1316, #642) 2020-08-17 22:10:41 +02:00
omar
152dae9e2a Drags, Sliders: Logarithmic: Split back flags into drag/slider flags. Moved to an obsolete section. (#3361, #1823, #1316, #642) 2020-08-17 22:10:40 +02:00
Ben Carter
9f98b4e7f2 Drags, Sliders: Logarithmic: Added logarithmic mode support to drag widgets, extended API to add flags to drag/sliders (#3361, #1823, #1316, #642) 2020-08-17 22:10:40 +02:00
omar
473a01adb0 Scrolling: Avoid SetScroll, SetScrollFromPos functions from snapping on the edge of scroll limits. (#3379) + Demo: Rename "Layout" to "Layout & Scrolling". 2020-08-05 17:09:40 +02:00
omar
963839373c Demo tweaks + general removal of the word dummy were possible with no issues (kept the API call). 2020-08-03 21:31:42 +02:00
omar
4929a8e4a5 InvisibleButton: Made public a small selection of ImGuiButtonFlags (previously in imgui_internal.h) and allowed to pass them to InvisibleButton(). 2020-08-03 18:45:30 +02:00
omar
5d87941451 Fixed ImFontConfig::GlyphExtraSpacing and ImFontConfig::PixelSnapH settings being pulled from the merged/target font settings when merging fonts, instead of being pulled from the source font settings. 2020-08-02 12:20:13 +02:00
omar
218ff3a2a5 Internals: Backport one ->WasActive test in NavRestoreLastChildNavWindow() from 9bf6509c6 + minor/shallow bits from docking branch. 2020-07-29 15:11:24 +02:00
omar
fdc526e8f8 Stop advertisting for Drag v_min>v_max which was introduced in 1.73 likely for 0537ac00 then made unnecessary with 32c33c66, added undocumented ImGuiItemFlags_ReadOnly as possible replacement (unused), (#211) 2020-07-23 18:19:11 +02:00
omar
e223bd8177 ImDrawList: changed AddCircle(), AddCircleFilled() default num_segments from 12 to 0. 2020-07-16 22:25:56 +02:00
omar
3a6c9907cd Texture-based thick lines: Minor tweaks and rename toward merging in master. Changes to allow changing AA_SIZE (disable texture path). 2020-07-08 20:18:41 +02:00
omar
78d6bdf080 Texture-based thick lines: Remove unnecessary indirection in fetching UV data, removed lerp call, renames, tweaks. 2020-07-08 17:38:02 +02:00
Omar
a07c8b6999 Texture-based thick lines: Fixes for AddCustomRect api, add IMGUI_HAS_TEXLINES define (temporarily) to facilitate working with test cases, Demo allows growing FrameBorderSize for testing 2020-07-08 17:38:02 +02:00
Ben Carter
403bf45245 Texture-based thick lines: Allow interpolation between textures for non-integer line widths 2020-07-08 17:38:01 +02:00
omar
222b7ddbfa Texture-based thick lines: Tweaks, fix for truetype builder. 2020-07-08 17:38:01 +02:00
Ben Carter
741ab74b55 Texture-based thick lines: Improvements to code for drawing anti-aliased lines using textures
Moved line width into a constant
Removed test code (now in imgui-tests)
Improved matching between geometry and texture rendering at non-integer sizes
2020-07-08 17:38:01 +02:00
Ben Carter
1d3c3070d8 Texture-based thick lines: Initial version of AA line drawing using textures (press SHIFT to enable) 2020-07-08 17:38:01 +02:00
Ben Carter
8e4046e13b Atlas build use GetCustomRectByIndex() + comments, rename, and shallow merge from tex_antialiasing_lines branch. 2020-07-08 17:25:40 +02:00
omar
a1d2c6fad9 Fixed invalid comment (#3327) 2020-06-30 19:00:31 +02:00
omar
ab4ef822f0 Version 1.78 WIP 2020-06-30 16:56:09 +02:00
Rokas Kupstys
0738611559 Misc: Bunch of code formatting changes suggested by a pass running 'astyle' 2020-06-30 16:37:21 +02:00
omar
dca7c3c629 TestEngine: Added hook to notify test engine of a removed imgui context. 2020-06-29 20:16:55 +02:00
omar
9418dcb693 Version 1.77
+ fix minor clang-tidy warnings which seems reasonable
2020-06-29 15:54:28 +02:00
omar
122febcdbf IO: Added storage for PenPressure (unused by core library, to facilitate experiments) (#2372) 2020-06-29 15:03:11 +02:00
omar
fed80b9537 Popups: Changed 'int mouse_buttons' to ImGuiPopupFlags. Added ImGuiPopupFlags_NoOpenOverExistingPopup, ImGuiPopupFlags_NoOpenOverItems. Refactored signature of BeginPopupContextWindow(). 2020-06-23 20:05:15 +02:00
omar
5acf6d861a Popups: Added ImGuiPopupFlags type, ImGuiPopupFlags_AnyPopupId and ImGuiPopupFlags_AnyPopupLevel flags for IsPopupOpen().
# Conflicts:
#	docs/CHANGELOG.txt
2020-06-23 20:00:32 +02:00
omar
1c35750ee0 Added ImGuiCond_None for consistency and for generated bindings needing this for enums mapping. 2020-06-23 19:45:31 +02:00
Louis Schnellbach
b1d8309abc Added ImGuiTabItemFlags_NoTooltip for individual Tab Item. 2020-06-18 15:55:10 +02:00
ocornut
078571b7a9 Popups: added comments, reorganized the functions in imgui.h 2020-06-16 23:39:00 +02:00
ocornut
37eb89371b Popups: Internals: Added IsAnyPopupOpen(). 2020-06-16 18:46:25 +02:00
ocornut
99ab521024 Renamed OpenPopupOnItemClick() to OpenPopupContextItem(). Kept inline redirection function (will obsolete). + Removed CalcItemRectClosestPoint() entry point 2020-06-15 22:12:38 +02:00
ocornut
64d8d302fb ImDrawList: Fixed VtxOffset change leading to unnecessary leading empty ImDrawCmd in certain cases. 2020-06-10 19:16:14 +02:00
ocornut
40b799023b Docs: Update fonts.md (#2861) + update all references to FONTS.txt 2020-06-09 16:56:48 +02:00
ocornut
b1f2eacdf3 ImDrawList: Prefixed internal functions with underscore, renamed UpdateClipRect() to _OnChangedClipRect(), UpdateTextureID() -> _OnChangedTextureID() 2020-06-08 20:58:30 +02:00
ocornut
e35a813d57 ImDrawList: Separating PrimXXX sections from more internals helper in the header file. 2020-06-08 20:58:30 +02:00
ocornut
117d57df5b ImDrawList: Additional comments and extracted bits into ImDrawList::PopUnusedDrawCmd() 2020-06-08 20:58:29 +02:00
ocornut
a6bb047bab ImDrawList: Store header/current ImDrawCmd in instance to simplify merging code. Amend 0320e72, toward #3163, #3129 2020-06-08 19:36:02 +02:00
ocornut
57191fe3d0 Comments about limiting WindowRounding to a reasonable size. 2020-06-08 14:17:49 +02:00
ocornut
0320e7257b ImDrawList: Small refactor to create empty command when beginning the frame, allowing to simplify some functions.
+ Missing clearing two fields in ClearFreeMemory() (was hamrless)
2020-06-06 20:27:24 +02:00
ocornut
003153b3ac ImDrawList: Tweaks to make style consistent (using pointers, same local names). Added comments. Should be no-op. 2020-06-06 20:26:04 +02:00
ocornut
41e8837f59 Comments, adding some spacing in ImVec2() constructors. 2020-06-02 18:13:54 +02:00
ocornut
9c209d5a90 Minor amend 9028088 (#3261) 2020-05-25 11:42:45 +02:00
omar
f152fac4f1 Demo: Wrapped many (not all) code and comments lines to 120 characters to fit below GitHub viewer limit. (#3193) 2020-05-05 21:33:16 +02:00
omar
b4dd28ffbb Style: Added style.TabMinWidthForUnselectedCloseButton settings.
Set to 0.0f (default) to always make a close button appear on hover (same as Chrome, VS).
Set to FLT_MAX to only display a close button when selected (merely hovering is not enough).
Set to an intermediary value to toggle behavior based on width (same as Firefox).
2020-05-04 14:58:21 +02:00
Ryan Pavlik
8cbff5ccb2 Fix various typos. (#3161)
(found by Debian's lintian on a package that uses imgui.)
(found by codespell.)
2020-04-28 16:10:15 +02:00
Rokas Kupstys
2593b6a1c8 Drag and Drop: Fix unintended fallback "..." tooltip during drag operation when drag source uses _SourceNoPreviewTooltip flags. (#3160) 2020-04-27 13:51:07 +02:00
omar
5ac5d3674f Removed unncessary ID (first arg) of ImFontAtlas::AddCustomRectRegular() function. 2020-04-23 19:27:04 +02:00
omar
223297b075 Clarified comments about popups input blocking and ImGuiHoveredFlags_AllowWhenBlockedByPopup flag. (#3154) 2020-04-23 16:32:01 +02:00
Silent
fd6d3155c0
Fix wrong comment in ImGuiCond_ (#3139) 2020-04-22 10:13:20 +02:00
omar
e8c986b34e Version 1.77 WIP 2020-04-14 14:55:50 +02:00
omar
5503c0a12e Version 1.76
+ fixed PVS warning, update demo binaries, update readme image
2020-04-12 20:18:47 +02:00
omar
832fda8488 Fixed stray end of line blanks, added comments in .editorconfig, tweaked some headers. 2020-04-07 14:46:46 +02:00
omar
b7e1b13ca7 Update docs, FAQ, comments (mainly related to io.WantCaptureMouse / WantCaptureKeyboard flags). 2020-04-02 21:53:10 +02:00
omar
ec2a24a5f1 Selectable: Allow using ImGuiSelectableFlags_SpanAllColumns in other columns than first. Comments. (#125) 2020-03-26 20:33:39 +01:00
omar
1d4b5def51 Alter definition of IM_UNICODE_ defines to faclitate C-binding. (#2538, #2541, #2815) 2020-03-25 21:40:20 +01:00
omar
670367e51d Added IMGUI_USE_WCHAR32 instead of "#define ImWchar ImWchar32" to faclitate C-binding. (#2538, #2541, #2815) 2020-03-24 20:15:17 +01:00
omar
f2b01c3436 Changelog, tweak OpenGL3 backends. (#3061), update Gallery thread links. 2020-03-24 18:45:05 +01:00
omar
110f506ec0 Comments in imgui.h 2020-03-19 18:39:43 +01:00
omar
ccf0cc8584 Added ImGuiKeyModFlags. Added additional checks in EndFrame() to verify that io.KeyXXX values have not been tampered with between NewFrame() and EndFrame(). 2020-03-19 12:24:32 +01:00
ocornut
a41332453e Unicode: Changelog, comments, minimum CI integration. (#2541, #2538, #2815) 2020-03-03 18:53:29 +01:00
omar
0283a6e566 ImFont: Demo, Store Used4kPagesMap[] map in ImFont to facilitate iteration on all codepoints with a large value of IM_UNICODE_CODEPOINT_MAX. (#2815)
Demo uses IsGlyphRangeUnused()
2020-03-03 18:53:29 +01:00
Sam Hocevar
c8ea0a017d Unicode: UTF32 support improvements (#2541, #2538, #2815)
- Make ImWchar32 unsigned.
 - Fix Win32 version of ImFileOpen by including windows.h sooner.
 - Make ImGuiIO::AddInputCharacterUTF16() more robust by disallowing illegal
surrogate pairs.
 - Allow pushing higher plane codepoints through ImGuiIO::AddInputCharacter().
 - Minor cleaning up in the high-plane Unicode support.
 - Fix Clang -Wunreachable-code warning
2020-03-03 18:53:29 +01:00
Cloud Wu
6d59653e82 Unicode: full Unicode Support (6 squashed commits) (#2541, #2538)
fix build for WideCharToMultiByte
[3181ff1e] Full Unicode Support
[6c9e73ac] Fix ImTextCountUtf8BytesFromChar and ImTextCharToUtf8, these APIs assume the input is an unicode code point, not UTF-16
[ba85665b] Add AddInputCharacterUTF16 for windows backend to handle WM_CHAR
[fafdcaf0] Use Windows API to convert UTF-16 for ImFileOpen
[dc7d5925] Use windows API to convert UTF-16 for clipboard
2020-03-03 18:53:29 +01:00
ocornut
24bd33ace8 Menus: Some renaming, comments, add to demo. Amend 0342a3c. (#1207) 2020-02-28 16:42:24 +01:00
ocornut
898e91f20d Internals: Added TempInputText() to facilitate creation of custom widgets, renamed TempInputTextScalar() to TempInputScalar() etc. (#2718)
+ Minor imgui.h/todo comments
2020-02-25 21:34:02 +01:00
omar
d284a6cffc InputText: Fixed password fields displaying ASCII spaces as blanks. Fixed non-ASCII space occasionally creating unnecessary empty polygons. (#2149, #515) 2020-02-11 19:28:11 +01:00
omar
ccaec1a270 Version 1.76 WIP 2020-02-11 16:56:56 +01:00
omar
30bb15672d Remove trailing spaces 2020-02-10 23:22:03 +01:00
omar
d8948b5343 ColorButton: Added ImGuiColorEditFlags_NoBorder flag to remove the border normally enforced by default. 2020-02-10 21:24:03 +01:00
omar
58b3e02b95 Version 1.75
Comments
2020-02-10 14:02:41 +01:00
omar
d37d25470a Added IMGUI_DISABLE compile-time definition to make all headers and sources empty. 2020-02-09 17:08:33 +01:00
Rokas Kupstys
9cff4d6e5e Columns: ImDrawList::Channels* functions now work inside columns.
Use a private splitter in columns, paving way for removal of obsolete ImDrawList::Channels* functions.
2020-01-31 12:02:56 +01:00
omar
6e1f8be07b Window: Fix SetNextWindowBgAlpha(1.0f) failing to override alpha component. (#3007) 2020-01-30 15:13:36 +01:00
omar
5363af7f47 AddCircle, AddCircleFilled: Add auto-calculation of circle segment counts (amends)
Tweak default max error value, Changelog, comments, path-fast for 12 segments circles, made LUT store ImU8
2020-01-23 14:55:05 +01:00
Ben Carter
051ce0765e AddCircle, AddCircleFilled: Add auto-calculation of circle segment counts 2020-01-23 14:52:48 +01:00
omar
3fe6ae9732 Internals: Move some Nav functions and members around (no functional change) + Misc comments 2020-01-20 18:19:03 +01:00
Loïc Molinari
6c00d1916e Disable format checks when using stb_sprintf.h
STB sprintf allows extra formats like %b or %$d. If ImGui is configured
to use STB sprintf, it generates warnings with GCC and clang when using
such formats because it keeps applying default printf-style warnings.
This commit disables printf-style warnings when using STB sprintf.

Since the printf-style warnings are defined in imgui.h based on the
compiler, IMGUI_USE_STB_SPRINTF can't just be defined in the cpp file
anymore and it's been moved as a proper config in imconfig.h.
2020-01-17 13:27:51 +01:00
omar
9ad4c5da7e Fix zealous warnings + Internals: Renamed members from XxxxID to XxxxxId to be more consistent with rest of the codebase (still some inconsistency left that are harder to fix) 2020-01-16 23:44:05 +01:00
omar
ff5299e0e0 Docs: FAQ, Comments. 2020-01-12 22:09:18 +01:00
omar
d581939387 Removed trailing spaces. 2020-01-06 15:24:16 +01:00
omar
0dd02dd90d Happy new year!
Comments, Replaced pictures, Removed Patreon
2020-01-06 12:41:37 +01:00
omar
dc66f83db8 Additional duplicated comments about usage of std::string and input text resize callback (#2006, #1443, #1008) 2019-12-25 17:46:35 +01:00
omar
a610f1da52 Bezier Tweaks, fixed parameter order of 3831d50 2019-12-17 16:43:05 +01:00
omar
9d444062f9 Limiting Columns()/BeginColumns() api to 64 columns (#125)
While the current code technically supports it, future code may not so we're putting the restriction ahead.
2019-12-17 13:25:46 +01:00
omar
3a800f2dc9 DragFloat: Mention usage of FLT_MAX, INT_MAX etc. explicitly. (#2931) 2019-12-13 11:56:51 +01:00
Ben Carter
0e74103659 ImDrawList: Add AddNgon(), AddNgonFilled() API. 2019-12-09 11:23:06 +01:00
omar
f9c26d23de Removed redirecting functions/enums that were marked obsolete in 1.53 (December 2017).
Comments
2019-12-08 16:38:27 +01:00
Ben Carter
697f15e339 Added PrimUnreserve() API. Obsoleted calling ImDrawList::PrimReserve() with a negative count. 2019-12-08 16:06:32 +01:00
omar
f656e7775e Inputs: Added ImGuiMouseButton enum for convenience (e.g. ImGuiMouseButton_Right=1).
We forever guarantee that the existing value will not changes so existing code is free to use 0/1/2.
2019-12-06 16:29:36 +01:00
omar
6cbed03d4a Comments, clarified mouse button ordering. 2019-12-06 16:29:32 +01:00
omar
b521cd357d Removed implicit default parameter to IsMouseDragging(int button = 0) to be consistent with other mouse functions.
(none of the other functions have it).
2019-12-05 18:33:36 +01:00
Rokas Kupstys
945a509773 Implement ImGuiMouseCursor_NotAllowed mouse cursor. 2019-12-05 15:32:10 +01:00
omar
abaf0256b8 Version 1.75 WIP
Added message to font file loading assert.
2019-11-28 20:58:16 +01:00
omar
bdce833636 Version 1.74 2019-11-25 18:38:53 +01:00
omar
26d177bc03 Docs: Moved misc/fonts/README.txt to docs/FONTS.txt. + tweaks 2019-11-25 18:29:28 +01:00
omar
51e2e9b239 ImVector: Added shrink() helper. ImFont::RenderText minor optimisation for debug build. Misc: Metrics shows tab names because we now have them. 2019-11-22 14:06:51 +01:00
omar
51a02b319c Added IM_UNICODE_CODEPOINT_MAX. Changed specs of ImFontAtlas::AddCustomRectRegular() (breaking change). 2019-11-21 14:13:17 +01:00
omar
ca63349eb4 Renamed XX-bits -> XX-bit in comments to match what the world appears to be using. 2019-11-20 11:58:25 +01:00
omar
57dc34f4e8 TreeNode: Added IsItemToggledOpen() to explicitly query if item was just open/closed, facilitating interactions with custom multi-selections patterns. (#1896, #1861) 2019-11-08 15:30:15 +01:00
omar
09b2310237 Internals: Added index of helpers and shuffled a few things. 2019-11-06 20:37:47 +01:00
stfx
6bf5aed325 Declaration and assignment can be joined, Member function may be 'const'. (#2875) 2019-10-29 17:11:49 +01:00
omar
23c1ff4907 Removed redirecting functions/enums names that were marked obsolete in 1.52 (October 2017).
- Begin() [old 5 args version]     -> use Begin() [3 args], use SetNextWindowSize() SetNextWindowBgAlpha() if needed
- IsRootWindowOrAnyChildHovered()  -> use IsWindowHovered(ImGuiHoveredFlags_RootAndChildWindows)
- AlignFirstTextHeightToWidgets()  -> use AlignTextToFramePadding();
- SetNextWindowPosCenter()         -> use SetNextWindowPos() with a pivot of (0.5f, 0.5f)
- ImFont::Glyph                    -> use ImFontGlyph
If you were still using the old names, read "API Breaking Changes" section of imgui.cpp to find out the new names or equivalent features, or see how they were implemented until 1.73.
2019-10-22 14:45:11 +02:00
omar
048b73dfaa Various comments + Doc: Examples readme. Moved main menu bar code below menu bar code. 2019-10-21 20:57:07 +02:00
omar
bf746c4215 DragScalar, SliderScalar, InputScalar: Added p_ prefix to parameter that are pointers to the datato clarify how they are used, and more comments redirecting to the demo code. (#2844) 2019-10-11 12:04:28 +02:00
omar
8aad3482a4 ImVector: Fixed index_from_ptr() not asserting when passed end() element. 2019-10-07 17:22:55 +02:00
omar
892dfb1dea InputText, Nav: Fixed Home/End key broken when activating Keyboard Navigation. (#787)
Small refactor of ActiveIdUsingXXX inputs flags toward a little more consistent system. (#2637)
2019-10-02 15:57:36 +02:00
omar
c262276988 Version 1.74 WIP 2019-09-30 14:27:56 +02:00
omar
d5efe16157 Version 1.73 2019-09-24 17:02:26 +02:00
omar
f47a0a85cc ImVector: added find, find_erase, find_erase_unsorted helpers. 2019-09-22 19:06:20 +02:00
omar
eab03f4467 Selectable: Added ImGuiSelectableFlags_AllowItemOverlap flag in public api (was previously internal only). 2019-09-22 19:03:51 +02:00
omar
9d02ed51e3 TreeNode: Added ImGuiTreeNodeFlags_SpanAvailWidth and ImGuiTreeNodeFlags_SpanFullWidth flags (#2451, #2438, #1897)
Added demo bits.
2019-09-18 17:13:41 +02:00
omar
b48dc067ae Style: Allow style.WindowMenuButtonPosition to be set to ImGuiDir_None to hide the collapse button. (#2634, #2639)
+ Fix #2775
2019-09-17 16:33:15 +02:00
omar
3b014d0c31 Merge branch 'features/ellipsis_rendering'
# Conflicts:
#	imgui.cpp
2019-09-17 12:07:30 +02:00
omar
7d5a17e5e4 Remove trailing spaces (grep for ' \r?$' in visual studio) 2019-09-17 11:33:18 +02:00
omar
57623c15dd Font: Narrow ellipsis: various minor stylistic tweaks (#2775) 2019-09-17 11:13:34 +02:00
Rokas Kupstys
45405f0dc9 Font: implement a way to draw narrow ellipsis without relying on hardcoded 1 pixel dots. (#2775)
This changeset implements several pieces of the puzzle that add up to a narrow ellipsis rendering.

## EllipsisCodePoint

`ImFontConfig` and `ImFont` received `ImWchar EllipsisCodePoint = -1;` field. User may configure `ImFontConfig::EllipsisCodePoint` a unicode codepoint that will be used for rendering narrow ellipsis. Not setting this field will automatically detect a suitable character or fall back to rendering 3 dots with minimal spacing between them. Autodetection prefers codepoint 0x2026 (narrow ellipsis) and falls back to 0x0085 (NEXT LINE) when missing. Wikipedia indicates that codepoint 0x0085 was used as ellipsis in some older windows fonts. So does default Dear ImGui font. When user is merging fonts - first configured and present ellipsis codepoint will be used, ellipsis characters from subsequently merged fonts will be ignored.

## Narrow ellipsis

Rendering a narrow ellipsis is surprisingly not straightforward task. There are cases when ellipsis is bigger than the last visible character therefore `RenderTextEllipsis()` has to hide last two characters. In a subset of those cases ellipsis is as big as last visible character + space before it. `RenderTextEllipsis()` tries to work around this case by taking free space between glyph edges into account. Code responsible for this functionality is within `if (text_end_ellipsis != text_end_full) { ... }`.

## Fallback (manually rendered dots)

There are cases when font does not have ellipsis character defined. In this case RenderTextEllipsis() falls back to rendering ellipsis as 3 dots, but with reduced spacing between them. 1 pixel space is used in all cases. This results in a somewhat wider ellipsis, but avoids issues where spaces between dots are uneven (visible in larger/monospace fonts) or squish dots way too much (visible in default font where dot is essentially a pixel). This fallback method obsoleted `RenderPixelEllipsis()` and this function was removed. Note that fallback ellipsis will always be somewhat wider than it could be, however it will fit in visually into every font used unlike what `RenderPixelEllipsis()` produced.
2019-09-17 11:13:07 +02:00
omar
b59ec7b9b7 DragInt, DragFloat, DragScalar: Using (v_min > v_max) allows locking any edit to the value. 2019-08-30 20:30:21 +02:00
omar
bfcdaeb610 Disable with ConfigWindowsMemoryCompactTimer < 0.0f (#2636) 2019-08-28 20:30:36 +02:00
omar
62f75c7fb1 Added a mechanism to compact/free the larger allocations of unused windows (buffers are compacted when a window is unused for 60 seconds, as per io.ConfigWindowsMemoryCompactTimer = 60.0f). Note that memory usage has never been reported as a problem, so this is merely a touch of overzealous luxury. (#2636) 2019-08-28 20:28:36 +02:00
omar
c8418015c2 SliderScalar: Improved assert when using U32 or U64 types with a large v_max value. (#2765)
+  misc minor stuff.
2019-08-28 15:19:10 +02:00
omar
c4ff1b3578 ImDrawList: clarified the name of many parameters so reading the code is a little easier. (#2740) 2019-08-22 17:43:57 +02:00
omar
3fb5cf3541 Using offsetof() when available in C++11. Avoids Clang sanitizer complaining about old-style macros. (#94) 2019-08-22 16:55:42 +02:00
omar
f624455d7b Version 1.73 WIP 2019-08-01 10:57:13 -07:00
omar
6a0d0dab5a Version 1.72b (patch for nav) 2019-07-31 14:31:06 -07:00
omar
9183e7c426 Version 1.73 WIP 2019-07-29 15:54:32 -07:00
omar
ecb9b1e2eb Version 1.72 2019-07-27 18:15:07 -07:00
omar
d057550209 Fixed Clang 8.0 warning "empty expression statement has no effect; remove unnecessary ';' to silence this" warning [-Wextra-semi-stmt]
+ Comment
2019-07-24 17:07:05 -07:00
omar
51853292cc ImDrawList: Using ImDrawCornerFlags instead of int in various apis.
Demo: Using ImGuiColorEditrFlags instead of int.
2019-07-23 10:41:48 -07:00
omar
363d33f64e Increased IMGUI_VERSION_NUM to facilitate transition of OSX clipboard support for framework using/embedding any version of imgui. Amend 29d9394. (#2546) 2019-07-22 10:23:27 -07:00
omar
f0348ddffc Amend 0f86116, renamed to ImGuiKey_KeyPadEnter Changelog.. (#2677, #2005) 2019-07-21 18:39:50 -07:00
Aaron Cooper
0f86116a69 Adding an ImGuiKey 'ImGuiKey_EnterSecondary' to support platforms that differentiate the enter (return key) and the numpad enter key. 2019-07-21 18:29:11 -07:00
omar
ea79992d9a Fixed old SetWindowFontScale() api value from not being inherited by child window. Added comments about the right way to scale your UI (load a font at the right side, rebuild atlas, scale style).
+ Added missing IMGUI_API marker to the EmptyString storage used by ImGuiTextBuffer. (#2672)
2019-07-17 10:01: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
e461e7bc7a Moved ImGuiColumnsFlags erroneously forward declared in imgui.h + demo bit. 2019-07-14 12:29:23 -07: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
d23f1b1409 fonts/binary_to_compress: display error message when failing to open file + misc comments. 2019-07-10 12:58:11 +02:00
kevreco
caf119a982 Added 'SetScrollHereX' and 'SetScrollFromPosX' (#1580) 2019-07-01 12:15:48 +02:00
omar
41e2d4b5ae ImDrawListSplitter: Fixed memory leak when using low-level split api (was not affecting ImDrawList api, also this type was added in 1.71 and not advertised as a public-facing feature). 2019-06-20 16:09:45 +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
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
4597632662 Readme, comments, dear imgui prefixes 2019-06-11 16:11:36 +02:00
omar
a9b5c834b6 ImDrawListSplitter: Don't merge draw commands when crossing a VtxOffset boundary + Renamed fields ImDrawChannels to consistently suggest those are internal structures. 2019-06-11 11:49:31 +02:00
omar
d8435c7710 ImDrawListSplitter: Fix idx offset when merging (cef88f6) (#2591) 2019-06-10 15:02:44 +02:00
omar
fea5f70611 ImDrawCallback: Allow to override the signature of ImDrawCallback by #define-ing it. This is meant to facilitate custom rendering back-ends passing local render-specific data to the draw callback. 2019-06-06 15:28:37 +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
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
b9874a2423 Comments about obsoleted features version. Todo. Clarify tab bar initial offset (useful if we decide to remove the half-windowpadding clip margin). 2019-06-05 15:58:49 +02:00
omar
f1f4b42d91 ImDrawListSplitter: extracted out of ImDrawList. Down the line we may obsolete the ImDrawList functions and encourage users to store the splitter aside, in the meanwhile ImDrawList holds a splitter.
(This will allow columns/table to recurse.)
2019-05-31 12:03:10 +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
c487bc52a2 Fonts: Added some details about using custom colorful icons. 2019-05-28 20:17:15 +02:00
omar
9c35344175 Comments, todo entries, moved ImGuiSelectableFlagsPrivate in higher ranges to match others. 2019-05-27 16:50:56 +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
b85e97137d Version tag is 1.71 WIP oops 2019-05-22 23:56:26 +02:00
omar
34b881eb12 ImFontGlyphRangesBuilder: Fixed unnecessarily over-sized buffer, which incidentally was also not fully cleared. Fixed edge case overflow when adding character 0xFFFF. (#2568) 2019-05-21 12:45:27 +02:00
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. (#1875, #2034) 2019-05-13 19:04:57 +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
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
e29176df53 Internals: Columns: Renamed fields. Comments and tweak. Moved a demo block. 2019-05-09 13:12:09 +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
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
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
5c1cd5c8c7 ImDrawCallback_ResetRenderState, Examples: Added support for reset render state callback. (#2037, #1639, #2452) 2019-04-30 22:15:59 +02:00
omar
3fbc0b7a9e Obsoleted GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead. Kept inline redirection function. 2019-04-29 18:33:08 +02:00
omar
6db0766564 Misc comments, internal renaming, added disable indentation option to Columns demo section. 2019-04-24 17:40:07 +02:00
omar
16e9b8191b Increased IMGUI_VERSION_NUM arbitrarily, help narrowing down reports that don't include a commit hash. Add comments. 2019-04-22 11:16:17 +02:00
omar
5078fa208b Added SetNextItemWidth() helper to avoid using PushItemWidth/PopItemWidth() for single items. 2019-04-18 18:29:28 +02:00
omar
f355a40367 Added commentary about ContentRegion functions. Added internal GetContentRegionMaxScreen() to facilitate internal code at the moment. 2019-04-18 15:46:13 +02:00
omar
1aeee9d40f Internals: Columns: Tweaks, renaming. Metrics: Show rectangles for child windows.
Renamed SameLine() first parameter.
2019-04-17 22:12:17 +02:00
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. 2019-04-05 20:20:24 +02:00
omar
512d39d031 Examples: OpenGL3: Minor tweaks, clarifications + not calling glBindBuffer more than necessary in the render loop. 2019-03-29 16:17:30 +01:00
omar
20188b19d6 Comments (#2441) + Freeglut fixes (#2430) 2019-03-26 12:16:23 +01:00
omar
221bf93a55 Comments, todo list, remove trailing spaces. 2019-03-17 00:56:21 +01:00
omar
857381b9ca GetMouseDragDelta(): also returns the delta on the mouse button released frame. Verify that mouse positions are valid otherwise returns zero. Removed obsolete comment. Tweaked demo. (#2419) 2019-03-15 15:03:37 +01:00
omar
cf2c52282d Version 1.70 WIP 2019-03-15 13:07:30 +01:00
omar
55c02099c5 Version 1.69, comments, typos 2019-03-13 15:29:43 +01:00
omar
a92c587c75 Added GetGlyphRangesVietnamese() helper. (#2403) 2019-03-11 22:02:59 +01:00
Bruce Mitchener
17c567c3a9 Don't use const qualified parameters in declarations.
This fixes warnings from clang-tidy like this:

    parameter 'v_max' is const-qualified in the function declaration;
    const-qualification of parameters only has an effect in function definitions

Since values (rather than references or pointers) don't need to be
const, they don't need to be marked that way in the function declaration.
2019-03-08 18:21:11 +01:00
Haldean Brown
79bb4ce128 Added ImGuiColorEditFlagsFlags_InputHSV. (#2383, #2384) 2019-03-08 18:16:41 +01:00
omar
66936880ba Moved placeholder sections to match Docking branch. Comments. 2019-03-08 18:16:41 +01:00
Bruce Mitchener
3b11505481 Fix typos. (#2411) 2019-03-08 17:52:32 +01:00
omar
1c23981782 Made ImS8 and ImS16 explicitly signed in case some crazy SDK decide to flip the signedness over. (#2408) 2019-03-07 16:10:44 +01:00
Lucas Lazare
ab80ee6453 Added InputTextWithHint() (#2400)
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
2019-03-06 17:33:05 +01:00
omar
ce4e62649a Internal: Tabbing: Tweaks to FocusableItemRegister and using the standard mechanism to allow/block Tab being interpreting by tabbing instead of InputText() widget. 2019-03-05 18:24:59 +01:00