mirror of
https://github.com/ocornut/imgui.git
synced 2026-04-05 07:09:27 +00:00
MultiSelect: added Changelog for the feature. Removed IMGUI_HAS_MULTI_SELECT.
This commit is contained in:
@@ -77,6 +77,57 @@ Other changes:
|
||||
Disabling this was previously possible for Selectable() via a direct flag but not for MenuItem().
|
||||
(#1379, #1468, #2200, #4936, #5216, #7302, #7573)
|
||||
- This was mostly all previously in imgui_internal.h.
|
||||
- Multi-Select: added multi-select API and demos. (#1861)
|
||||
- This system implements standard multi-selection idioms (CTRL+mouse click, CTRL+keyboard moves,
|
||||
SHIFT+mouse click, SHIFT+keyboard moves, etc.) with support for clipper (not submitting non-visible
|
||||
items), box-selection with scrolling, and many other details.
|
||||
- In the spirit of Dear ImGui design, your code owns both items and actual selection data.
|
||||
This is designed to allow all kinds of selection storage you may use in your application
|
||||
(e.g. set/map/hash, intrusive selection, interval trees, up to you).
|
||||
- The supported widgets are Selectable(), Checkbox(). TreeNode() is also technically supported but...
|
||||
using this correctly is more complicated (you need some sort of linear/random access to your tree,
|
||||
which is suited to advanced trees setups already implementing filters and clipper.
|
||||
We will work toward simplifying and demoing this later.
|
||||
- A helper ImGuiSelectionBasicStorage is provided to facilitate getting started in a typical app.
|
||||
- Documentation:
|
||||
- Wiki page https://github.com/ocornut/imgui/wiki/Multi-Select for API overview.
|
||||
- Demo code.
|
||||
- Headers are well commented.
|
||||
- Added BeginMultiSelect(), EndMultiSelect(), SetNextItemSelectionUserData().
|
||||
- Added IsItemToggledSelection() for use if you need latest selection update during currnet iteration.
|
||||
- Added ImGuiMultiSelectIO and ImGuiSelectionRequest structures:
|
||||
- BeginMultiSelect() and EndMultiSelect() return a ImGuiMultiSelectIO structure, which
|
||||
is mostly an array of ImGuiSelectionRequest actions (clear, select all, set range, etc.)
|
||||
- Other fields are helpful when using a clipper, or wanting to handle deletion nicely.
|
||||
- Added ImGuiSelectionBasicStorage helper to store and maintain a selection (optional):
|
||||
- This is similar to if you used e.g. a std::set<ID> to store a selection, with all the right
|
||||
glue to honor ImGuiMultiSelectIO requests. Most applications can use that.
|
||||
- Added ImGuiSelectionExternalStorage helper to maintain an externally stored selection (optional):
|
||||
- Helpful to easily bind multi-selection to e.g. an array of checkboxes.
|
||||
- Added ImGuiMultiSelectFlags options:
|
||||
- ImGuiMultiSelectFlags_SingleSelect
|
||||
- ImGuiMultiSelectFlags_NoSelectAll
|
||||
- ImGuiMultiSelectFlags_NoRangeSelect
|
||||
- ImGuiMultiSelectFlags_NoAutoSelect
|
||||
- ImGuiMultiSelectFlags_NoAutoClear
|
||||
- ImGuiMultiSelectFlags_NoAutoClearOnReselect (#7424)
|
||||
- ImGuiMultiSelectFlags_BoxSelect1d
|
||||
- ImGuiMultiSelectFlags_BoxSelect2d
|
||||
- ImGuiMultiSelectFlags_BoxSelectNoScroll
|
||||
- ImGuiMultiSelectFlags_ClearOnEscape
|
||||
- ImGuiMultiSelectFlags_ClearOnClickVoid
|
||||
- ImGuiMultiSelectFlags_ScopeWindow (default), ImGuiMultiSelectFlags_ScopeRect
|
||||
- ImGuiMultiSelectFlags_SelectOnClick (default), ImGuiMultiSelectFlags_SelectOnClickRelease
|
||||
- ImGuiMultiSelectFlags_NavWrapX
|
||||
- Demo: Added "Examples->Assets Browser" demo.
|
||||
- Demo: Added "Widgets->Selection State & Multi-Select" section, with:
|
||||
- Multi-Select
|
||||
- Multi-Select (with clipper)
|
||||
- Multi-Select (with deletion)
|
||||
- Multi-Select (dual list box) (#6648)
|
||||
- Multi-Select (checkboxes)
|
||||
- Multi-Select (multiple scopes)
|
||||
- Multi-Select (advanced)
|
||||
- Clipper: added SeekCursorForItem() function. When using ImGuiListClipper::Begin(INT_MAX) you can
|
||||
can use the clipper without knowing the amount of items beforehand. (#1311)
|
||||
In this situation, call ImGuiListClipper::SeekCursorForItem(items_count) as the end of your iteration
|
||||
|
||||
Reference in New Issue
Block a user