MCPcopy Create free account
hub / github.com/Wemino/MarkerPatch / MultiSelectAddSetRange

Method MultiSelectAddSetRange

include/imgui/imgui_widgets.cpp:8537–8557  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8535}
8536
8537void ImGui::MultiSelectAddSetRange(ImGuiMultiSelectTempData* ms, bool selected, int range_dir, ImGuiSelectionUserData first_item, ImGuiSelectionUserData last_item)
8538{
8539 // Merge contiguous spans into same request (unless NoRangeSelect is set which guarantees single-item ranges)
8540 // FIXME-OPT: Disabled on 2026/04/09 as this would break with any form of coarse clipping that we don't know about (e.g. TableNextColumn() return value).
8541 // The low-hanging fruit would be to know that ImGuiSelectionUserData are sequential indices, in which case we can trivially compare PrevSubmittedItem + RangeDir == FirstItem.
8542 // User can always perform this merge if required.
8543#if 0
8544 if (ms->IO.Requests.Size > 0 && first_item == last_item && (ms->Flags & ImGuiMultiSelectFlags_NoRangeSelect) == 0)
8545 {
8546 ImGuiSelectionRequest* prev = &ms->IO.Requests.Data[ms->IO.Requests.Size - 1];
8547 if (prev->Type == ImGuiSelectionRequestType_SetRange && prev->RangeLastItem == ms->PrevSubmittedItem && prev->Selected == selected)
8548 {
8549 prev->RangeLastItem = last_item;
8550 return;
8551 }
8552 }
8553#endif
8554
8555 ImGuiSelectionRequest req = { ImGuiSelectionRequestType_SetRange, selected, (ImS8)range_dir, (range_dir > 0) ? first_item : last_item, (range_dir > 0) ? last_item : first_item };
8556 ms->IO.Requests.push_back(req); // Add new request
8557}
8558
8559void ImGui::DebugNodeMultiSelectState(ImGuiMultiSelectState* storage)
8560{

Callers

nothing calls this directly

Calls 1

push_backMethod · 0.45

Tested by

no test coverage detected