15 assert(ctx.
itemSets &&
"DrawContext::itemSets must not be null");
16 assert(ctx.
itemSetSearchBuf &&
"DrawContext::itemSetSearchBuf must not be null");
17 assert(ctx.
itemSetFiltered &&
"DrawContext::itemSetFiltered must not be null");
22 if (!cModel || !ctx.
isChar)
24 ImGui::TextDisabled(
"Load a character model first.");
32 ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x - 60.0f);
34 ImGuiInputTextFlags_EnterReturnsTrue))
39 if (ImGui::Button(
"Apply##itemset", ImVec2(-1, 0)))
51 ImGui::BeginChild(
"##ItemSetList", ImVec2(0, 200), ImGuiChildFlags_Borders);
54 ImGuiListClipper clipper;
56 while (clipper.Step())
58 for (
int i = clipper.DisplayStart; i < clipper.DisplayEnd; ++i)
61 ImGui::PushID(setEntry.id);
62 std::string label = std::format(
"{} (ID:{})", setEntry.name, setEntry.id);
63 if (ImGui::Selectable(label.c_str()))
75 ImGui::SeparatorText(
"Start Outfits");
82 ImGui::TextDisabled(
"No start outfits available for this race/sex.");
86 ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x - 60.0f);
88 ImGuiInputTextFlags_EnterReturnsTrue))
93 if (ImGui::Button(
"Apply##startoutfit", ImVec2(-1, 0)))
105 ImGui::BeginChild(
"##StartOutfitList", ImVec2(0, 150), ImGuiChildFlags_Borders);
108 ImGuiListClipper clipper;
110 while (clipper.Step())
112 for (
int i = clipper.DisplayStart; i < clipper.DisplayEnd; ++i)
115 ImGui::PushID(entry.id);
116 std::string label = std::format(
"{} (ID:{})", entry.name, entry.id);
117 if (ImGui::Selectable(label.c_str()))