void ImGui::MultiCombo(const char* label, bool combos[], const char* items[], int items_count)
{
std::vector<std::string> vec;
static std::string preview;
for (int i = 0, j = 0; i < items_count; i++)
{
if (combos[i])
{
vec.push_back(items[i]);
if (j > 2)
preview = vec.at(0) + ", " + vec.at(1) + ", " + vec.at(2) + ", ...";
else if (j)
preview += ", " + (std::string)items[i];
else
preview = items[i];
j++;
}
}
if (BeginCombo(label, preview.c_str()))
{
for (int i = 0; i < items_count; i++) {
Selectable(items[i], &combos[i], ImGuiSelectableFlags_DontClosePopups);
}
EndCombo();
}
preview = "None";
}
static bool multi[5];
const char* multicombo_items[] = { "Selected 1", "Selected 2", "Selected 3", "Selected 4", "Selected 5" };
ImGui::MultiCombo("MultiCombo", multi, multicombo_items, IM_ARRAYSIZE(multicombo_items));