ImGuiStorage_Storage;// [Internal] Selection set. Think of this as similar to e.g. std::set<ImGuiID>. Prefer not accessing directly: iterate with GetNextSelectedItem().
ImGuiStorage_Storage;// [Internal] Selection set. Think of this as similar to e.g. std::set<ImGuiID>. Prefer not accessing directly: iterate with GetNextSelectedItem().
intSize;// Number of selected items, maintained by this helper.
intSize;// Number of selected items (== number of 1 in the Storage), maintained by this helper.
void*UserData;// User data for use by adapter function // e.g. selection.UserData = (void*)my_items;
void*UserData;// User data for use by adapter function // e.g. selection.UserData = (void*)my_items;
ImGuiID(*AdapterIndexToStorageId)(ImGuiSelectionBasicStorage*self,intidx);// e.g. selection.AdapterIndexToStorageId = [](ImGuiSelectionBasicStorage* self, int idx) { return ((MyItems**)self->UserData)[idx]->ID; };
ImGuiID(*AdapterIndexToStorageId)(ImGuiSelectionBasicStorage*self,intidx);// e.g. selection.AdapterIndexToStorageId = [](ImGuiSelectionBasicStorage* self, int idx) { return ((MyItems**)self->UserData)[idx]->ID; };
storage->BuildSortByKey();// When done selecting: sort everything
storage->BuildSortByKey();// When done selecting: sort everything
else
ImGuiSelectionBasicStorage_Compact(selection);// When done unselecting: compact by removing all zero values (might be done lazily when iterating selection?)
IM_ASSERT(selection->Size==storage->Data.Size);
}
}
// Apply requests coming from BeginMultiSelect() and EndMultiSelect().
// Apply requests coming from BeginMultiSelect() and EndMultiSelect().