Skip to content

Commit

Permalink
Add option to hide the imgui bar with a click event (#3791)
Browse files Browse the repository at this point in the history
Should cover edge cases where the bar is displayed and a keyboard type
device is not connected to the system (Steam deck/touch input based
device instead).

While it should probably be impossible to display the bar in the first
place on such devices it apparently isnt ->
https://www.reddit.com/r/jakanddaxter/comments/1h4mht1/how_to_remove_grey_bar_at_top_on_steamdeck/

And even ignoring the whole steamdeck/no keyboard thing adding another
way to hide it that is visible on the bar should help reduce people
asking about how to hide it. (And hopefully help people who dont
ask/dont know where to ask!)



https://github.com/user-attachments/assets/7f132781-675c-451e-8b39-2a78fa098b9e
  • Loading branch information
Zedb0T authored Dec 7, 2024
1 parent 1029516 commit 6e4e5d2
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions game/graphics/opengl_renderer/debug_gui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,26 @@ void OpenGlDebugGui::draw(const DmaStats& dma_stats) {
}

if (!Gfx::g_debug_settings.ignore_hide_imgui) {
ImGui::Text("%s", fmt::format("Toggle toolbar with {}",
sdl_util::get_keyboard_button_name(
Gfx::g_debug_settings.hide_imgui_key, InputModifiers()))
.c_str());
std::string button_text =
fmt::format("Click here or Press {} to hide Toolbar",
sdl_util::get_keyboard_button_name(Gfx::g_debug_settings.hide_imgui_key,
InputModifiers()));

ImVec2 text_size = ImGui::CalcTextSize(button_text.c_str());
float button_width = text_size.x + ImGui::GetStyle().FramePadding.x * 2;
float button_height = text_size.y + ImGui::GetStyle().FramePadding.y * 2;

ImGui::PushStyleColor(ImGuiCol_Header, ImGui::GetStyleColorVec4(ImGuiCol_MenuBarBg));
ImGui::PushStyleColor(ImGuiCol_HeaderHovered,
ImGui::GetStyleColorVec4(ImGuiCol_HeaderHovered));
ImGui::PushStyleColor(ImGuiCol_HeaderActive, ImGui::GetStyleColorVec4(ImGuiCol_HeaderActive));

if (ImGui::Selectable(button_text.c_str(), false, ImGuiSelectableFlags_DontClosePopups,
ImVec2(button_width, button_height))) {
std::shared_ptr<GfxDisplay> display = Display::GetMainDisplay();
display->set_imgui_visible(false);
}
ImGui::PopStyleColor(3);
}
}
ImGui::EndMainMenuBar();
Expand Down

0 comments on commit 6e4e5d2

Please sign in to comment.