1
0
mirror of https://github.com/ocornut/imgui.git synced 2024-12-18 10:35:59 +01:00
Commit Graph

1778 Commits

Author SHA1 Message Date
ocornut
f9cda1fa24 Inputs: added SetItemKeyOwner(ImGuiKey key) in public API. (#456, #2637, #2620, #2891, #3370, #3724, #4828, #5108, #5242, #5641) 2024-07-19 18:39:07 +02:00
ocornut
02c31a8dd1 MultiSelect: added Changelog for the feature. Removed IMGUI_HAS_MULTI_SELECT. 2024-07-18 18:19:22 +02:00
ocornut
2697cfe354 MultiSelect: Box-Select: uses SetActiveIdUsingAllKeyboardKeys() to avoid nav interference, much like most drag operations. 2024-07-18 18:19:22 +02:00
ocornut
d411c9054a MultiSelect: minor tidying up.
Checkbox() was reworked in master effectively fixing render clipping when culled by BoxSelect2d's UnclipMode.
2024-07-18 18:19:22 +02:00
ocornut
81548cb6bf MultiSelect: added GetMultiSelectState() + store LastSelectionSize as provided by user, convenient for quick debugging and testing. 2024-07-18 18:19:20 +02:00
ocornut
dc0a1682e3 MultiSelect: Box-Select: when dragging from void, first hit item sets NavId by simulating a press, so navigation can resume from that spot. 2024-07-18 18:19:20 +02:00
ocornut
2111e3597b MultiSelect: Comments + tweaked location for widgets to test ImGuiItemFlags_IsMultiSelect to avoid misleading into thinking doing it before ItemAdd() is necessary. 2024-07-18 18:19:19 +02:00
ocornut
f36a03c317 MultiSelect: (Breaking) merge ImGuiSelectionRequestType_Clear and ImGuiSelectionRequestType_SelectAll into ImGuiSelectionRequestType_SetAll., rename ImGuiSelectionRequest::RangeSelected to Selected.
The reasoning is that it makes it easier/faster to write an adhoc ImGuiMultiSelectIO handler (e.g. trying to apply multi-select to checkboxes)
2024-07-18 18:19:19 +02:00
ocornut
f3d77d8e71 MultiSelect: Box-Select: Further refactor to extra mode code away from multi-select function into box-select funcitons. 2024-07-18 18:19:18 +02:00
ocornut
907268a430 MultiSelect: Box-Select: Fixed scrolling on high framerates. 2024-07-18 18:19:18 +02:00
ocornut
5d9de14493 MultiSelect: Box-Select: Refactor: Renames.
Split into two commits to facilite looking into previous one if needed.
2024-07-18 18:19:18 +02:00
ocornut
75bac1aac6 MultiSelect: Box-Select: Refactor into its own structure, designed for single-instance but closer to being reusable outside Multi-Select.
Kept same member names.
2024-07-18 18:19:18 +02:00
ocornut
15391762dd MultiSelect: Box-Select: Added ImGuiMultiSelectFlags_BoxSelect2d support. Enabled in Asset Browser. Selectable() supports it. 2024-07-18 18:19:18 +02:00
ocornut
1ac469b50f MultiSelect: Box-Select: Fixed holes when using with clipper (in 1D list.)
Clipper accounts for Selectable() layout oddity as BoxSelect is sensitive to it.
Also tweaked scroll triggering region inward.
Rename ImGuiMultiSelectFlags_NoBoxSelectScroll to ImGuiMultiSelectFlags_BoxSelectNoScroll.
Fixed use with ImGuiMultiSelectFlags_SinglaSelect.
2024-07-18 18:19:18 +02:00
ocornut
e0282347db MultiSelect: remove ImGuiSelectionRequest/ImGuiMultiSelectIO details from public api to reduce confusion + comments. 2024-07-18 18:19:17 +02:00
ocornut
0af6fbb51d MultiSelect: added support for nested/stacked BeginMultiSelect().
Mimicking table logic, reusing amortized buffers.
2024-07-18 18:19:17 +02:00
ocornut
aa4d64be92 MultiSelect: Box-Select: added scroll support. 2024-07-18 18:19:17 +02:00
ocornut
f904a6646c MultiSelect: Box-Select: added support for ImGuiMultiSelectFlags_BoxSelect.
(v11)
FIXME: broken on clipping demo.
2024-07-18 18:19:17 +02:00
ocornut
90305c57e4 MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_ClearOnClickWindowVoid -> ImGuiMultiSelectFlags_ClearOnClickVoid. Added ImGuiMultiSelectFlags_ScopeWindow, ImGuiMultiSelectFlags_ScopeRect. 2024-07-18 18:19:17 +02:00
ocornut
3d41994a63 MultiSelect: simplify clearing ImGuiMultiSelectTempData. 2024-07-18 18:19:17 +02:00
ocornut
33fc61a091 MultiSelect: use a single ImGuiMultiSelectIO buffer.
+ using local storage var in EndMultiSelect(), should be no-op.
2024-07-18 18:19:17 +02:00
ocornut
6feff6ff05 MultiSelect: (Breaking) io contains a ImVector<ImGuiSelectionRequest> list. 2024-07-18 18:19:16 +02:00
ocornut
5628dda5a5 MultiSelect: move shared logic to MultiSelectItemHeader().
No logic change AFAIK but added an indent level in MultiSelectItemHeader(). Logic changes will come in next commit.
2024-07-18 18:19:16 +02:00
ocornut
8fe6b31952 MultiSelect: (Breaking) Removed RangeSrcPassedBy in favor of favoring user to call IncludeByIndex(RangeSrcItem) which is easier/simpler to honor.
Especially as recent changes made it required to also update RangeSrcPassedBy after last clipper Step.
Should now be simpler.
2024-07-18 18:19:15 +02:00
ocornut
c9eb3714e8 MultiSelect: move HasSelectionData to ImGuiItemFlags to facilitate copying around in standardized fieds.
Required/motivated to simplify support for ImGuiTreeNodeFlags_NavLeftJumpsBackHere (bc3c0ce) in this branch.
2024-07-18 18:19:15 +02:00
ocornut
e82b49d2d4 MultiSelect: (Breaking) Use ImGuiSelectionUserData (= ImS64) instead of void* for selection user data.
Less confusing for most users, less casting.
2024-07-18 18:19:15 +02:00
ocornut
c0035705ca MultiSelect: Further simplication of user code to support Deletion.
Provide standard RequestFocusItem storage.
2024-07-18 18:19:14 +02:00
ocornut
df1eeb9a20 MultiSelect: Maintain NavIdSelected for user. Simplify deletion demo. 2024-07-18 18:19:14 +02:00
ocornut
9223ffc255 MultiSelect: (Breaking) BeginMultiSelect() doesn't need two last params maintained by users. Moving some storage from user to core. Proper deletion demo. 2024-07-18 18:19:14 +02:00
ocornut
a83326bc52 MultiSelect: (Breaking) Renamed 'RangeSrc -> 'RangeSrcItem', "RangeDst' -> 'RangeDstItem'
This is necessary to have consistent names in upcoming fields (NavIdItem etc.)
2024-07-18 18:19:13 +02:00
ocornut
a39f9e7661 MultiSelect: Internals rename of IO fields to avoid ambiguity with io/rw concepts + memset constructors, tweaks.
debug
2024-07-18 18:19:13 +02:00
ocornut
35b5ebc9b5 MultiSelect: (Breaking) Rename ImGuiMultiSelectData to ImGuiMultiSelectIO. 2024-07-18 18:19:13 +02:00
ocornut
11bcae1ebd MultiSelect: refactor before introducing persistant state pool and to facilitate adding recursion + debug log calls.
This is mostly the noisy/shallow stuff committed here, to get this out of the way.
2024-07-18 18:19:13 +02:00
ocornut
5d71314f71 MultiSelect: removed DragDropActive/preserve_existing_selection logic which seems unused + comments.
Can't find trace of early prototype for range-select but I couldn't find way to trigger this anymore. May be wrong. Will find out.
2024-07-18 18:19:13 +02:00
ocornut
78cb1661cb MultiSelect: Shallow tweaks/refactors.
Including moving IsFocused back internally for now.
2024-07-18 18:19:13 +02:00
ocornut
35bbadcf0c MultiSelect: Added ImGuiMultiSelectFlags_ClearOnClickWindowVoid. + Demo: showcase multiple selection scopes in same window. 2024-07-18 18:19:13 +02:00
ocornut
919cac1482 MultiSelect: Demo: Add a simpler version. 2024-07-18 18:19:12 +02:00
ocornut
b9721c1ed7 MultiSelect: Temporary fix/work-around for child/popup to not inherit MultiSelectEnabled flag, until we make mulit-select data stackable. 2024-07-18 18:19:12 +02:00
omar
00c4b8f2a3 MultiSelect: Fix testing key mods from after the nav request (remove need to hold the mod longer) 2024-07-18 18:19:12 +02:00
omar
9c7183dd04 MultiSelect: Transition to use FocusScope bits merged in master.
Preserve ability to shift+arrow into an item that is part of FocusScope but doesn't carry a selection without breaking selection.
2024-07-18 18:19:12 +02:00
omar
57da88093f MultiSelect: Added IMGUI_HAS_MULTI_SELECT define. Fixed right-click toggling selection without clearing active id, could lead to MarkItemEdited() asserting. Fixed demo. 2024-07-18 18:19:11 +02:00
omar
554db6bc0f MultiSelect: WIP range-select (#1861) (rebased six millions times) 2024-07-18 18:19:11 +02:00
ocornut
070c046cd1 Internals: rename recently added TreeNodeIsOpen() -> TreeNodeGetOpen(). (#7553, #1131, #2958, #2079, #722)
Amend ac7d6fb
2024-07-17 20:01:55 +02:00
ocornut
7c6d4ff28d TreeNode: Internals: facilitate dissociating item ID from storage ID (useful for 1861) 2024-07-17 19:20:39 +02:00
ocornut
0de88a928d Added ImGuiItemFlags_AutoClosePopups as a replacement for internal's ImGuiItemFlags_SelectableDontClosePopup. (#1379, #1468, #2200, #4936, #5216, #7302, #7573) 2024-07-15 18:46:34 +02:00
ocornut
7e0800e718 Added PushItemFlag(), PopItemFlag(), ImGuiItemFlags. 2024-07-15 18:38:18 +02:00
ocornut
ac7d6fb5ca Internals: Added TreeNodeIsOpen() to facilitate discoverability. (#7553, #1131, #2958, #2079, #722) 2024-07-15 11:31:00 +02:00
ocornut
2d0baaabe6 TreeNode: rename/rework ImGuiNavTreeNodeData system to be usable by more features. (#2920, #1131, #7553)
Reworked to it is easier during TreeNode code to request extra data to be stored.
2024-07-03 18:59:26 +02:00
ocornut
0a73c6ec3f Misc tweaks, comments. 2024-07-03 18:02:59 +02:00
ocornut
05a4f28059 Internals: added FontScale storage (amend 0f63d3e). 2024-07-02 17:45:12 +02:00
ocornut
5496050f5f Added TextLink(), TextLinkOpenURL() hyperlink widgets. (#7660) 2024-07-02 17:21:44 +02:00
ocornut
0f63d3e916 Internals: added FontScale storage. 2024-07-02 17:21:10 +02:00
ocornut
fb799bba7f (Breaking) IO, IME: renamed platform IME hook io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() and added explicit context. 2024-07-02 15:48:32 +02:00
ocornut
a62794359a Debug Tools: Added IMGUI_DEBUG_LOG(), ImGui::DebugLog() in public API. (#5855) 2024-07-02 12:00:55 +02:00
ocornut
84cc72f372 Version 1.91.0 WIP 2024-07-01 19:02:42 +02:00
ocornut
cb16be3a3f Version 1.90.9 2024-07-01 17:03:21 +02:00
ocornut
0582f7678a Nav: store NavJustMovedToIsTabbing + shuffle a few nav related fields.
(for usage by multi-select)
2024-06-28 11:35:09 +02:00
ocornut
953d40c929 Tables: moved TableGetHoveredColumn() to public API. (#7715, #3740) 2024-06-27 17:17:54 +02:00
ocornut
2c8cc58fd1 Internals: storing HoveredWindowBeforeClear for use by multi-context compositor drag and drop propagation.
# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2024-06-21 14:46:07 -07:00
ocornut
37c243bb35 Internals: added ImGuiContext::ContextName optionally used by debug log and to facilitate debugging. 2024-06-19 17:55:43 -07:00
ocornut
8caf7afbad Internals: made ImLowerBound() accessible in internals + take a span. + rearrange child/popup/tooltips section.
Because upcoming rework of ImGuiSelectionBasicStorage will want to do a lower bound on a span.
2024-06-11 11:52:51 +02:00
ocornut
d46a0aa069 Internals: renamed HoveredIdDisabled to HoveredIdIsDisabled for consistency. 2024-06-10 13:59:46 +02:00
ocornut
7260bb51cf Version 1.90.9 WIP 2024-06-07 16:57:01 +02:00
ocornut
6f7b5d0ee2 Version 1.90.8 2024-06-06 17:45:40 +02:00
ocornut
f1eaf8d7c0 Internals: added SetNextItemRefVal(). (#7305) 2024-06-06 17:01:02 +02:00
ocornut
47db0698d2 InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_ParseEmptyRefVal, ImGuiInputTextFlags_DisplayEmptyRefVal. (#7305) 2024-06-06 16:51:15 +02:00
ocornut
3460014e05 Internals: avoid using bitfields in ImGuiNextItemData as it leads to extraneous packing. rename ImGuiDataTypeTempStorage to ImGuiDataTypeStorage. moved DataType section above Widgets. 2024-06-06 16:50:32 +02:00
SleekZ
8ab8965713
Improved clarity in comment. (#7642) 2024-06-01 09:54:20 +02:00
ocornut
9aec6d7217 Internals: Added ItemUnclipByLog for use by ItemAdd(), as we expected to add more. 2024-05-31 21:38:06 +02:00
ocornut
854e21d4b4 Disabled: move field to ImGuiWindowStackData. (#7640)
Amend f953ebf
2024-05-31 18:24:55 +02:00
ocornut
f953ebf9ca Disabled: nested tooltips or other non-child window within a BeginDisabled() block disable the disabled state. (#211, #7640) 2024-05-31 18:13:25 +02:00
ocornut
868f444620 Debug: extracted debug log 0xXXXXXXX scanning into a helper function. (#5855) 2024-05-29 18:48:25 +02:00
ocornut
51823d117d Misc: made ImGuiDir, ImGuiSortDirection, ImGuiMouseCursor stronger-typed enums + cater for possible warning in backends's switch()
Not making ImGuiMouseCursor one because of warnings for non-explicitly handled value (case default: is not enough).
2024-05-28 18:09:41 +02:00
ocornut
5cbc34a10c Scrollbar: clicking above or below the grab scrolls by one page, holding mouse button repeats scrolling. (#7328, #150)
Remove absolute seeking entirely. Amend f02108085.
2024-05-28 16:28:20 +02:00
ocornut
ed9eb880b5 Windows: Fixed altering FramePadding mid-frame not correctly affecting logic responsible for honoring io.ConfigWindowsMoveFromTitleBarOnly. (#7576, #899)
Latching TitleBarHeight, MenuBarHeight in window.
2024-05-28 15:35:36 +02:00
ocornut
1f9fc382c3 Version 1.90.8 WIP
Tidying up todo.txt
2024-05-28 10:09:31 +02:00
ocornut
00ad3c65bc Version 1.90.7 2024-05-27 15:47:04 +02:00
ocornut
f814ef816f Commented out CaptureKeyboardFromApp(), CaptureMouseFromApp(). Commented out obsolete IsKeyPressedMap() from imgui_internal.h (can call IsKeyPressed). Comments 2024-05-27 14:41:02 +02:00
ocornut
86931393a3 Shortcuts: Revert "SetShortcutRouting: require explicit routing. (#456)
This reverts commit a689fa262a.
2024-05-24 17:59:42 +02:00
ocornut
ce4e210dcb Shotcuts: renamed ImGuiInputFlags_RouteGlobalOverFocused -> ImGuiInputFlags_RouteOverFocused, ImGuiInputFlags_RouteGlobalOverActive -> ImGuiInputFlags_RouteOverActive in previsiion of using them with a Hovered route. (#456) 2024-05-24 16:07:58 +02:00
ocornut
5ce3d29955 Shortcuts: rename ImGuiInputFlags_RouteGlobalHighest to ImGuiInputFlags_RouteGlobalOverActive, made ImGuiInputFlags_RouteGlobalOverFocused and ImGuiInputFlags_RouteGlobalOverActive flags. (#456) 2024-05-24 15:44:59 +02:00
ocornut
650cb51bf1 Shortcuts: renamed ImGuiInputFlags_RouteActiveItem to ImGuiInputFlags_RouteActive. (#456, #7618)
Amend ef9d525
2024-05-24 15:27:48 +02:00
ocornut
ef9d525f02 Shortcuts: added ImGuiInputFlags_RouteActiveItem. (#456, #7618) + rearrange Changelog 2024-05-24 15:07:43 +02:00
ocornut
7c71e66370 Shortcuts, SetShortcutRouting: move ImGuiInputFlags_RouteFromRootWindow evaluation to SetShortcutRouting() for now. (#456) 2024-05-23 17:33:16 +02:00
ocornut
d5a600e9c6 Shortcuts, SetShortcutRouting: added ImGuiInputFlags_RouteFromRootWindow. Made it possible for SetShortcutRouting() to query for another location. 2024-05-23 17:22:44 +02:00
ocornut
a689fa262a SetShortcutRouting: require explicit routing. (#456) 2024-05-23 17:09:48 +02:00
ocornut
c06e6340cd Shortcuts: added ImGuiInputFlags_Tooltip. (#456) 2024-05-23 16:58:14 +02:00
ocornut
77e4171894 Shortcuts: added flags to SetNextItemShortcut(). (#456) 2024-05-23 16:57:19 +02:00
ocornut
fc512a2474 Inputs: Added Shortcut(), SetNextItemShortcut(). Added ImGuiInputFlags, ImGuiInputFlags_RouteXXXX. (#456, #2637) 2024-05-23 16:57:03 +02:00
ocornut
85513de247 Internals, Inputs: *Breaking* Swapped parameter order of owner-aware versions of IsKeyPressed(), IsKeyChordPressed(), IsMouseClicked(). (#456)
For several reasons those changes makes sense. They are being made because making some of those API public.
Only past users of imgui_internal.h with the extra parameters will be affected.
Added asserts for valid flags in various functions to detect _some_ misuses, BUT NOT ALL.
Amend 4448d975 (#456, #2637, #2620, #2891, #3370, #4828, #5108, #5242, #5641)
2024-05-23 16:57:03 +02:00
ocornut
900b29055c Internals, Inputs: *Breaking* Swapped parameter order of Shortcut(). (#456)
Amend 4448d975 (#456, #2637, #2620, #2891, #3370, #4828, #5108, #5242, #5641)
2024-05-23 16:57:03 +02:00
ocornut
55748cdbe1 Internals, Inputs: *Breaking* Renamed ImGuiKeyOwner_None to ImGuiKeyOwner_NoOwner: avoid confusion with non zero value, makes IsKeyPressed() calls using ImGuiKeyOwner_NoOwner more explicit.
Amend 4448d975 (#456, #2637, #2620, #2891, #3370, #4828, #5108, #5242, #5641)
2024-05-23 16:57:03 +02:00
ocornut
6d1a6f1c74 Internals, Inputs: Comments, alignment. 2024-05-22 12:17:33 +02:00
ocornut
aa725ca79d Inputs: moving ImGuiInputFlags_RouteAlways into ImGuiInputFlags_RouteTypeMask_ 2024-05-21 12:28:47 +02:00
ocornut
cd48059dc5 Tables: comments about skipping access to table data in coarse clipping path. 2024-05-21 12:07:50 +02:00
ocornut
ae8218a3ea Inputs, Shortcut: fixes some edge cases for GetKeyChordName(), clarify that it is aimed at display. (#456)
Rename IsNamedKeyOrModKey() to IsNamedKeyOrMod() for consistency.
Fixed GetKeyName(ImGuiKey_None) from returning "N/A" or "None" depending on IMGUI_DISABLE_OBSOLETE_KEYIO.
See "inputs_keychord_name" in imgui_test_suite.
2024-05-17 17:07:50 +02:00
ocornut
b4f564c1ed Internals: Shortcuts: *Breaking* : rename ImGuiInputFlags_RouteGlobalLow -> ImGuiInputFlags_RouteGlobal, ImGuiInputFlags_RouteGlobal -> ImGuiInputFlags_RouteGlobalOverFocused, ImGuiInputFlags_RouteGlobalHigh -> ImGuiInputFlags_RouteGlobalHighest (#456) 2024-05-17 14:18:22 +02:00
ocornut
8bd5d1d42f Inputs: Fixed swapping of keys associated to mods. Fixed warnings. (#2343, #4084, #5923, #456)
Amend 7747106.
2024-05-16 19:23:05 +02:00
ocornut
7747106647 Inputs: swap Ctrl and Cmd on macOS X, remove ImGuiMod_Shortcut. (#2343, #4084, #5923, #456) 2024-05-16 19:16:55 +02:00
Hubert Maier
07dbcf1f70 Fixed typos. (#7593) 2024-05-16 16:13:01 +02:00