audio & rendering backend option greyed out if theres only one

This commit is contained in:
Alto1772 2022-10-26 11:20:58 +08:00
parent 0389c8084c
commit e94a7fff50
1 changed files with 22 additions and 10 deletions

View File

@ -553,17 +553,23 @@ namespace GameMenuBar {
auto audioBackends = SohImGui::GetAvailableAudioBackends();
auto currentAudioBackend = SohImGui::GetCurrentAudioBackend();
if (audioBackends.size() <= 1) {
ImGui::PushItemFlag(ImGuiItemFlags_Disabled, true);
ImGui::PushStyleVar(ImGuiStyleVar_Alpha, ImGui::GetStyle().Alpha * 0.5f);
}
if (ImGui::BeginCombo("##AApi", currentAudioBackend.second)) {
if (audioBackends.size() > 1) {
for (uint8_t i = 0; i < audioBackends.size(); i++) {
if (ImGui::Selectable(audioBackends[i].second, audioBackends[i] == currentAudioBackend)) {
SohImGui::SetCurrentAudioBackend(i, audioBackends[i]);
}
for (uint8_t i = 0; i < audioBackends.size(); i++) {
if (ImGui::Selectable(audioBackends[i].second, audioBackends[i] == currentAudioBackend)) {
SohImGui::SetCurrentAudioBackend(i, audioBackends[i]);
}
}
ImGui::EndCombo();
}
if (audioBackends.size() <= 1) {
ImGui::PopItemFlag();
ImGui::PopStyleVar(1);
}
ImGui::EndMenu();
}
@ -675,17 +681,23 @@ namespace GameMenuBar {
auto renderingBackends = SohImGui::GetAvailableRenderingBackends();
auto currentRenderingBackend = SohImGui::GetCurrentRenderingBackend();
if (renderingBackends.size() <= 1) {
ImGui::PushItemFlag(ImGuiItemFlags_Disabled, true);
ImGui::PushStyleVar(ImGuiStyleVar_Alpha, ImGui::GetStyle().Alpha * 0.5f);
}
if (ImGui::BeginCombo("##RApi", currentRenderingBackend.second)) {
if (renderingBackends.size() > 1) {
for (uint8_t i = 0; i < renderingBackends.size(); i++) {
if (ImGui::Selectable(renderingBackends[i].second, renderingBackends[i] == currentRenderingBackend)) {
SohImGui::SetCurrentRenderingBackend(i, renderingBackends[i]);
}
for (uint8_t i = 0; i < renderingBackends.size(); i++) {
if (ImGui::Selectable(renderingBackends[i].second, renderingBackends[i] == currentRenderingBackend)) {
SohImGui::SetCurrentRenderingBackend(i, renderingBackends[i]);
}
}
ImGui::EndCombo();
}
if (renderingBackends.size() <= 1) {
ImGui::PopItemFlag();
ImGui::PopStyleVar(1);
}
EXPERIMENTAL();