26 if (!ImGui::Begin(
"Colormap Editor", show))
32 auto showColormaps = [](std::vector<Colormap>& colormaps,
bool flow) {
33 int colormapRemovalIdx = -1;
35 if (ImGui::BeginTable(
"##{} colormap table", 4, ImGuiTableFlags_SizingFixedFit, ImVec2(0.0F, 0.0F)))
37 ImGui::TableSetupColumn(
"Name", ImGuiTableColumnFlags_WidthFixed, 150.0F);
38 ImGui::TableSetupColumn(
"Discrete", ImGuiTableColumnFlags_WidthFixed, 25.0F);
39 ImGui::TableSetupColumn(
"Map", ImGuiTableColumnFlags_WidthStretch);
40 ImGui::TableSetupColumn(
"Delete", ImGuiTableColumnFlags_WidthFixed, 20.0F);
42 for (
size_t i = 0; i < colormaps.size(); i++)
44 auto& cmap = colormaps.at(i);
46 ImGui::TableNextColumn();
47 ImGui::SetNextItemWidth(152.0F);
48 if (ImGui::InputText(fmt::format(
"##colormap name {}", i).c_str(), &cmap.name))
53 ImGui::TableNextColumn();
54 ImGui::SetNextItemWidth(145.0F);
55 if (ImGui::Checkbox(fmt::format(
"##colormap discrete {}", i).c_str(), &cmap.discrete))
60 if (ImGui::IsItemHovered()) { ImGui::SetTooltip(
"Discrete?"); }
62 ImGui::TableNextColumn();
63 ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
64 if (
ColormapButton(fmt::format(
"##colormap button {}", i).c_str(), cmap, ImVec2(-1.0F, 0.0F)))
69 ImGui::TableNextColumn();
70 if (ImGui::Button(fmt::format(
"X##remove colormap {}", i).c_str())) { colormapRemovalIdx =
static_cast<int>(i); }
71 if (ImGui::IsItemHovered()) { ImGui::SetTooltip(
"Remove?"); }
77 if (colormapRemovalIdx >= 0)
79 colormaps.erase(colormaps.begin() +
static_cast<std::ptrdiff_t
>(colormapRemovalIdx));
83 if (ImGui::Button(
"Add##colormap"))
85 colormaps.emplace_back();
90 if (ImGui::BeginTabBar(
"Colormap TabBar"))
92 if (ImGui::BeginTabItem(
"Global"))
97 if (ImGui::BeginTabItem(
"Flow"))