From 6d3593315e6dd25d74e065847951bd3aa8c89e6a Mon Sep 17 00:00:00 2001 From: omar Date: Thu, 21 Dec 2023 16:03:14 +0100 Subject: [PATCH] Updated Multi Select (markdown) --- Multi-Select.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Multi-Select.md b/Multi-Select.md index 7674c5b..a920fec 100644 --- a/Multi-Select.md +++ b/Multi-Select.md @@ -8,6 +8,18 @@ - **In the spirit of Dear ImGui design, your code owns actual selection data**. This is designed to allow all kinds of selection storage you may use in your application e.g. external selection (set/map/hash), intrusive selection (bool inside your objects) etc. - The work involved to deal with multi-selection differs whether you want to only submit visible items and clip others, or submit all items regardless of their visibility. Clipping items is more efficient and will allow you to deal with large lists (1k~100k items). See "Usage flow" section below for details. If you are not sure, always start without clipping! You can work your way to the optimized version afterwards. +### Features + +- Design allows all item data and selection data to be fully owned by user. Agnostic to storage type. +- Support CTRL+Click +- Support Shift+Click +- Support mouse box-selection (with scrolling). +- Compatible with keyboard navigation, incl CTRL+Arrow, SHIFT+Arrows but also naturally works with PageUp/PageDown, Home/End etc. +- Compatible with ImGuiListClipper. +- Compatible with drag and drop idioms. +- `ImGuiSelectionBasicStorage` helper used by demos and for quick-start/convenience. Advanced users may bypass it. +- Demos in `Widgets->Selection State & Multi-Select` and `Examples->Assets Browser`. + ### Principal APIs ```cpp