ocornut
24a44b9abe
Version 1.89.5 WIP
2023-03-15 12:25:20 +01:00
ocornut
f3f6295d53
Version 1.89.4
...
Commented out obsolete enums/functions names: ImGuiSliderFlags_ClampOnInput, ImGuiInputTextFlags_AlwaysInsertMode, ImDrawList::AddBezierCurve(), ImDrawList::PathBezierCurveTo()()
2023-03-14 16:36:19 +01:00
ocornut
cc2177de15
Debug Tools: Added io.ConfigDebugBeginReturnValueOnce / io.ConfigDebugBeginReturnValueLoop options.
2023-03-14 15:25:13 +01:00
ocornut
e83fb468c6
Renamed PushAllowKeyboardFocus()/PopAllowKeyboardFocus() to PushTabStop()/PopTabStop(). ( #3092 )
2023-03-09 18:53:57 +01:00
ocornut
3b2f617652
BeginTooltip: Added 'bool' return value to BeginTooltip() for API consistency. Updated demo.
...
Add SetWindowHiddendAndSkipItemsForCurrentFrame().
2023-03-09 15:16:40 +01:00
Marc Delorme
c8ad25caa6
Make classes not depend on the implicit GImGui context ( #5856 , #6199 ): ImGuiWindow, ImGuiInputTextCallbackData, ImGuiListClipper, ImGuiStackSizes
...
This commit is a preparation toward adding ImGui apis with explicit context
and making ImGui applications being able to use multiple context at the same time
whatever their concurrency model.
This commit modifies ImGuiInputTextCallback, ImGuiListClipper and ImGuiStackSize so those classes do not to depend on GImGui context anymore.
About ImGuiInputTextCallback:
- ImGuiInputTextCallback depends on ImGuiContext because it has a
`InsertChars` method adding character to `g.InputTextState`
- To make ImGuiInputTextCallback aware of which context to use, the
appropriate context is given as argument of ImGuiInputTextCallback
constructor.
About ImGuiListClipper:
- ImGuiListClipper apply to a context through its `Begin`, `End`, and `Step`
method.
- To make ImGuiListClipper aware of which context to use, the
appropriate context is given as argument of ImGuiListClipper
constructor.
- Since the behavior is different than previously the class has been
renamed ImGuiListClipperEx
- In order to preserve backward compatibility, a subclass of ImGuiListClipperEx
named ImGuiListClipper has been defined and forward the implicit context
to ImGuiListClipperEx parent.
About ImGuiTextFilter:
- ImGuiTextFilter depends on the implicit context because the Draw(..)
method call ImGui::InputText(...)
- Instead from that commit the Draw(...) method takes an explicit context
as first argument
- Since the behavior is different than previously the class has been
renamed ImGuiTextFilterEx
- In order to preserve backward compatibility, a subclass of ImGuiTextFilterEx
named ImGuiTextFilter has been defined. This subclass has a draw method
override which and forward the implicit context to the parent class Draw(...)
About ImGuiStackSizes:
- ImGuiStackSizes was depending on ImGuiContext because of its
`SetToCurrentState` and `CompareWithCurrentState` method
- ImGuiStackSizes is an helper object use
for comparing state of context. It does not necessarily need to
compare the same context. For that reason, as opposed to previous
classes it takes the context it wants to compare to as argument of
its method.
- For this occasion `SetToCurrentState` and `CompareWithCurrentState`
have been renamed `SetToContextState` and `CompareWithContextState`
to match the new method signature.
ImGuiListClipper
ImGuiInputTextCallbackData
2023-03-08 15:55:38 +01:00
Marc Delorme
10ace228bc
Make classes not depend on the implicit GImGui context ( #6199 , #5856 , #6199 ): ImGuiIO
...
This commit is a preparation toward adding ImGui apis with explicit context
and making ImGui applications being able to use multiple context at the same time
whatever their concurrency model.
About ImGuiIO:
- ImGuiIO depends on ImGuiContext because some of its method want to event to `g.InputEventQueue`.
- To make ImGuiIO aware of the context to use, context which creates the ImGuiIO is given as argument of ImGuiIO constructor.
- The assert `IM_ASSERT(&g.IO == this && "Can only add events to current context.")` has been removed since it does not make sense anymore
NOTE: ImGuiIO could be completely independent of ImGuiContext if the InputEventQueue was moved from ImGuiContext to ImGuiIO, but since
ImGuiIO is a public class it would expose InputEvent type. Solving this problem is out of the current scope, but it is interesting to notice.
2023-03-08 15:39:22 +01:00
ocornut
c9a53aa74d
Nav: Made Enter key submit the same type of Activation event as Space key. ( #5606 )
...
Instead of adding NavActivateInputId support in ButtonBehavior() started untangling the mess.
2023-03-07 18:41:49 +01:00
ocornut
b4b79584d1
Internals: added GetStyleVarInfo(). exposed previously .cpp only ImGuiStyleVarInfo as ImGuiDataVarInfo.
2023-03-07 14:40:55 +01:00
ocornut
b6586bb06d
TestEngine: update IMGUI_TEST_ENGINE_ITEM_ADD() hooks to support passing item in flags.
2023-03-06 18:10:04 +01:00
ocornut
1c29a8ed18
Debug Log: auto-disable ImGuiDebugLogFlags_EventClipper to reduce spam.
2023-03-06 18:09:49 +01:00
ocornut
bfce7750b1
Simpified code in GetKeyData() and used ImGuiKey_KeysData_OFFSET for consistency. Rework demo, Comments. Moved ImGuiKey_KeysData_OFFSET to internal.h ( #4921 , #6191 )
2023-02-24 13:05:32 +01:00
ocornut
696a533532
TestEngine: added ImGuiItemStatusFlags_Inputable flag report to facilitate fuzzing.
2023-02-16 12:15:06 +01:00
ocornut
a1b8457cb5
Moved the optional "courtesy maths operators" (#define IMGUI_DEFINE_MATH_OPERATORS) implementation from imgui_internal.h in imgui.h. ( #6164 , #6137 , #5966 , #2832 )
2023-02-15 19:23:12 +01:00
ocornut
204cb4d226
Version 1.89.4 WIP
2023-02-15 15:35:56 +01:00
ocornut
458a109031
Version 1.89.3
2023-02-14 16:00:18 +01:00
ocornut
fa0852f9e5
ColorEdit, ColorPicker: Fixed hue/saturation preservation logic from interfering with the displayed value (but not stored value) of others widgets instances. ( #6155 )
...
Amend 30546bc0
, accb0261b
, 38d22bc4
2023-02-14 15:35:00 +01:00
ocornut
f0ac68ad35
Internal: Settings: amend 0b86513
revert to use FindWindowSettingsByID().
...
Namely for docking system.
2023-02-10 17:01:14 +01:00
ocornut
082b20e46b
Internals: Settings: added ClearWindowSettings(). Extract part of CreateNewWindow() into InitOrLoadWindowSettings().
...
Designed to that if the window reappear in the session it won't take an additional slot.
2023-02-10 16:46:31 +01:00
ocornut
b2ebd03b16
Internals: Settings: moved Windows setting to their sub-section.
2023-02-10 16:06:39 +01:00
ocornut
0b865136e3
Internals: Settings: Added FindWindowSettingsByName() (replacing old version by ID) FindWindowSettingsByWindow() + remove unnecessary FindOrCreateWindowSettings().
...
In 1 code path we do a redundant hash but this happens only once per window per session so we are ok.
2023-02-10 16:06:29 +01:00
ocornut
99c0bd65df
Added SeparatorText() widget. ( #1643 )
2023-02-10 12:16:41 +01:00
ocornut
e816bc6723
Merge misc changes from docking branch to reduce small drift.
...
In particular:
- imgui.cpp : move UpdateInputEvents() higher in NewFrame() to match docking + update RenderMouseCursor() to match.
- imgui_draw.cpp: ImDrawList::_ResetForNewFrame() change from c807192ab
- Backends: SDL2. Add MouseWindowID + change SDL_CaptureMouse() test to match docking branch. Not strictly necessary but aimed at reducing drift because we go on and fork this file.
+ moved responsability of checking valid names to TabBarGetTabName() to simplify both branches.
2023-02-07 13:22:23 +01:00
ocornut
d6ea56dfd9
Tables: amend f799a29
with a better solution + fix potential overflow ( #6140 )
2023-02-03 22:50:43 +01:00
ocornut
f799a293c8
Tables: Solved an ID conflict issue with multiple-instances of a same table. Storing instance id for convenience. ( #6140 )
...
TableGetColumnResizeID() are still using an incorrect table, but having only one-level left tends to cancel things out.
2023-02-03 20:03:03 +01:00
nahkhiir
2efebe3315
ShowFontAtlas, Demo: optionally use style text color for tint. ( #6129 )
2023-01-31 18:12:42 +01:00
ocornut
867bdbecb3
Text: fixed issue in RenderText() leading to IM_ASSERT_PARANOID() triggering if enabled. ( #6132 , #5720 , #5919 )
...
Amend 3482d4ec
, bd96f6e
2023-01-31 14:41:16 +01:00
ocornut
d719776460
Internals: added 'ImGuiButtonFlags flags' to ImageButtonEx(). ( #6126 )
2023-01-31 11:30:27 +01:00
ocornut
3d8885cbbd
TabBar: Internals: add GetCurrentTabBar(), TabBarFindTabByOrder(), TabBarGetCurrentTab(), TabBarGetTabOrder(), TabBarGetTabName(), TabBarQueueFocus() + clear LastTabItemIdx on EndTabBar(). ( #5853 , #5997 )
...
ImGuiTabBar::GetTabOrder() -> TabBarGetTabOrder().
ImGuiTabBar::GetTabName() -> TabBarGetTabName()
2023-01-24 19:41:20 +01:00
ocornut
91667430a8
Tables: increase table columns limit from 64 to 512 using bit array allocated in contiguous memory +. ( #6094 , #5305 , #4876 , #3572 )
2023-01-21 00:41:54 +01:00
ocornut
14908cba8f
Internals: ImBitArray, ImBitVector: using macro helper for common op + disable stack checks on MSVC agressive debug builds.
2023-01-21 00:41:50 +01:00
ocornut
db55422870
Tables: removed hot RequestOutputMaskByIndex bit-array as majority of code-paths are already touching the cold parts.
...
Only exception being TableSetColumnIndex() with same column number but that's an odd case.
Will break PR #6094 #3572 #5305 #4876 but those not need to be necessarily updated: we got enough reference to finish that feature.
2023-01-20 17:57:13 +01:00
ocornut
51c97a41aa
PlotHistogram, PlotLines: Passing negative sizes honor alignment like other widgets.
2023-01-18 15:13:23 +01:00
ocornut
482ac70a0b
Version 1.89.3 WIP
2023-01-11 15:52:30 +01:00
ocornut
d7c8516a4b
Version 1.89.2
2023-01-05 15:49:29 +01:00
ocornut
e06bbe05e1
Revert most/part of "Shortcut: added Shortcut() function and ImGuiInputFlags in public API + Demo." ( #456 , #2637 )
...
This reverts commit 0949acb6e6
.
# Conflicts:
# imgui.h
2023-01-05 15:21:48 +01:00
ocornut
03add24acf
Selectable: Internals: removed unused ImGuiSelectableFlags_DrawHoveredWhenHeld flag.
...
Needlessly introduced in baae057a
from WIP tables branch at the time, ended up unused by Tables.
A comment "I find it counter intuitive that hovering supersedes activation." in #3516 led me to this however this is not the cause of said issue.
2023-01-05 11:28:05 +01:00
Manuel Floruß
328695bd47
Provide a non-empty definition for IMGUI_DEBUG_PRINTF when disabled. ( #5978 )
...
Fixes MSVC warning C4390 when /W3 is specified. Reworked from original PR: (void)0 provides better codegen by do-while.
Similar to #5901
2023-01-02 16:02:56 +01:00
ocornut
59b63defe5
Misc shallow merge/sync from docking designed to faciliate cross-merging between docking and string_view.
2022-12-08 21:14:39 +01:00
ocornut
317b33d647
Tables: fixed matching width of synchronized tables when only some (not all) instances have a vertical scrollbar. ( #5920 )
2022-12-08 20:06:26 +01:00
ocornut
0949acb6e6
Shortcut: added Shortcut() function and ImGuiInputFlags in public API + Demo. ( #456 , #2637 )
2022-12-08 18:54:41 +01:00
ocornut
1dae7df26f
Misc: added GetItemID() in public API.
2022-12-08 18:45:04 +01:00
ocornut
fd0b3734d3
Tables, Nav, Scrolling: fixed scrolling functions and focus tracking with frozen rows and columns. ( #5143 , #4868 , #3692 )
2022-12-06 21:07:50 +01:00
ocornut
16cee3d009
Internals: tidying up and standardizing outer decoration size storage. (toward #5143 , #4868 , #3692 , #3518 )
...
This is not strictly required presently, but will be consistent with adding inner decoration sizes in next commit, as well as generally being sane.
Locking TitleBarHeight() / MenuBarHeight() values per-window probably have side-effects in ill-defined situation related to changing font size per window.
2022-12-06 21:07:47 +01:00
ocornut
f9ab2a0e9f
Refactor: moved UpdateKeyRoutingTable() to INPUTS section. renamed GetKeyVector2d() -> GetKeyMagnitude2d()
2022-12-06 12:21:17 +01:00
assiduous
66ad2ad539
Properly detect SSE instruction support in 32-bit MSVC build. ( #5943 )
2022-12-01 17:41:38 +01:00
Marc Delorme
a5e96ff99e
Make ImGuiInputTextState not depend on the implicit GImGui context. ( #5856 )
...
This commit is a preparation toward adding ImGui apis with explicit context
and making ImGui applications being able to use multiple context at the same time
whatever their concurrency model.
--
Prior to this commit ImGuiInputTextState::OnKeyPressed was depending on the
global context to know which font and font size to use, and if it should
follow MacOSX behaviors or not (c.f ConfigMacOSXBehaviors).
Instead of using the global context, this commit store the context as
attribute of ImGuiInputTextState. Since this state is forwarded to most
of text edit related function, it possible to access font, font size and
ConfigMacOSXBehaviors from everywhere.
NOTE: I have noticed a bug prior to that commit: if the font or font size
change while editing the same widget, the ImGuiInputTextState become invalid
and there is no code to handle this invalidation. Fixing this bug is out
of scope of current pull request.
# Conflicts:
# imgui_internal.h
2022-12-01 16:48:45 +01:00
ocornut
45736443be
Debug Tools: Metrics: added "Inputs" section, moved from Demo for consistency.
2022-11-30 20:14:52 +01:00
ocornut
87caf27ac4
Inputs, Scrolling: better selection of scrolling window when hovering nested windows and backend/OS is emitting dual-axis wheeling inputs. ( #3795 , #4559 )
2022-11-30 17:49:59 +01:00
ocornut
1a497c2499
Inputs, IO: reworked ImGuiMod_Shortcut to redirect to Ctrl/Super at runtime instead of compile-time. ( #5923 , #456 )
2022-11-29 19:07:50 +01:00
Teselka
969af7c773
Internal: Disable debug logs macro if IMGUI_DISABLE_DEBUG_TOOLS is defined. ( #5901 )
...
+ needed to rework clipper code to avoid "The 'then' statement is equivalent to the 'else' statement." PVS Studio warning.
2022-11-28 15:44:10 +01:00
ocornut
bd96f6eac4
Text: Fixed layouting of wrapped-text block when the last source line is above the clipping region. Regression added in 1.89. ( #5720 , #5919 )
...
+ Update version marker
2022-11-28 14:59:13 +01:00
ocornut
a8df192df0
Version 1.89.1
2022-11-24 21:24:33 +01:00
ocornut
ffe0abbfc2
Internals: added basic localization system ( #5895 )
2022-11-23 16:05:16 +01:00
ocornut
3a685749cb
ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left. ( #5912 )
...
Amend 54fb051e5
+ Internals: added IsKeyboardKey(), IsMouseKey() helpers.
2022-11-23 15:00:50 +01:00
ocornut
5bb2874940
Version 1.89.1 WIP
2022-11-16 17:55:27 +01:00
ocornut
83cee9e091
InputText: replaced some uses of SetKeyOwner() + IsKeyPressed() with Shortcut()
...
Which makes it easier to hook/disable those keys from outside if needed.
2022-11-16 17:09:14 +01:00
ocornut
81160fee56
Version 1.89
...
+ fix warning from a582d92
2022-11-15 15:20:36 +01:00
ocornut
7380b9816e
Scrolling: Exposed SetNextWindowScroll() in public API. ( #1526 )
2022-11-09 17:03:07 +01:00
ocornut
f0ad810553
Inputs: tweak comments, typos.
2022-11-08 22:41:45 +01:00
ocornut
637ddfce09
Inputs, Nav: made it possible to remap CTRL+Tab ( #4828 , #3255 , #5641 )
2022-11-08 20:38:49 +01:00
ocornut
6c9c4879d9
Inputs: made Shortcut() routing id defaults to current FocusScope ID. ( #456 , #2637 , #3724 )
...
One idea being that this value can be easily locked (for blind menus) or manipulated (for queries from outside).
2022-11-08 20:37:58 +01:00
ocornut
d576724bfd
Inputs: made ImGuiInputFlags_RouteFocused the default for Shortcut(). ( #456 , #2637 , #3724 )
2022-11-08 20:37:58 +01:00
ocornut
4d6a9ef93f
Inputs: added routing priorities. ( #456 , #2637 , #3724 )
...
- and ImGuiInputFlags_RouteUnlessBgFocused
- will be useful for blind menu handlers.
2022-11-08 20:37:58 +01:00
ocornut
7ff2d3353c
Inputs: added wip/experiment routing system: Shortcut(), RoutingFocused policy, SetShortcutRouting(). ( #456 , #2637 , #3724 )
...
- InputText() uses Shortcut().
2022-11-08 20:37:58 +01:00
ocornut
c59ebb2d71
Inputs: added basic Shortcut() function - no routing yet. ( #456 )
2022-11-08 20:37:58 +01:00
ocornut
4448d975d1
Inputs: added wip/internal Input Owner system. ( #456 , #2637 , #2620 , #2891 , #3370 , #4828 , #5108 , #5242 , #5641 )
...
- Added SetKeyOwner(), SetItemKeyOwner(), TestKeyOwner().
- Added new IsKeyXXX IsMouseXXX functions with ImGuID owner_id and flags.
- Obsoleted SetItemUsingMouseWheel(). (#2891 )
- Removed IsKeyPresseedEx() which was a recent internal addition 2022-07-08 deemed to be temporary exactly for this.
- Added ImGuiButtonFlags_NoSetKeyOwner, ImGuiButtonFlags_NoTestKeyOwner
- Added ImGuiSelectableFlags_NoSetKeyOwner.
- Added ImGuiInputFlags_LockThisFrame, ImGuiInputFlags_LockUntilRelease for for SetKeyOwner(), SetItemKeyOwner().
- Added ImGuiInputFlags_CondXXX values for SetItemKeyOwner().
2022-11-08 18:47:36 +01:00
ocornut
529cba19b0
Debug Tools: Added DebugLocateItem()/DebugLocateItemOnHover() to visually locate items when hovering a 0xXXXXXXXX value. ( #5855 , #2673 , #4631 )
2022-11-04 16:06:34 +01:00
ocornut
7109f32f96
Internals: tidying up and stripping more of focus scope code.
2022-11-04 12:19:23 +01:00
ocornut
9f66a3a9ed
Internals: rework FocusScope system, current scope doesn't need to be in window + child doesn't inherit.
...
Intended as part of work for input routing + blind menu processing shortcuts. Some of this commit will be stripped by next commit.
Intent was to sort windows along with focus scope to build a hierarchy, but for our needs we'd need a persistant one, so scrapping the idea. Not squashing this with next commit to keep a bit of history for future references.
2022-11-04 12:19:20 +01:00
ocornut
baea25e657
Drag and Drop: extracted a RenderDragDropTargetRect() function ( #1603 )
2022-10-25 15:54:22 +02:00
ocornut
431fc6a7f6
Internals: using ItemAdd() consistently for internal items: windows & tables resize grips/borders, ScrollbarEx().
...
This put an extra flag check in ItemAdd() but essentially reduce inconsistency with windows decorations not using this. Useful for debugging.
It however buries the info/blurs the line about what it means to not use ItemAdd() since they are now doing it much less.
2022-10-24 22:54:29 +02:00
ocornut
178aee4b1c
Debug Tools: Debug Log: add and use ImGuiTextLineIndex.
...
This is needed for next commit where we want to parse hovered Debug Log line.
2022-10-24 21:23:59 +02:00
ocornut
bc918404fe
Internals: using ImToUpper() since std one does too many things.
...
As a bonus side-effect may remove reliance on ctype.h (will see if CI complains)
2022-10-21 16:13:52 +02:00
ocornut
9a35bfea39
Internals: added temporary ImGuiItemStatusFlags_Visible (used internally - please do not use).
...
Used by BeginMenu() as I'm experimenting with blind menus honoring shortcuts.
Extra comments about KeyMap and ImGuiKeys
2022-10-21 14:57:10 +02:00
ocornut
8a44c31c95
Scrolling: Further reduce unrelease mouse-wheel locked window timer + misc refactor ( #2604 , #3795 , #4559 )
...
The refactor are designed to minimize the diff for changes needed for #3795
2022-10-06 20:17:28 +02:00
ocornut
85a368b58d
Fixed ImGuiWindowFlags_UnsavedDocument clipping label in docked windows with no close button. ( #5745 )
...
+ TabBar: starts displaying the unsaved document marker with a frame delay to match how close button is processed, otherwise the transition would be noticeable.
2022-10-04 18:03:56 +02:00
ocornut
f2a522d70d
ImDrawList: Not using alloca() anymore, lift single polygon size limits. ( #5704 , #1811 )
2022-09-30 15:58:55 +02:00
ocornut
fac8295d6e
IO: remove ImGuiInputEvent::IgnoredAsSame (revert part of 839c3100
), will filter earlier in next commit. ( #5599 )
...
Making it a separate commit as this leads to much indentation change.
2022-09-29 22:00:38 +02:00
ocornut
bd2355a047
Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple BeginMenu() call with same names). ( #1207 )
2022-09-29 19:25:26 +02:00
ocornut
3532ed1621
Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item in parent when the parent is not a popup. ( #5730 )
...
Replace BeginMenu/MenuItem swapping g.NavWindow with a more adequate ImGuiItemFlags_NoWindowHoverableCheck.
Expecting more subtle issues to stem from this.
Note that NoWindowHoverableCheck is not supported by IsItemHovered() but then IsItemHovered() on BeginMenu() never worked: fix should be easy in BeginMenu() + add test is IsItemHovered(), will do later
2022-09-29 18:44:19 +02:00
ocornut
d5d705069d
Various comments
...
As it turns out, functions like IsItemHovered() won't work on an open BeginMenu() because LastItemData is overriden by BeginPopup(). Probably an easy fix.
2022-09-29 18:44:19 +02:00
ocornut
d17627b9c6
InputText: leave state->Flags uncleared for the purpose of backends emitting an on-screen keyboard for passwords. ( #5724 )
2022-09-28 17:38:41 +02:00
ocornut
e0330c1696
Fonts, Text: Fixed wrapped-text not doing a fast-forward on lines above the clipping region. ( #5720 )
...
which would result in an abnormal number of vertices created.
2022-09-28 14:58:41 +02:00
ocornut
c261dac02f
Demo: moved ShowUserGuide() lower in the file, to make main demo entry point more visible + fix using IMGUI_DEBUG_LOG() macros in if/else.
2022-09-26 14:56:36 +02:00
ocornut
fd408c9790
Renamed and merged keyboard modifiers key enums and flags into a same set:. ImGuiKey_ModXXX -> ImGuiMod_XXX and ImGuiModFlags_XXX -> ImGuiMod_XXX. ( #4921 , #456 )
...
Changed signature of GetKeyChordName() to use ImGuiKeyChord.
Additionally SetActiveIdUsingAllKeyboardKeys() doesn't set ImGuiKey_ModXXX but we never need/use those and the system will be changed in upcoming commits.
2022-09-26 10:43:26 +02:00
ocornut
f359dca0dc
Misc input related changes to facilitate upcoming merges.
2022-09-22 19:00:30 +02:00
ocornut
4b522e145c
Experiment: ImGuiKey is now a typed enum, allowing ImGuiKey_XXX symbols to be named in debuggers. ( #4921 , #4537 )
...
May affect binding generators.
2022-09-20 12:42:29 +02:00
ocornut
cb48c81a44
Tabs: Fix initial tab state. Amend 3e6f948( ( #5572 )
...
Somehow this only triggers a failing test in docking branch.
2022-09-09 20:47:27 +02:00
ocornut
edcd5b113e
Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. ( #5548 )
...
This incorrect pattern has been mentioned or suggested in: #4510 , #3355 , #1760 , #1490 , #4152 , #150
2022-09-02 16:37:35 +02:00
Rokas Kupstys
b3ea01d86f
Menus: Fix sub-menu inhibition stopping working in some cases. (Amend WIP) ( #2517 , #5614 , noticed in #5546 )
...
Amend bda2cde6
Fixes the case where following menu hover sequence results in incorrect RestoreNavWindow (previously SourceWindow) pointing to opened sub-menu:
1. Hover "Menu -> Options" - Open ##Menu_01 window
2. Hover "Menu -> Colors" - SourceWindow incorrectly points to ##Menu_01 window
2022-09-01 17:02:46 +02:00
ocornut
e13913ed57
IsItemHovered: Added ImGuiHoveredFlags_DelayNormal, ImGuiHoveredFlags_DelayShort, ImGuiHoveredFlags_NoSharedDelay. ( #1485 )
...
IsItemHovered() can't have a non-zero default, but higher-level tooltip helpers may enable a different default later.
2022-08-24 21:32:13 +02:00
ocornut
07b9999de9
Debug Log: added 'Clipper' events logging.
2022-08-23 15:40:07 +02:00
ocornut
d357e8504b
TestEngine: revert part of 5b0510c
as IMGUI_TEST_ENGINE_ITEM_ADD() woul see an erreneous hierarchy.
...
+ Fix typo (#5600 )
2022-08-22 14:36:32 +02:00
ocornut
ef6ba0d846
Misc: allowing override of IM_TABSIZE ( #5593 )
2022-08-20 19:54:57 +02:00
ocornut
839c31006b
Debug Log: Added IO events logging.
2022-08-08 11:58:57 +02:00
ocornut
0a4ddd7246
Fix being unable to mouse wheel while dragging a payload (fix 1480bc5
, #4921 , #2891 )
2022-08-03 22:02:00 +02:00
ocornut
4a2ae06ca4
Changed signature of ImageButton() function: Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. ( #5533 , #4471 , #2464 , #1390 ).
...
Also removed frame_padding parameter from ImageButtonEx(), amend e0ec69d8
.
2022-08-03 21:04:33 +02:00
ocornut
2d38bc99b3
Internals: renamed recently added ImGuiInputReadFlags to ImGuiInputFlags. (Amend 8b8a61b
)
2022-07-22 17:05:34 +02:00
ocornut
1480bc5d4e
Added ImGuiKey_MouseXXX aliases. ( #4921 ) Reworked SetItemUsingMouseWheel() to use this for ActiveId. ( #2891 )
...
The rework of SetItemUsingMouseWheel() is half-complete since there's a HoveredIdUsingMouseWheel component. This will however be totally cleaned when we transtion to InputOwner system.
2022-07-08 18:32:25 +02:00
ocornut
105bb3ef8a
Legacy: clear g.ActiveIdUsingNavInputMask when active id is clear + Internals: added helpers GetKeyChordName(), ImGuiModFlags_All.
...
Amend 8b8a61b
2022-07-08 17:51:46 +02:00
ocornut
8b8a61bdf9
Removed io.NavInputs[] and ImGuiNavInput enum. Kept inline redirection code. ( #4921 , #4858 , #787 , #1599 , #323 )
2022-07-08 16:02:07 +02:00
ocornut
a7a25ee19d
Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift. ( #2673 )
2022-07-07 14:18:08 +02:00
ocornut
4711b9b05a
Add trailing commas to enum (to simplify the diff/patch of further additions) ( #4537 )
...
Possible since we are now C++11 + fix warning in GetNavInputAmount().
2022-07-06 20:39:39 +02:00
ocornut
90ef327882
Reordered keys representing directions to follow a consistent L/R/U/D order everywhere. ( #2625 , #4921 , #3724 )
...
Amended to avoid static analysis false positive.
2022-07-06 17:48:01 +02:00
ocornut
f9ccdba352
Nav: Fix regression 93f02ee
+ Internals: Remove ImGuiNavReadMode_Pressed, ImGuiNavReadMode_Released.
...
Toward using keys.
2022-07-06 17:03:50 +02:00
ocornut
93f02ee0c6
Nav: Fixed moving window with gamepad or keyboard when running at very high framerate + removed ImGuiNavDirSourceFlags_RawKeyboard.
2022-07-06 16:46:57 +02:00
ocornut
0b2da67912
Internals: clarified that GetInputTextState(0) can not return a pointer. Replaced a use of __APPLE__ with io.ConfigMacOSXBehaviors.
2022-07-05 14:40:09 +02:00
ocornut
467a1cd4a5
Misc: io.Framerate moving average now converge in 60 frames instead of 120. ( #5236 , #4138 )
2022-07-01 17:09:58 +02:00
ocornut
0afc6cd310
Internals: InputTextEx() renames for correctness. enter_pressed -> validated, is_validate_enter -> is_enter_pressed
2022-06-30 15:31:42 +02:00
ocornut
873e9d35ac
Internals: renamed TreeNodeBehaviorIsOpen() to TreeNodeUpdateNextOpen(). Added internal TreeNodeSetOpen(id). ( #5423 )
2022-06-28 16:11:31 +02:00
ocornut
24dfe6db8a
Version 1.89 WIP
2022-06-27 16:55:55 +02:00
ocornut
088ddef98a
Tables: extracted some code into TableBeginContextMenuPopup() for easier reuse for appending into context menu.
2022-06-27 16:51:08 +02:00
ocornut
9aae45eb4a
Version 1.88
...
(fix "Show Debug Log" checkbox in Metrics window)
2022-06-21 18:11:50 +02:00
ocornut
c4b9101759
TabBar: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their initial width more precisely.
...
Has been the case before but adding support for SetNextItemWidth() #5262 made this more noticeable.
2022-06-21 17:13:13 +02:00
ocornut
4b97296148
TabBar: TabItem() now reacts to SetNextItemWidth() and SetNextItemOpen(true). ( #5262 )
2022-06-21 17:13:12 +02:00
ocornut
d3fd2630b7
Sliders: An initial click within the knob/grab doesn't shift its position. ( #1946 , #5328 ) + Adjust default GrabMinSize.
2022-06-20 18:13:10 +02:00
ocornut
dd28500835
Debug: Add more log. Reworked IMGUI_DEBUG_PRINT IMGUI_DEBUG_PRINTF. Added internal IsDragDropActive() helper.
...
DebugLog() output to TTY by default.
Amend 1d6e34f
.
2022-06-15 11:31:19 +02:00
ocornut
2ed9e21eba
Nav, Internals: wrap changes to g.NavWindow into a helper function to help track/log changes.
...
Amend 076d8fc
. Eventually we should REALLY clean up the SetNavWindow SetNavID SetFocusID FocusWindow fiasco.
2022-06-13 19:05:55 +02:00
ocornut
1d6e34f3f9
Debug: Added ShowDebugLogWindow().
...
Internal: renamed old IMGUI_DEBUG_LOG() to IMGUI_DEBUG_PRINT().
Amended once.
2022-06-13 19:05:55 +02:00
Rokas Kupstys
0b1bcfcc20
Menus: Separate menu sets by nav layer. ( #3496 , #4797 ) + Demo: Remove incorrect and useless suggestion to use PushID().
...
Fixes a common case where opening menu in one nav layer and hovering a menu in another nav layer would open that menu without a click.
2022-06-08 17:17:54 +02:00
ocornut
23a785aeb3
Internals: wrapped used of g.TempBuffer into ImFormatStringToTempBuffer/ImFormatStringToTempBufferV helpers.
...
This leaves us room for growing the buffer if needed, and gives us a resizable buffer available for other work.
2022-06-07 19:20:03 +02:00
ocornut
64d6c30562
InputText: Fixed an undo-state corruption issue when editing buffer before reactivating item. ( #4947 ) + Metrics: Added "InputText" section.
2022-06-07 15:34:21 +02:00
ocornut
7bf07d2526
Renamed CaptureMouseFromApp() and CaptureKeyboardFromApp() to SetNextFrameWantCaptureMouse() and SetNextFrameWantCaptureKeyboard(). Added demo. ( #5304 , #4831 , #4480 , #533 )
2022-05-23 11:22:46 +02:00
ocornut
9e0517a134
DrawList: Fixed divide-by-zero or glitches with Radius/Rounding values close to zero. ( #5249 , #5293 , #3491 )
...
Amend 8ed34af6f8
2022-05-13 17:19:51 +02:00
ocornut
9779cc2fe2
Internals: shallow changes to simplify diff of upcoming commits. Should have no side-effect.
2022-05-06 14:20:01 +02:00
ocornut
6d27fecce1
Debug: added DebugTextEncoding() to help diagnose between text encoding issues and font loading issues. Simplified code + extracted DebugNodeFontGlyph().
...
Helper to diagnose issues such as #4866 , #3558 , #3436 , #2233 , #1880 , #1780 , #905 , #832 , #762 , #726 , #609 , #565 , #307 )
2022-05-03 19:23:54 +02:00
ocornut
3e5dde9a26
Tables: Fixed incorrect auto-fit of parent windows when using non-resizable weighted columns. ( #5276 )
2022-05-02 16:45:27 +02:00
ocornut
314c7bd12f
Internals: renamed ImGuiInputReadMode to ImGuiNavReadMode (internals) to avoid ambiguity with upcoming flags. + minor tweak
2022-04-28 17:29:47 +02:00
ocornut
5b29d14783
Layout: Fixed mixing up SameLine() and SetCursorPos() together. SameLine() is a stateful.
...
+ minor unrelatedcomments.
2022-04-22 17:48:06 +02:00
ocornut
28b2089ee4
Internals: moved ItemSize() variant to inline + comment. + Tidying up todo list ( #5191 )
2022-04-13 21:48:21 +02:00
ocornut
6d15a506fa
Internals: removed GetIDNoKeepAlive() now that it is the same as GetID(). ( #5181 )
...
Amend 9038678
2022-04-12 14:49:21 +02:00
ocornut
2c03aac6d3
Renamed ImGuiKeyModFlags to ImGuiModFlags (Breaking but technically never advertised type)
2022-04-05 15:45:00 +02:00
ocornut
c521883be4
Sliders, Drags: Fixed manual input when using hexadecimal display format string. ( #5165 , #3133 )
...
InputScalar: Fixed manual input when using %03d style width in display format string.
(amended once)
2022-04-04 18:42:04 +02:00
ocornut
508c9aaf60
Sliders, Drags: Fixed using hexadecimal display format strings (pretty much never worked). ( #5165 , #3133 )
...
Ditched unnecessary code. When transitioning from float in 3e8087458
we added an unnecessary path there, which evolved in c5fb92955
.
2022-04-04 14:43:30 +02:00
ocornut
f5c5926fb9
Internals: remove obsolete variants of RenderArrow(), RenderBullet(), ImHash() + misc comments.
2022-03-29 15:43:47 +02:00
ocornut
2747a8ca40
Turned ImVec2 to const ref to RenderChar(), RenderText(), ColorButton(), PushClipRect(). for consistency. Comments about polygon filling winding order.
2022-03-29 12:13:31 +02:00
ocornut
3587ee492b
Viewports: store Viewport field in ImGuiWindow to facilitate using code accross branches + fix PVS warnings.
2022-03-25 15:40:20 +01:00
ocornut
16ddc1698d
Fixed creating multiple-context (regression in 28ba54a
). ( #5135 )
2022-03-24 11:01:46 +01:00
ocornut
28ba54a32a
Internals: add AddSettingsHandler(), RemoveSettingsHandler().
2022-03-14 10:23:30 +07:00
ocornut
fd06ed833b
Misc: tweaks + fix warnings on backends withtout -wno-memaccess ( #4995 , #5104 )
2022-03-13 17:57:32 +07:00
ocornut
0f14933577
Tables: Fixed incorrect border height used for logic when resizing one of several synchronized instance of a same table ID, when instances have a different height. ( #3955 , #3565 )
2022-03-01 18:47:03 +01:00
ocornut
2dfa71fad5
Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate. Using KeyModAlt. Removed KeyModsPrev.
2022-02-16 20:08:58 +01:00
ocornut
5854da10e6
Declare other structures as constexpr ( #4995 ) + rename ImGuiInputEventType_Char to ImGuiInputEventType_Text for consistency with event structure.
2022-02-11 12:29:55 +01:00
ocornut
aa79d0cd2f
Stack Tool: Added option to copy item path to clipboard. ( #4631 )
2022-02-08 16:36:54 +01:00
ocornut
88de982071
Version 1.88 WIP
2022-02-08 14:45:26 +01:00
ocornut
97b1abd6dd
Internals: rework RenderMouseCursor() signature so we can use it in docking branch more naturally.
2022-02-08 12:22:46 +01:00
ocornut
c71a50deb5
Version 1.87
2022-02-07 18:16:54 +01:00
ocornut
6f73dbea80
TestEngine: submit window data to item system.
2022-02-01 15:20:32 +01:00
ocornut
35e197f413
TestEngine: fixed InvisibleButton() and ArrowButton() not calling the info macro.
2022-02-01 11:52:38 +01:00
ocornut
64d910ad37
Removed IMGUI_API from inline templated classes. ( #4962 )
2022-01-29 18:10:36 +01:00
ocornut
49e38a5b32
Revert moving ImGuiKeyModFlags to internal.h (amendc906c65)
2022-01-28 15:53:09 +01:00
ocornut
c906c65cac
(BREAKING) Replaced AddKeyModsEvent() added by 790132a
in favor of unified key enum system. Backends: update most. ( #4921 , #4858 )
...
Sorry this is an unusual breaking but since we are WIP it is a good time to make a correction.
2022-01-27 17:46:48 +01:00
ocornut
8555335935
Shallow alignment of ImGuiKey stuff + moving some in internals. Internals: add offset to ImBitArray<>, simpify ActiveIdUsingKeyInputMask.
2022-01-25 18:11:34 +01:00
ocornut
cff0342454
Internals: moved lines into a Inputs section.
2022-01-21 17:49:04 +01:00
ocornut
62d6be3747
IO: Removed ImGuiInputSource from public api for now, unnecessary. ( #4858 , #787 )
2022-01-20 17:39:25 +01:00
ocornut
f33bb99821
IO: added AddKeyAnalogEvent() and support for ImGuiKey_GamepadXXXX. ( #4858 , #787 )
2022-01-20 17:24:52 +01:00
ocornut
26d04c948f
Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). ( #4918 ).
2022-01-19 18:03:36 +01:00
ocornut
97b1ffcb3b
IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData().
2022-01-19 15:42:27 +01:00
ocornut
91ae56af45
Removed support for legacy arithmetic operators (+*/) when inputing text into a slider/drag. ( #4917 , #3184 )
2022-01-19 15:10:42 +01:00
ocornut
90a6961638
IO: apply same flooring as UpdateMouseInputs() in dupe event processing. ( #4858 ) + provision for test engine.
2022-01-17 18:10:51 +01:00
ocornut
7374b96f5c
IO: Added input queue. ( #4858 , #2787 , #1992 , #3383 , #2525 , #1320 )
2022-01-17 17:36:55 +01:00
ocornut
eb823655af
Removed support for pre-C++11 compilers. We'll stop supporting VS2010. ( #4537 )
...
Build all
2022-01-17 11:54:11 +01:00
ocornut
290c51735e
Fixed warning in ImFloorSigned(). ( #4889 )
2022-01-12 14:18:34 +01:00
ocornut
956e03009a
Backends: OSX: Build fIx. Made GetKeyName() input tolerant. Internals: added GetNavInputName().
2022-01-11 18:48:16 +01:00
ocornut
bf08c13e9b
Inputs: Extra Keys / AddKeyEvent(): bidirectional mapping, basic CI, simplify backends, asserts on misuses, tested backward compat. ( #2625 , #4858 , #2787 )
...
(edit: simplified backends merged into previous commits to make history clearer)
2022-01-10 15:09:56 +01:00
thedmd
3b66929301
Inputs: Extra Keys / AddKeyEvent(): Added ImGuiKey values, io.AddKeyEvent(), GetKeyName(), IMGUI_DISABLE_OBSOLETE_KEYIO. Obsoleted GetKeyIndex(), io.KeyMap[], io.KeysDown[]. ( #2625 , #4858 , #2787 )
2022-01-10 15:09:56 +01:00
ocornut
2706c9d66e
Platform IME: reworked internals to simplify adding new features.
2022-01-05 13:47:20 +01:00
ocornut
89a28209e8
Version 1.87 WIP + Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init, added in 1.86 ( #4468 , #4830 )
2021-12-26 20:02:02 +01:00
ocornut
980deb4c9e
Add missing include guard to avoid declaring ImFontAtlasGetBuilderForStbTruetype() function.
...
https://github.com/cimgui/cimgui/issues/193
https://github.com/imgui-rs/imgui-rs/pull/582
2021-12-26 19:51:10 +01:00
ocornut
512c54bbc0
Version 1.86
2021-12-22 15:31:13 +01:00
ocornut
1c4066cd9e
Internals: UpdateWindowInFocusOrderList: amend a528398
to fix docking. ( #3496 , #4797 )
2021-12-15 14:27:56 +01:00
ocornut
11638fdf7d
Menus: reuse more menu windows when stacked over popups.
...
This is actually mostly aimed at ensuring the _ChildWindow flag on menu window doesn't vary as this would cause issues with our current g.WindowsFocusOrder[] scheme
2021-12-13 19:35:16 +01:00
Rokas Kupstys
b38af0f522
Popups: Fix popups being closed by newly appearing windows. ( #4317 )
...
* Popups/modals now remain open when new windows are created from within popup/modal begin stack.
* Modals are not closed when new window appears behind active modal.
Tested by "window_popup_interruptions"
2021-12-07 15:52:13 +01:00
ocornut
027a7ba3eb
Clipper: use line size instead of cursor comparaison when range are large. ( #3609 , #3962 + https://github.com/ocornut/imgui_club/issues/20 )
2021-12-06 17:17:43 +01:00
ocornut
a76bc52da5
Window, Clipper: store initial precision loss and apply in clipper. ( #3609 , #3962 + https://github.com/ocornut/imgui_club/issues/20 )
2021-12-06 16:19:47 +01:00
ocornut
6e141a9cae
Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) + clipper tweaks ( #3609 , #3962 + https://github.com/ocornut/imgui_club/issues/20 )
...
This does NOT fix all problems with large ranges and floating point precision, it merely attenuate them.
2021-12-06 12:09:38 +01:00
ocornut
23ef6c149e
Reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame (backported 1dc3af3
from docking)
2021-12-03 19:21:39 +01:00
ocornut
da3a36eefd
Backport from docking branch: minor stuff.
...
Fixed software mouse cursor being rendered multiple times if Render() is called more than once.
2021-12-03 19:11:58 +01:00
ocornut
f087a5b856
Metrics: Added a node showing windows in submission order and showing the Begin() stack.
2021-11-30 16:04:19 +01:00
ocornut
9d704d99d3
Internals: wrapped ImQsort() in an inline function + added a define guard.
2021-11-30 12:59:00 +01:00
averne
cb5c73f64a
Fix: IM_DEBUG_BREAK macro on ARM GCC ( #4767 )
2021-11-29 00:05:57 +01:00
ocornut
65f4be1a10
InputText: Internals: moved "apply_new_text" application code to reduce noise in a future commit (will be for #4714 ) + removed unused fields.
...
The move would ideally be no-op. technically we now clear state->Flags before calling ResizeCallback but those are unrelated. The 2 unused fields were incorrectly added by 24ff25981
.
2021-11-25 15:12:23 +01:00
Rokas Kupstys
4d9a3b19d5
Internals: Implement a continuable IM_DEBUG_BREAK on GCC for common archs. ( #2673 )
2021-11-22 12:35:07 +01:00
ocornut
f8a806ad9f
Tooltips, Internal: (Breaking) swapped parameter order to accomodate for future tooltip api rework.
2021-11-10 17:53:58 +01:00
ocornut
eb02dcf87f
Nav: enable move/resize window with keyboard in Ctrl+Tabbing windowing menu even without _NavEnableKeyboard. ( #4023 , #787 ).
2021-11-08 18:42:07 +01:00
ocornut
1a7526dcd4
Nav, Tabbing: refactor tabbing system to support clipped items, scrolling, using nav queries. ( #4449 )
...
Not using counter/modulo anymore and special provisions to handle tab wrapping with ImGuiListClipper. Wrapping may be done better as a next-frame forwarded request.
Also one extra step toward #3949 #3985
2021-11-04 20:48:12 +01:00
ocornut
93cccd27f6
Clipper: bunch of rework. ( #3841 , #1725 )
...
- Focused/NavId now always included in display range.
- Any number of steps (while preserving zero-alloc policy).
- Non contiguous ranges for nav processing
- Moved new fields internally (+ moved StepNo away from sight so it doesn't get missused).
- Generally tweaks/refactors.
2021-11-04 14:05:14 +01:00
ocornut
a67f7dce31
Nav: relative rectangle positions are now stored relative to CursorStartPos to be independent of scrolling. Will facilitate rework of clipper ( #3841 )
...
+ Extracted code into NavUpdateCreateWrappingRequest()
+ Fix for PVS in NavUpdate() assigning g.NavMousePosDirty twice.
2021-10-27 14:18:03 +02:00
ocornut
8361ed1f54
Nav: wrap abs<>rel rectangle conversions before we attempt to switch the reference point from window->Pos to window->DC.CursorStartPos. This commit should have no effect.
...
Current point makes rectangle invalid right after a scroll, for interactive actions it's rarely a problem but e.g. clipper will want to use g.NavID rect rel while scrolling. (#3841 )
2021-10-27 12:28:45 +02:00
ocornut
e3bd9434b1
1.86 WIP + internals: tweaks table temp data code.
2021-10-14 16:58:14 +02:00
Rokas Kupstys
be03b8ff93
Misc: Fix build with MinGW when using IMGUI_API.
2021-10-12 16:43:28 +02:00
ocornut
55d35d8387
Version 1.85
2021-10-11 19:24:25 +02:00
ocornut
44f801186f
SetItemDefaultFocus() use ScrollToRectEx(), don't tab when Alt is held either, TabItemEx() uses ItemAdd's extra_flags, misc comments.
2021-10-08 15:24:54 +02:00
ocornut
31d033c9d8
Nav: refactor SetKeyboardFocusHere() into using Nav facility. Fix it for clipped items. ( #343 , #4079 , #2352 , #432 )
...
+ Removed references to counter used by previous implementation of SetKeyboardFocus functions (the TabStop ones will be removed after)
2021-10-06 18:42:11 +02:00
ocornut
2de96c4bd5
Stack Tool: Added Stack Tool (ShowStackToolWindow() function and available from Demo and Metrics window). ( #4631 )
2021-10-06 17:47:27 +02:00
ocornut
8f495e5543
Internal: added ScrollToItem() upcoming replacement to ScrollToBringRectIntoView() + ImGuiScrollFlags (WIP) ( #3692 , #3208 , #2812 , #4242 , #2900 )
2021-09-29 17:13:45 +02:00
ocornut
fc4988ffb0
Added ImGuiFocusedFlags_NoPopupHierarchy and ImGuiHoveredFlags_NoPopupHierarchy (followup #4527 )
2021-09-24 15:39:38 +02:00
ocornut
24a77824f2
Added ClosePopupsExceptModals() helper, unused for now (aimed at user being able to close popups on app focus loss, not necessarily a suitable default)
2021-09-22 15:50:40 +02:00
Rokas Kupstys
30546bc0e7
ColorEdit: Fix multiple issues. ( #4014 )
...
* Change g.ColorEditLastColor type to ImU32 and store RGB color value.
- Fixes inability to change hue when saturation is 0. (#4014 )
- Fixes edgecases where lossy color conversion prevent restoration of hue/saturation.
- Fixes hue value jitter when modifying color using SV square.
* Fix hue resetting to 0 when it is set to 255 by explicitly restoring hue if it is 0 and previous value was 1.
* Further reduce hue jitter by restoring hue when color is modified using SV square.
2021-09-21 15:10:07 +02:00
ocornut
3973de7933
Internals: removed last parameter to IsClippedEx() + fix PVS studio warnings.
2021-09-16 18:07:17 +02:00
ocornut
2d0a6a4969
Misc: moved StacSizeOnBegin out of window instance into window stack data.
2021-09-15 15:36:03 +02:00
ocornut
66cd21db88
Misc: extracted ErrorCheckEndWindowRecover() out of ErrorCheckEndFrameRecover(). ( #1651 )
2021-09-15 15:26:29 +02:00
ocornut
d366694062
Disabled: Added assert guard for mismatching BeginDisabled()/EndDisabled() blocks. ( #211 ) + Added asserts for missing PopItemFlag() calls. Added both to ErrorCheckEndFrameRecover ( #1651 )
2021-09-15 15:26:29 +02:00
ocornut
d9b427cce0
Nav: clarified/renamed NavInputId as NavAcivateInputId, added flags shared by both.
...
(this commit should have no visible side effect but is designed to introduce the followup commit refactoring SetKeyboardFocusHere into using a Nav request)
2021-09-07 18:10:31 +02:00
ocornut
ade4c15eea
Nav: Tidying up, renaming + update AnyRequest flag in NavMoveRequestSubmit().
2021-09-03 16:35:41 +02:00
ocornut
5ee40c8d34
Nav: always disable highlight if nav is disabled, fix for IMGUI_DEBUG_NAV_SCORING, minor renaming.
2021-09-02 12:05:32 +02:00
ocornut
3d9d3b49ae
Internals: folded ImGuiItemAddFlags into ImGuiItemFlags. ImGuiItemAddFlags_Focusable > ImGuiItemFlags_Inputable. One step in the big nav/tab/focus rework.
...
Bonus simplified Selectable() handling of its custom disabled flag. (#211 )
2021-09-01 14:46:08 +02:00
ocornut
73a5e82e04
Nav: removed parameters from NavScoreItem(), NavProcessItem(), NavApplyItemToResult(): made little sense / misleading because pulling from other current state anyway.
...
Will readd in a more thorough manner is actually needed.
2021-09-01 14:13:40 +02:00
ocornut
a735a8c084
Nav: storing NavRect in LastItemData. Fix race condition where framed items (Rect != NavRect) calling SetFocusID() would store the wrong NavRectRel until next frame
...
(haven't dugged in the possible side-effects of that race condition)
2021-09-01 12:12:51 +02:00
ocornut
ee351d3548
Nav: move code into NavMoveRequestSubmit(). NavApplyItemToResult() takes absolute rect., comments
2021-09-01 12:06:15 +02:00
ocornut
7b913db1ce
Nav: split NavMoveRequest into NavMoveSubmitted + NavMoveScoringItems to allow operation to defer a move request and provide result immediately + fix regular scoring needlesly running during init + some renaming.
2021-08-31 18:19:52 +02:00
ocornut
7c4ffe490d
Menus: added internal's BeginMenuEx() matching MenuItemEx() with icon parameter. (amend f8fae022
)
2021-08-30 19:54:42 +02:00
ocornut
ccfb20095e
Nav: small refactor of forwarding, clarified that MoveDir only set when RequestActive, removed one indent level in NavUpdatePageUpPageDown().
2021-08-27 20:48:01 +02:00
ocornut
4351febe9f
Nav: moved enums/struct declarations in imgui_internal.h
2021-08-27 18:01:38 +02:00
ocornut
20a1edef89
Nav: made EndMenuBar() use NavMoveRequestForward() for consistency. Moved forward clearing to NavMoveRequestApplyResult(). Improved/fixed comments.
2021-08-27 17:21:10 +02:00
ocornut
84890a3074
Nav: simplify wrap requests code (may soon be useable for tabbing)
2021-08-27 12:31:11 +02:00
ocornut
51d841dcf3
Fix warnings and remove IM_RETURN ( #4470 )
...
Amend f24abbc4
2021-08-24 14:37:11 +02:00
ocornut
0649f750b4
Version 1.85 WIP
2021-08-23 15:31:06 +02:00
ocornut
d2ffbd9b86
Version 1.84
...
Fix PVS Studio false positive //-V1020
Fix missing #ifndef for IMGUI_IMPL_OPENGL_LOADER_CUSTOM path
2021-08-20 18:03:55 +02:00
ocornut
df2319a854
Small optimizations to BeginDisabled() to allow frequent calls ( #211 )
...
Not intended for frequent calls but I suspect some people will do it either way...
Rough/indicative: measured 0.1 ms for 5000 calls in release, 0.5 ms in debug on my desktop windows.
2021-08-20 17:19:18 +02:00
ocornut
c543d93af1
Expose BeginDisabled()/EndDisabled() in public API. Add to demo. ( #211 )
2021-08-20 16:34:43 +02:00
ocornut
f24abbc47d
Fix various warnings ( #4442 )
2021-08-18 12:38:24 +02:00
ocornut
3d4d1b8553
Allow imgui_internal.h to be included before imgui.h
...
(practically speaking it allows me to use StructLayout without hassle)
2021-07-26 21:01:32 +02:00
ocornut
e362c5af48
Internals: ColorEdit: renamed some internal masks to match our common coding style.
...
ImGuiColorEditFlags__DisplayMask > ImGuiColorEditFlags_DisplayMask_, ImGuiColorEditFlags__OptionsDefault > ImGuiColorEditFlags_DefaultOptions_, ImGuiColorEditFlags__DataTypeMask > ImGuiColorEditFlags_DataTypeMask_ etc.
2021-07-26 20:44:59 +02:00
ocornut
90bf996e1a
Internals: widgets always read back from g.LastItemData.InFlags (so we can now modify per-item disable state more easily). ( #211 )
2021-07-19 21:26:34 +02:00
ocornut
6b8a059fc9
Internals: moved LastItem data to a shared structure (instead of one per window)
...
(should be a no-op as we are restoring things in Begin/End. Toward faciliate backup/restore of LastItemData and favor pulling from here instead of CurrentItemFlags, toward #211 )
2021-07-19 21:25:47 +02:00
ocornut
fb4bbeb033
Disabled: fixed IsItemHovered() if popped disabled state after item, or when using Selectable_Disabled. ( #211 )
2021-07-12 15:43:17 +02:00
ocornut
ba1c8464ef
Internals: Removed ImGuiButtonFlags_Disabled (which had inconsistent behavior) in favor of ImGuiItemFlags_Disabled. Selectable()'s ImGuiSelectableFlags_Disabled now uses the later. ( #211 )
2021-07-09 19:54:37 +02:00
ocornut
cc40ae2101
PushDisabled(): added bool + clarify support for stacked disabled ( #211 )
2021-07-08 19:21:59 +02:00
ocornut
f8fae02270
Menus: rework to allow for an icon column (not yet exposed, but usable via internals) + fix menus being affected by style.SelectableTextAlign ( #126 )
2021-07-08 15:05:02 +02:00
ocornut
696d3e056e
Internals: Menus: Naming offset field + fix spacing/offset computation to handle more offsets.
2021-07-07 20:47:37 +02:00
ocornut
3512f2c2c2
Internals: Menus: minor tidying up + renaming in ImGuiMenuColumns + removing extraneous offset field which is always zero + using smaller types.
...
sizeof() 36 -> 20
2021-07-07 20:16:55 +02:00
ocornut
b5a2bd1a5b
Backends: amends to 1db1066 + merge minor bits from docking incl SetActiveIdUsingNavAndKeys().
...
No need to clear fields before deletion. DX12: renamed to match docking branch.
2021-06-29 15:25:19 +02:00
ocornut
0aeb978e61
Comments + adding spacing in headers because VS IDE parser display blocks so badly. Add helper in internal's ImGuiInputTextState. ( #4275 )
2021-06-28 11:58:37 +02:00
ocornut
f0c4d609a6
Default window focus scope not 0. Added ImGuiSelectableFlags_SelectOnNav with comments and caveats. ( #1861 , #4242,)
...
Focus scope default value: amend 7ee623d9
a5041c88
2ebe08be
2021-06-21 17:47:45 +02:00
ocornut
98876b4dc2
Added IMGUI_DISABLE_SSE ( #4250 , #4091 )
2021-06-21 14:52:01 +02:00
ocornut
7c44d067e8
Tables: Fix invalid data in TableGetSortSpecs() when SpecsDirty flag is unset. ( #4233 )
...
Amend 4ce6bd8cf
, but with usage of ImPool<> bug existed even before 4ce6bd8c
. Would only materialize if user called (ableGetSortSpecs and used data without checking SpecsDirty.
2021-06-17 15:18:11 +02:00
ocornut
dc676236f0
Minor optimization, removing do/while(0) patterns in some cases as they translate to runtime
...
(e.g. translate to xor + test + jne in VS x84, unnecessary)
2021-06-15 17:05:25 +02:00
ocornut
0cca0d1617
Internals/experimental: BeginComboPreview(), EndComboPreview(). ( #4168 , #1658 )
...
(amended)
2021-06-15 15:27:28 +02:00
ocornut
61f4aec868
Added PushDisabled(), PopDisabled() currently only exposed in imgui_internal.h ( #211 )
2021-06-09 15:28:59 +02:00
ocornut
6ee398ac2b
Tables: Added ImGuiTableColumnFlags_Disabled acting a master disable over (hidden from user/context menu). ( #3935 , #3740 )
2021-06-07 15:18:20 +02:00
ocornut
2887a6e07d
Tables: made TableUpdateBorders() use IsVisibleX flag. comments.
2021-06-07 10:27:11 +02:00
ocornut
94b680e830
Internals: fixed ImPool:: iteration, rename GetBufSize to GetMapSize. Amend c6c82b9f
2021-06-04 17:27:20 +02:00
ocornut
c6c82b9f1d
Internals: fixed iterating ImPool, fix after use of TableRemove() (was only used by TestEngine)
...
Merge metrics bits from 646c87359
2021-06-03 18:36:43 +02:00
ocornut
060b6ee7d1
Internals: Combo: Extracted into a BeginComboPopup() function. ( #4168 )
...
Renamed frame_bb > bb locally.
2021-05-28 17:45:07 +02:00
ocornut
5b4bc985ad
Nav, Combo: removed unnecessary window->LastNavIds[] assignment in combo code. + minor renaming.
2021-05-28 17:27:52 +02:00
ocornut
79e18896fe
TabBar: Fixed using more than 32 KB-worth of tab names. ( #4176 )
2021-05-27 12:01:00 +02:00
ocornut
04fd5072fb
Fix warnings with VS2019 in C++20 mode ( #4173 )
2021-05-25 18:43:52 +02:00
ocornut
c2bf4abfa1
Internals: Added ImTextCharToUtf8() helper. Added "out_" markers in more UTF-8 functions. Metrics: Fonts: Fixed display of EllipsisChar by feeding proper utf-8.
2021-05-25 13:37:27 +02:00
ocornut
3a941f95e9
Metrics, Demo: moved font details display to metrics code. ( #4171 )
2021-05-25 13:37:27 +02:00
ocornut
e31d13fa76
Version 1.84 WIP
2021-05-25 13:36:53 +02:00
ocornut
ad5d1a8429
Version 1.83
2021-05-24 17:39:25 +02:00
ocornut
c708299ca9
Docs: Improvements to description of using colored glyphes/emojis. ( #4169 , #3369 ) + Add Fonts to Metrics. Removed IMGUI_HAS_TABLE markers.
2021-05-24 13:07:26 +02:00
ocornut
26a1bbfe1e
InputText: Fixed CTRL+Arrow or OSX double-click leaking the presence of spaces when ImGuiInputTextFlags_Password is used. ( #4155 , #4156 ) [@michael-swan]
2021-05-18 14:46:25 +02:00
ocornut
41030cbfe2
Tweak computation of io.Framerate so it is less biased toward high-values in the first 120 frames. ( #4138 )
2021-05-16 20:37:38 +02:00
ocornut
4ce6bd8cff
Tables: sharing splitter and sort buffers between tables, reducing memory footprints. ( #3740 )
...
+ GC pass on that data.
2021-05-07 20:49:52 +02:00
ocornut
32c453ae53
Tables: sharing transient buffers between tables, reducing memory footprints. ( #3740 )
2021-05-07 20:49:52 +02:00
Bartosz Taudul
4c9f0cec27
Add and use SSE-enabled ImRsqrt() in place of 1.0f / ImSqrt(). ( #4091 )
...
Squashed 3 commits.
2021-05-06 17:27:19 +02:00
ocornut
84545dbe6f
Disabling some of MSVC most aggressive Debug runtime checks for some simple/low-level functions
...
(e.g. ImVec2, ImVector) leading to a 10-20% increase of performances with MSVC "default" Debug settings.
2021-05-06 13:04:35 +02:00
ocornut
393941ceea
Refactor focusable/tabbalbe item registration toward allowing to handle it prior to clipping (not yet the case) ( #343 , #4079 )
...
Now performed in ItemAdd(). It can't be trivially moved above clipping effectively because it would require us to scroll to be useful, meaning we'd be better off locking the bounding box a frame earlier. Still wip.
As-is this commit has no value for end-user, but it's a reengineering that moves us closer to the solution. + Internals: moved internal flags.
2021-04-30 22:40:02 +02:00
ocornut
9b90639577
Internals: ItemFlags is a shared resource as advertised. Fix Begin/PushItemFlags/End sequence (mostly for consistency)
2021-04-30 21:34:17 +02:00
ocornut
10a1c5b021
TestEngine: fixed wrong flags passed to ItemInfo queries. Was luckily/misleadingly not causing issues as the test-engine flags we tested were upper bits not colliding with the other type.
...
Moved those flags higher as well. (unrelated to the fix itself)
2021-04-30 19:32:41 +02:00
ocornut
788e91aece
Fixes for MSVC static analyzers (wider range of versions). ( #3938 , #4073 ) + warning fix ( #4089 ) + comments.
2021-04-30 18:21:07 +02:00
ocornut
89162a04f4
Fixes for PVS Studio and MSVC static analyzers. Using a macro to suppress single-use MSVC false positives. ( #3938 , #4073 )
2021-04-29 21:20:32 +02:00
ocornut
d28535f351
Fixes for Visual Studio 2019 static analyzers. ( #3938 , #4073 ) + two minor edge case were invalid scalar input (e.g. a sign only) would return buffer as modified.
2021-04-29 17:10:27 +02:00
ocornut
daf97832f1
Internals: Nav: renaming.
2021-04-23 18:39:08 +02:00
ocornut
936f53229d
Internals: maintaining focus order inside windows + only storing root windows in WindowsFocusOrder[] array. (toward #2304 )
2021-04-16 19:28:24 +02:00
thedmd
690a90bd35
Make PathArcTo accept counter-clockwise angles ( #4030 , #3491 )
2021-04-15 16:09:38 +02:00
ocornut
7c9c5dbe9a
Internals: Added ImFloorSigned() + use our own ImFloorSigned() for stb_truetype, compared as matching output for variety of font data. ( #2884 )
2021-04-15 14:27:45 +02:00
Doug Binks
f08566b4d7
InputText: Do not filter private unicode codepoints (e.g. icons) when pasted from clipboard. ( #4005 )
2021-04-06 12:00:52 +02:00
ocornut
3c7177c6a7
Internals: storing WindowsHoverPadding in context for external access. + Docs update binaries
2021-03-31 16:06:36 +02:00
ocornut
45c45d2506
Internals: shallow tidying up of the old resize border structure. Make them match the ImGuiDir order. Split GetWindowResizeID() into GetWindowResizeCornerID() and GetWindowResizeBorderID().
2021-03-30 16:44:47 +02:00
ocornut
688e06490e
TabBar: Amend previous commit. Fix tab reordering when tab bar has scrolling.
...
Some tidying up with helpers + honor 16-bit offsets as with other tab bar features (unlikely single reorder can reach that but consistent)
2021-03-25 19:16:24 +01:00
Rokas Kupstys
475c0fcc39
TabBar: Use mouse position instead of hardcoded +1/-1 offset when reordering tabs.
...
Fixes tab reordering in test engine when using fast mode.
2021-03-25 19:12:49 +01:00
ocornut
a58271c079
Internals: extracted a more reusable BeginViewportSideBar() out of BeginMainMenuBar(). ( #3966 , #3518 )
...
Complement ca34c81c
in docking branch which removed assumption that we can't tell size ahead of Begin().
2021-03-25 16:20:42 +01:00
ocornut
aa5431fde2
Tables: Expose TableSetColumnEnabled() in public api. ( #3935 )
2021-03-24 14:36:01 +01:00
Rokas Kupstys
0c5b0c8b97
Internals: Add a way to request window to not process any interactions for specified number of frames.
2021-03-18 14:19:23 +01:00
ocornut
a1a39c632a
Version 1.83 WIP
2021-03-16 14:45:30 +01:00
ocornut
35b1148efb
Version 1.82
2021-03-15 20:26:48 +01:00
ocornut
352f64697c
Internals: rename legagy tab focus fields to TabFocusXXXX for clarity + removed one unnecessary FocusWindow() call.
2021-03-15 20:10:08 +01:00
Rokas Kupstys
c2d6d26139
ImDrawList: upgraded AddRect(), AddRectFilled(), PathRect() to use general ImDrawFlags instead of ImDrawCornersFlags
2021-03-11 16:03:32 +01:00
thedmd
e45847d99a
Add version of PathArcTo() and PathArcToFast() with adaptive rendering quality. ( #3491 )
2021-03-11 11:23:55 +01:00
ocornut
6ba1334903
Nav: internals: renaming ImGuiInputSource so it is not specific to nav. Comments.
2021-03-10 16:36:39 +01:00
ocornut
a64e0eb3a4
Nav: merged SetNavID() and SetNavIDWithRectRel() to improve sanity, moved flags overwrite off them. ( #787 )
2021-03-09 17:21:01 +01:00
ocornut
954b06afe2
Drag and Drop: can use BeginDragDropSource() for other than the left mouse button ( #1637 , #3885 )
...
As long as the item has an ID (for ID-less items will add new functionalities later.
Amend 2c3c5125
2021-03-08 15:50:53 +01:00
ocornut
fdebb2e093
Internals: removed HoveredRootWindow, tweak IsWindowHovered().
2021-03-05 15:56:59 +01:00
ocornut
ee643b2ad9
IsItemHovered(): fixed return value false positive when used after EndChild(), EndGroup() or widgets using either... ( #3851 , #1370 )
...
...when the hovered location is located within a child window, e.g. InputTextMultiline().
This is intended to have no side effects, but brace yourself for the possible comeback..
This essentially makes IsItemHovered() not accept hover from child windows, but EndChild/EndGroup are forwarded.
More or less should fix/revert c76f014292
which was a revert of 344d48be3
2021-03-04 19:59:59 +01:00
ocornut
d8c88bd943
Tables: Fixed unaligned accesses when using TableSetBgColor(ImGuiTableBgTarget_CellBg). ( #3872 )
...
ImSpanAllocator: Support for alignment.
2021-03-04 09:52:03 +01:00
ocornut
23ab4978e4
ImFontAtlas: Added 'bool TexPixelsUseColors' output to help backend decide of underlying texture format. ( #3369 , #3844 )
2021-03-02 15:04:34 +01:00
ocornut
3776ba565f
Internals: TabBar: minor tweaks and renaming.
2021-02-24 19:40:15 +01:00
ocornut
a8f76c23a4
Window: Shrink close button hit-testing region when it covers an abnormally high portion of the window visible area (e.g. when window is collapsed and moved in a corner)to facilitate moving the window away. ( #3825 )
2021-02-18 17:23:10 +01:00
ocornut
fb15d8c858
Improve on automatic circle segment count calculation. ( #3808 ) Amends
2021-02-17 14:22:31 +01:00
thedmd
f107693d9b
Improve on automatic circle segment count calculation. ( #3808 )
2021-02-17 12:55:39 +01:00
ocornut
b47aa46d81
Tables: TableSetupColumn() user id uses ImGuiID as intended (typedef ImU32). internals: added GetCurrentTable(), LeftMostEnabledColumn. Demo/docs tweaks.
2021-02-17 12:18:22 +01:00
ocornut
30b7545841
Version 1.82 WIP
2021-02-15 18:10:14 +01:00
ocornut
4df57136e9
Version 1.81
2021-02-10 21:16:58 +01:00
ocornut
f14042ca78
Viewports Added ImGui::GetMainViewport() as a way to get the bounds and work area of the host display. ( #3789 , #1542 )
...
Viewports: Backport a few constructs from 'docking' branch.
Viewports: Added ImGuiViewportFlags_IsPlatformWindow, ImGuiViewportFlags_IsPlatformMonitor, ImGuiViewportFlags_OwnedByApp (none of them were in docking branch yet). ImGuiViewportFlags_IsPlatformMonitor is merely there to convey future intent, not yet used.
Reduce uses of io.DisplaySize.
MainMenuBar: Backport work area handling code from 'docking' branch.
Metrics: Backported "Viewports" debug visualizer from 'docking' branch.
Demo: Rework 'Examples->Fullscreen Window'.
Demo: 'Simple Overlay' demo now moves under main menu-bar (if any) using GetMainViewport()'s work area.
2021-02-10 16:09:53 +01:00
freddii
90a518c501
Fixed typos ( #3782 )
2021-02-03 12:37:32 +01:00
ocornut
929563c3a7
Log/Capture: Fixes for handling \n in strings. Improve the look of various widgets. Added LogSetNextTextDecoration helper. Fixup/amend dbaf74d75
.
...
For now removed LogRenderedTextNewLine() - it is eventually desirable but currently carries too much ambiguities, so reverted until we have a better system and test suite.
2021-02-02 12:29:58 +01:00
Louis Schnellbach
dbaf74d758
Log/Capture: Fix various new line/spacing issue by using same render text position when there are both RenderText and LogRenderedText call in widget code.
...
Also Buttons are now enclosed in bracket
2021-02-02 09:38:57 +01:00
ocornut
9d576a96a5
Tables: added internal TableSetColumnEnabled() helper. Comments.
2021-02-02 09:23:40 +01:00
ocornut
24be26e00e
imgui_freetype: Add support for colored glyphs. Font: add support for untinted glyphs ( #3369 )
...
Amend 9499afd
with missing static inline.
2021-02-01 16:32:26 +01:00
ocornut
9499afdf5e
imgui_freetype: clarify breaking changes, and add BuildFontAtlas() to be consistent with planned obsolescence. Rename mislabelled internal helper. Demo: clarify labels in nested table demo. ( #3765 )
2021-01-28 20:53:53 +01:00
ocornut
e28b51786e
Tables: Fixed PopItemWidth() or multi-components items not restoring per-colum ItemWidth correctly. ( #3760 ) rework local stacks to facilitate modifying current value without altering the stack.
...
May consider doing the same for ItemFlags and moving to g.ItemFlags...
2021-01-27 12:35:57 +01:00
ocornut
3867c6c5f0
Fonts: (Breaking) Rename ImGuiFreeType:: flags to ImGuiFreeTypeBuilderFlags_XXX. Remove ImGuiFreeType::BuildFontAtlas() flags. Rename ImFontConfig::RasterizerFlags to FontBuilderFlags. Add ImFontBuilderIO (opaque). Amend 53d59f3 with a dozen of small fixes.
2021-01-26 17:25:09 +01:00
Louis Schnellbach
9417acc20f
Fonts: if IMGUI_ENABLE_FREETYPE, use library by default for font rasterization
...
Also renamed IMGUI_DISABLE_STB_TRUETYPE to IMGUI_ENABLE_STB_TRUETYPE
2021-01-26 17:23:11 +01:00
ocornut
a8d2d8ee97
Fixed uninitialized variable, amend f3f2578
. ( #3753 )
2021-01-26 15:26:41 +01:00
Sammy Fatnassi
f3f2578e8f
Internals: Added context hook removal support ( #3580 , #3626 , #3753 )
2021-01-26 15:24:01 +01:00
ocornut
2ed47e5822
Version 1.81 WIP
2021-01-25 16:30:44 +01:00
ocornut
f144c67676
ImDrawList: fixed AddCircle, AddCircleFilled buffer read overflow with (rad > 0.0f && rad < 1.0f && num_segments == 0). ( #3738 )
...
Amend 051ce076
. Maximum cached count becomes 63 instead of 64.
2021-01-25 14:59:09 +01:00
ocornut
58075c4414
Version 1.80
2021-01-21 20:36:18 +01:00
ocornut
5178c3ce21
Tables: added ImGuiTableFlags_NoHostExtendX instead of using outer_size.x == 0.0f. Changed default outer_size to (0.0f, 0.0f). ( #3605 )
2021-01-21 16:20:31 +01:00
ocornut
3b409d2b68
BeginChild: half-fixed child window name longer than 255 conflicting, merely raised the limit by using our shared large buffer. Comments.
2021-01-21 12:36:47 +01:00
thedmd
f379dc28a3
ImBitArray: Rename ClearBits() to ClearAllBits() and add SetAllBits(). ImBitArraySetBitRange work on range [n..n2) instead of [n..n2]
2021-01-20 11:33:59 +01:00
ocornut
3fef132f62
Tables: Clear scroll value when reactivating scroll. Assert when passing width/weight to TableSetupColumn() without an explicit sizing policy at either table or column label.
...
Clearing scroll was initially made desirable by tests exhibiting side effects but generally feels saner.
table->UserOuterSize is poorly used in this commit but will be by subsequent commits.
2021-01-19 21:55:28 +01:00
ocornut
6af92b05bf
Internals: Layout: maintain two content sizes, optionally writing to IdealMaxPos to distinguish used from ideal size, later is used for auto-fit. Unused in this commit, should be no-op. ( #3414 )
...
# Conflicts:
# imgui.cpp
2021-01-15 22:52:42 +01:00
ocornut
3edfc042ff
Tables: Internals: Renaming, tweaks preparing ahead for trickier changes (should be all no-op).
2021-01-15 11:11:16 +01:00
ocornut
36535514d5
Backends: DX12: Fix warning ( #3706 ). Disable obsolete Tables enums, leave them commented out. Using _MSVC_LANG to enable offsetof() and static_assert() on VS2015.3+
2021-01-11 10:54:52 +01:00
ocornut
e18abe3619
Tables: (Breaking) Added ImGuiTableFlags_SizingFixedSame, ImGuiTableFlags_SizingStretchProp. Removed ImGuiTableFlags_SameWidths.
...
Simplified some code and clariffied that currently non-resizable = always revert to default (while waiting to untangle Fixed vs Auto and programmatic override not going through TableSetupColumn)
Whereas ImGuiTableFlags_SameWidths has some unusual handling of mixed Fixed/Stretch columns, we know treat them separately.
2021-01-08 18:40:52 +01:00
ocornut
0e3ba37e6d
Tables: Tidying up. Shuffle some columns fields to facilitate debugging + comments + demo tweaks + metrics highlight.
2021-01-08 18:32:18 +01:00
ocornut
9bcf77eb81
Fixed using IsItemEdited() after Combo() not matching the return value from Combo(). ( #2034 ) + fix some PVS warnings, fix typo, blanks.
...
Amend e28b1078
2021-01-04 19:15:20 +01:00
ocornut
0a5f399805
Tables: Fix hiding column right after the frozen line. Fix hovering/resising column delimiter scrolled under frozen columns. ( #3678 )
2021-01-03 15:45:56 +01:00
ocornut
1c1d3b7ab5
Added 64-bit variants of CheckboxFlags() in imgui_internal.h. Improve assert on mismatched ListBoxFooter() call. Fix FAQ index. ( #3687 )
2021-01-03 15:45:56 +01:00
ocornut
fa963b9aaf
Inputs: Internal: added SetItemUsingMouseWheel() and mechanism to request mouse wheel for both HoveredId and ActiveId. ( #2891 )
...
Based on @kudaba PR.
2020-12-25 18:22:34 +01:00
ocornut
68faa16e1d
Tables: report auto-fit width in EndTable(), extracted TableGetColumnWidthAuto(). fix minor flickering with IsPreserveWidthAuto (which is a debug feature still), moved some code.
2020-12-25 15:52:42 +01:00
ocornut
972ca8166f
Tables: extracted code for TableGetMaxColumnWidth(), fixing "stuck" resize being lossy as it used an older calculation for it and didn't honor e.g. _NoKeepColumnsVisible
2020-12-22 16:40:52 +01:00
ocornut
4d8e839ddf
Renamed ImDrawList::AddBezierCurve() to ImDrawList::AddBezierCubic(), ImDrawList::PathBezierCurveTo() to ImDrawList::PathBezierCubicCurveTo(). ( #3127 , #3664 , #3665 )
...
Renamed corresponding internal functions as well.
2020-12-21 17:13:36 +01:00
ocornut
550bfcfc59
Amend defce31
Add ImDrawList::AddQuadBezierCurve(), ImDrawList::PathQuadBezierCurveTo() ( #3127 , #3664 , #3665 )
2020-12-21 16:30:10 +01:00
ocornut
532aa5a69b
Tables: (breaking) change outer_size.x default value to -FLT_MIN, make outer_size.x == 0.0f act as ImGuiTableFlags_NoHostExtendX ( #3605 , ad83976b
) when no scrolling and no stretch column. Which is more consistent.
...
Demo: moved "Compact table" to "Padding" section, makes more sense. Tweaked demo.
2020-12-18 17:51:50 +01:00
ocornut
22ace4438c
Tables: clarify assumption that rendering of bg/borders in bg0/bg1 are cpu-clipped allowing frozen/unfrozen to share drawcmd + remove offset on outer borders of scrolling tables.
2020-12-18 14:33:16 +01:00
ocornut
30468829c2
Tables: Internal: Maintain InnerRect to further clarify some code. Renamed Bg1 fields to Bg2 (used by Selectable) as the other handles Bg0+Bg1.
2020-12-18 14:32:51 +01:00
ocornut
ad83976b35
Tables: Added ImGuiTableFlags_NoHostExtendX ( #3605 ) marked as WIP, will probably rename.
...
Moved some code from BeginTable() to TableUpdateLayout() to late latch some of the required data.
2020-12-18 14:32:51 +01:00
ocornut
892b48e2d6
Tables: Lock contents width while resizing down an horizontal scrolling table. Headers declare ideal width regardless of clipping. Misc comments.
2020-12-16 13:04:49 +01:00
ocornut
bd899efbd0
Tables: fixed "resize to default" of multiple stretch column (added 3b3503e
, broken 7a61f340
).
...
Fixed a warning.
Storing RightMostStretchedColumn column for resizing code.
Avoid clearing RightMostEnabledColumn in BeginTable() so resizing code can potentially use it.
(Added regression tests for resize all to default imgui_dev)
2020-12-14 15:49:20 +01:00
ocornut
738606a294
Tables: added ImGuiTableFlags_SortTristate. Renamed ImGuiTableFlags_MultiSortable to ImGuiTableFlags_SortMulti. Removed now unused FlagsIn storage.
2020-12-11 23:01:09 +01:00
ocornut
bff1836922
Internals: added facility to hide windows from render without interfering with the HiddenFramesCanSkipItems/HiddenFramesCannotSkipItems fields which have effects on layout. Compact some fields.
...
Ideally we'd have a simpler system but it's not easy to make the capture system change to hook at the right spot. Will rework.
2020-12-11 14:37:58 +01:00
ocornut
1ad5502f18
Tables: Closer to zero-clear constructor. Lazily clearing name offsets to avoid an iteration in BeginTable(). Removed unused TableSetColumnIsEnabled(), signature went faulty anyway.
2020-12-10 19:45:20 +01:00
ocornut
e6b875c09b
Tables: Ditch old columns flags/setting if not called again. Displaying right-most border when using _SameWidths. Moving Width-related functions to their own section.
...
Effectively removed the TableFixColumnFlags() in first loop of TableUpdateLayout() to replace it with similar one but only when column not declared. I think this should be the right thing.
2020-12-10 18:33:33 +01:00
ocornut
17536f9add
Tables: more consistent use of CellPadding.x*2 and clip-rect on right-most side of non-bordered column + fix cellbg for standalone TableHeader call.
...
Using CellPadding.x on both sides when BorderV is off, generally most consistent and with default value (4,2) promotes at-glance visible spacing between non-bordered columns. Effectively double horizontal padding on non-bordered columns.
Made ClipRect.Max.x matches WorkMaxX which is where we'd like to go for windows themselves.
TableHeader() submit single cell bg color if not already submitted as a full header row.
Misc comments/docs updates.
2020-12-09 15:13:09 +01:00
ocornut
0b14dd9e55
Tables: fixed propagation of line height from outside the table. Added outer-width demo.
2020-12-04 19:15:27 +01:00
ocornut
6e38026627
Tables: changelog. removed TableGetHoveredColumn() from public API in favor of using TableGetColumnFlags(). renamed ImGuiTableSortSpecsColumn to ImGuiTableColumnSortSpecs.
2020-12-04 19:15:27 +01:00
ocornut
7a61f3407b
Tables: support internal TableResetSettings(), clarify lifetime, fixed missing auto-fit on column unhidden after first run, fixed resize assert when changing column sizing policy to stretch mid-frame (before of -1.0f weight)
2020-12-04 19:15:27 +01:00
ocornut
b194df413c
Tables: exposed status flags via TableGetColumnFlags(), removed TableGetColumnIsSorted()
...
Scoped width auto calc.
2020-12-04 19:15:27 +01:00
ocornut
984c4cb5f8
Tables: distinguishing per-column IsVisible from IsRequestOutput which is returned to user. Clarified clipping rules/requirements. Comments.
2020-12-04 19:15:27 +01:00
ocornut
f70bf69e3b
Tables: comments and tweaks on TableUpdateLayout(). changed "apply final width" loop to use natural column order.
2020-12-04 19:15:26 +01:00
ocornut
155b8bb816
Tables: Shared menu item id for "Size all" variations. Avoid allocation on single sort specs. Fix TableGetColumnIsEnabled(). Massage TableHeaderRows().
2020-12-04 19:15:26 +01:00
ocornut
e126a64782
Tables: using a typedef in internal code to specify column/draw channel index storage.
2020-12-04 19:15:26 +01:00
ocornut
6aa8388e9f
Tables: index tweaks, fixed some inconsistent spacings.
2020-12-04 19:15:26 +01:00
ocornut
5180025de5
Tables: moved + renamed TableSetupDrawChannels(), TableMergeDrawChannels() to their own section.
2020-12-04 19:15:26 +01:00
ocornut
b7c83e4bac
Tables: moved TableGetSortSpecs(), TableGetColumnIsSorted(), TableFixColumnSortDirection(), TableSetColumnSortDirection() to their own section.
2020-12-04 19:15:26 +01:00
ocornut
082f1d10d0
Tables: renamed TableBeginUpdateColumns to TableBeginApplyRequests, moved code to TableUpdateLayout, in order to ensure that enable state is not inconsistent due to TableSetupColumn column hiding requests.
...
All the fields moved from TableBeginUpdateColumns to TableUpdateLayout are not used before.
2020-12-04 19:15:26 +01:00
ocornut
79c9eaa78e
Tables: Internals: renamed Visible to Enabled to avoid confusion with visibility checks.
2020-12-04 19:15:26 +01:00
ocornut
5ef7b831c2
Tables: removed ImGuiTableSortSpecs::ColumnsMask because it needlessly exposes our 64-columns limitation which we'd eventually would like to lift
...
+ shuffle declarations in internals
2020-12-04 19:15:26 +01:00
ocornut
e09454aec4
Tables: removed TableGetColumnIsVisible from public api, re-specced as TableGetColumnIsHidden() returning same flag as setter, clipper increase CurrentRow.
2020-12-04 19:15:26 +01:00
ocornut
0c9ab0acdd
Tables: setup and maintain ItemWidth per column.
2020-12-04 19:15:26 +01:00
ocornut
3b3503e60f
Tables: decent support for auto-resize of stretch columns (trickier than it sounds)
...
Four cases:
1. visible columns are all stretch, resize all : "size all to default" reset to default weight
2. visible columns are all stretch, resize one: "size one to fit" set weight, reapply weight (todo: improve weight redistribution in case of >1 siblings)
3. visible columns are mixed, resize all: "size all to fit/default" reset stretchs to default weight, set fixed to auto width
4. visible columns are mixed, resize one: "size one to fit", redistribute weight the same way as a manual resize
+ TableSetupColumn() more consistently clear AutoFitQueue.
+ zero-clear RowCellData buffer.
2020-12-04 19:15:25 +01:00
ocornut
197e9c085b
Tables: separate bg0 and bg1 draw channels, selectable above bg color + will facilitate drawing of borders in EndTable().
...
+ unused code to strip out dummy draw channel calls.
2020-12-04 19:15:25 +01:00
ocornut
52f24df668
Tables: comments, tweaks, added internal TableSetColumnVisible(), merged the two TableSetColumnWidth().
2020-12-04 19:15:25 +01:00
ocornut
bf197c74f6
Tables: storing WorkMaxX, made offset_x == MinX to be clearer, clip rect merge uses ClipRect.max.x directly, removed unused ShrinkWidth code, metrics.
2020-12-04 19:15:25 +01:00
ocornut
10db896813
Tables: store RawData in a simple void* pointer, rename ContentMinX > WorkMinX, misc tidying up.
...
Removed unnecessary casts when using CheckboxFlags().
2020-12-04 19:15:25 +01:00
ocornut
82cf41d804
Tables: tooltip on clipped TableHeader() (amended)
2020-12-04 19:15:25 +01:00
ocornut
507db499e4
Tables: work on background draw channel handling (amend "create a separate background draw channel") + Selectable disable spacing when spanning.
2020-12-04 19:15:25 +01:00
ocornut
fe6131168a
Tables: Additionally commentary about clipper in the demo + minor padding tweak.
2020-12-04 19:15:25 +01:00
ocornut
24a7c45b02
Tables: Fix for 64 columns (maximum of 131 temporary draw channels).
2020-12-04 19:15:25 +01:00
ocornut
e5a5256971
Tables: Garbage collection to relieve draw splitter buffers + for test engine: compact settings, remove table.
2020-12-04 19:15:25 +01:00
ocornut
f80097ca96
Tables: Fix applying WorkRect in non-scrolling tables. Fix inverted BackgroundClipRect being passed to ImDrawCmd.
2020-12-04 19:15:25 +01:00
ocornut
557253e776
Tables: create a separate background draw channel for rows below the frozen line.
2020-12-04 19:15:24 +01:00
ocornut
d3222086f0
Tables: Moved TableSetupScrollFreeze(), TableUpdateDrawChannels() lower in more adequate spots.
...
+ rename IsFreezeRowsPassed to IsUnfrozen.
2020-12-04 19:15:24 +01:00
ocornut
51abdd53e3
Tables: renamed somehow-duplicate ContentWidth members (implicitly == Max - Min), renamed StartX to ContentMinX for consistency.
2020-12-04 19:15:24 +01:00
ocornut
1731ae5a09
Tables: Reworked padding/spacing/width.
...
All widths are stored without padding.
Decorelate padding from presence of border.
Added ImGuiTableFlags_Pad/NoPad flags.
Added demo.
Merge StartXHeaders and StartXRows into StartX.
Distinguish CellSpacingX1 and CellSpacingX2 for clarity and to avoid loss of width on non-even spacing values.
2020-12-04 19:15:24 +01:00
ocornut
ac5b1648e6
Tables: Various internal renaming + merge StartXHeaders/StartXRows into StartX.
2020-12-04 19:15:24 +01:00
ocornut
2ee20fdb7c
Tables: Frozen rows/columns in nav menu layer, fixed conflict between column id and holding child id.
2020-12-04 19:15:24 +01:00
ocornut
e66b28693a
Tables: Added ImGuiTableFlags_ContextMenuInBody flag.
...
Worked to get TableOpenContextMenu() in public API but kept it internal.
2020-12-04 19:15:24 +01:00
ocornut
cc12ea084b
Tables: Added TableSetColumnSortDirection() + added in default context menu code (disabled, feels unnecessary, but work is done to ensure programmatic access)
2020-12-04 19:15:23 +01:00
omar
8ec05fc034
Tables: Fixed holding on table pointers accross resize/invalidation of the pool buffer.
2020-12-04 19:15:23 +01:00
omar
931829f701
Tables: (Breaking change) Sorting: Made it users responsability to clear SpecsDirty back to false, so TableGetSortSpecs() doesn't have side-effect any more. + comments
2020-12-04 19:15:23 +01:00
omar
8e97cdf8e8
Tables: Fix for calling TableSetBgColor(ImGuiTableBgTarget_CellBg) multiple times on the same cell.
2020-12-04 19:15:23 +01:00
ocornut
45a80716b1
Tables: Fixed three bugs + metrics tweaks.
...
- Fixed bug when ending a table within another (outer table column offset was overwritten instead of restored).
- Fixed assert when settings data has mismatching column count.
- Fixed restoring g.CurrentTable when calling EndChild() from inside table inner window.
- Made inactive tables grey in metrics.
- Fix warning.
(amended twice)
2020-12-04 19:15:23 +01:00
omar
eb18636e02
Tables: Fix settings not being saved in child window (issue 3367) + fix for change in master.
2020-12-04 19:15:23 +01:00
omar
9d8b40414a
Tables: Added TableSetBgColor() api with color for RowBg and CellBg colors.
2020-12-04 19:15:23 +01:00
omar
0847373b98
Tables: Comments on Sizing Policies + Rename border V/H flags HInner -> InnerH + offset every flags by two.
2020-12-04 19:15:23 +01:00
omar
c96c84b6dc
Tables: Store submitted column width and avoid saving default default widths.
2020-12-04 19:15:22 +01:00
ocornut
798aed729a
Tables: Added TableGetHoveredColumn(), extracted some context menu code out, simplifying TableAutoHeaders() toward aim of it being a user-land function.
2020-12-04 19:15:22 +01:00
ocornut
4c4882ffe4
Tables: Fixed channel merge when resizing columns with headers. Disable unnecessary and broken merge when using _NoClipX.
2020-12-04 19:15:22 +01:00
omar
363eae94e6
Tables: Further fix #3293 , #3163 + fixed for row unfreezing border not always showing due to unset clip rect.
2020-12-04 19:15:22 +01:00
ocornut
58411f27cb
Tables: Avoid TableGetSortSpecs() having a side-effect on sort specs sanitization.
2020-12-04 19:15:22 +01:00
ocornut
af992d1321
Tables: Tweak settings functions to more prominently clarify the two levels of function.
2020-12-04 19:15:22 +01:00
omar
fec9d7d226
Tables: Rescale fixed widths when font size change to support varying dpi scale at runtime and on .ini reload.
2020-12-04 19:15:21 +01:00
omar
6bc0bbccf3
Tables: Restore width/weight saving/loading code. Non-weighted width currently not font/DPI change friendly.
2020-12-04 19:15:21 +01:00
omar
af52a0cea2
Tables: Resizing weighted column preserve sum of weights. Fix ResizedColumn init leading to undesirable TableSetColumnWidth() on first run. Rework TableSettingsHandler_ReadLine() structure to allow other types of line.
2020-12-04 19:15:21 +01:00
omar
bc170e7325
Tables: Renamed ResizeWeight->WidthStretchWeight, WidthRequested->WidthFixedRequest, clarififications, comments.
2020-12-04 19:15:21 +01:00
omar
23c60b2814
Tables: Renamed internal fields: Active->Visible, Visible->VisibleUnclipped to be less misleading.
2020-12-04 19:15:21 +01:00
omar
dff26191bd
Tables: Try to report contents width to outer window, generally better auto-fit.
2020-12-04 19:15:21 +01:00
omar
95c273618e
Tables: Allow hot-reload of settings (merge policy), tidying up settings code
2020-12-04 19:15:21 +01:00
omar
9b6d0fdb7a
Tables: Fixed ignoring DefaultHide or DefaultSort data from flags when loading settings that don't have them.
2020-12-04 19:15:21 +01:00
omar
9f43aae226
Tables: Calculating ideal total width, some renaming, comments. Clarify that inner_width is unused with ScrollX=0. Clip many comments to 120 columns.
2020-12-04 19:15:21 +01:00
omar
b7ff85d9ad
Tables: Browse settings list in Metrics (outside of Table entry).
2020-12-04 19:15:21 +01:00
omar
8eb1c925f0
Tables: Internals: Added FindTableByID(), removing trailing spaces.
...
# Conflicts:
# imgui_internal.h
2020-12-04 19:15:21 +01:00
omar
e60b5a3f75
Tables: Internals: Added TableGetColumnResizeID(), renamed InstanceNo > InstanceCurrent.
2020-12-04 19:15:21 +01:00