mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-26 15:45:42 +00:00
FullscreenUI: Correct pixel alignment of some UI elements
Fixes scrollbars showing up at some window sizes.
This commit is contained in:
parent
864b0ad5fe
commit
69e0c1681c
|
@ -1982,7 +1982,7 @@ void FullscreenUI::DrawIntRangeSetting(SettingsInterface* bsi, const char* title
|
||||||
if (MenuButtonWithValue(title, summary, value_text.c_str(), enabled, height, font, summary_font))
|
if (MenuButtonWithValue(title, summary, value_text.c_str(), enabled, height, font, summary_font))
|
||||||
ImGui::OpenPopup(title);
|
ImGui::OpenPopup(title);
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(LayoutScale(500.0f, 190.0f));
|
ImGui::SetNextWindowSize(LayoutScale(500.0f, 192.0f));
|
||||||
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
||||||
|
|
||||||
ImGui::PushFont(g_large_font);
|
ImGui::PushFont(g_large_font);
|
||||||
|
@ -2040,7 +2040,7 @@ void FullscreenUI::DrawFloatRangeSetting(SettingsInterface* bsi, const char* tit
|
||||||
if (MenuButtonWithValue(title, summary, value_text.c_str(), enabled, height, font, summary_font))
|
if (MenuButtonWithValue(title, summary, value_text.c_str(), enabled, height, font, summary_font))
|
||||||
ImGui::OpenPopup(title);
|
ImGui::OpenPopup(title);
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(LayoutScale(500.0f, 190.0f));
|
ImGui::SetNextWindowSize(LayoutScale(500.0f, 192.0f));
|
||||||
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
||||||
|
|
||||||
ImGui::PushFont(g_large_font);
|
ImGui::PushFont(g_large_font);
|
||||||
|
@ -2106,7 +2106,7 @@ void FullscreenUI::DrawFloatSpinBoxSetting(SettingsInterface* bsi, const char* t
|
||||||
manual_input = false;
|
manual_input = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(LayoutScale(500.0f, 190.0f));
|
ImGui::SetNextWindowSize(LayoutScale(500.0f, 192.0f));
|
||||||
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
||||||
|
|
||||||
ImGui::PushFont(g_large_font);
|
ImGui::PushFont(g_large_font);
|
||||||
|
@ -2358,7 +2358,7 @@ void FullscreenUI::DrawIntSpinBoxSetting(SettingsInterface* bsi, const char* tit
|
||||||
manual_input = false;
|
manual_input = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(LayoutScale(500.0f, 190.0f));
|
ImGui::SetNextWindowSize(LayoutScale(500.0f, 192.0f));
|
||||||
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
||||||
|
|
||||||
ImGui::PushFont(g_large_font);
|
ImGui::PushFont(g_large_font);
|
||||||
|
@ -2826,8 +2826,9 @@ void FullscreenUI::DoClearGameSettings()
|
||||||
void FullscreenUI::DrawSettingsWindow()
|
void FullscreenUI::DrawSettingsWindow()
|
||||||
{
|
{
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
ImVec2 heading_size = ImVec2(
|
const ImVec2 heading_size =
|
||||||
io.DisplaySize.x, LayoutScale(LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY + LAYOUT_MENU_BUTTON_Y_PADDING * 2.0f + 2.0f));
|
ImVec2(io.DisplaySize.x, LayoutScale(LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY) +
|
||||||
|
(LayoutScale(LAYOUT_MENU_BUTTON_Y_PADDING) * 2.0f) + LayoutScale(2.0f));
|
||||||
|
|
||||||
const float bg_alpha = System::IsValid() ? (s_settings_page == SettingsPage::PostProcessing ? 0.50f : 0.90f) : 1.0f;
|
const float bg_alpha = System::IsValid() ? (s_settings_page == SettingsPage::PostProcessing ? 0.50f : 0.90f) : 1.0f;
|
||||||
|
|
||||||
|
@ -3327,7 +3328,7 @@ void FullscreenUI::DrawConsoleSettingsPage()
|
||||||
u32 oc_numerator = GetEffectiveUIntSetting(bsi, "CPU", "OverclockNumerator", 1);
|
u32 oc_numerator = GetEffectiveUIntSetting(bsi, "CPU", "OverclockNumerator", 1);
|
||||||
u32 oc_denominator = GetEffectiveUIntSetting(bsi, "CPU", "OverclockDenominator", 1);
|
u32 oc_denominator = GetEffectiveUIntSetting(bsi, "CPU", "OverclockDenominator", 1);
|
||||||
s32 oc_percent = static_cast<s32>(Settings::CPUOverclockFractionToPercent(oc_numerator, oc_denominator));
|
s32 oc_percent = static_cast<s32>(Settings::CPUOverclockFractionToPercent(oc_numerator, oc_denominator));
|
||||||
if (RangeButton(FSUI_CSTR("Overclocking Percentage"),
|
if (RangeButton(FSUI_ICONSTR(ICON_FA_TACHOMETER_ALT, "Overclocking Percentage"),
|
||||||
FSUI_CSTR("Selects the percentage of the normal clock speed the emulated hardware will run at."),
|
FSUI_CSTR("Selects the percentage of the normal clock speed the emulated hardware will run at."),
|
||||||
&oc_percent, 10, 1000, 10, "%d%%"))
|
&oc_percent, 10, 1000, 10, "%d%%"))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1480,7 +1480,7 @@ bool ImGuiFullscreen::ThreeWayToggleButton(const char* title, const char* summar
|
||||||
bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, s32* value, s32 min, s32 max, s32 increment,
|
bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, s32* value, s32 min, s32 max, s32 increment,
|
||||||
const char* format, bool enabled /*= true*/,
|
const char* format, bool enabled /*= true*/,
|
||||||
float height /*= LAYOUT_MENU_BUTTON_HEIGHT*/, ImFont* font /*= g_large_font*/,
|
float height /*= LAYOUT_MENU_BUTTON_HEIGHT*/, ImFont* font /*= g_large_font*/,
|
||||||
ImFont* summary_font /*= g_medium_font*/)
|
ImFont* summary_font /*= g_medium_font*/, const char* ok_text /*= "OK"*/)
|
||||||
{
|
{
|
||||||
ImRect bb;
|
ImRect bb;
|
||||||
bool visible, hovered;
|
bool visible, hovered;
|
||||||
|
@ -1520,7 +1520,7 @@ bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, s32* v
|
||||||
|
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(LayoutScale(500.0f, 180.0f));
|
ImGui::SetNextWindowSize(LayoutScale(500.0f, 192.0f));
|
||||||
ImGui::SetNextWindowPos((ImGui::GetIO().DisplaySize - LayoutScale(0.0f, LAYOUT_FOOTER_HEIGHT)) * 0.5f,
|
ImGui::SetNextWindowPos((ImGui::GetIO().DisplaySize - LayoutScale(0.0f, LAYOUT_FOOTER_HEIGHT)) * 0.5f,
|
||||||
ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
||||||
|
|
||||||
|
@ -1528,23 +1528,28 @@ bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, s32* v
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, LayoutScale(10.0f));
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, LayoutScale(10.0f));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, LayoutScale(ImGuiFullscreen::LAYOUT_MENU_BUTTON_X_PADDING,
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, LayoutScale(ImGuiFullscreen::LAYOUT_MENU_BUTTON_X_PADDING,
|
||||||
ImGuiFullscreen::LAYOUT_MENU_BUTTON_Y_PADDING));
|
ImGuiFullscreen::LAYOUT_MENU_BUTTON_Y_PADDING));
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, LayoutScale(20.0f, 20.0f));
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, LayoutScale(20.0f, 20.0f));
|
||||||
|
|
||||||
if (ImGui::BeginPopupModal(title, nullptr,
|
if (ImGui::BeginPopupModal(title, nullptr,
|
||||||
ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove))
|
ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove))
|
||||||
{
|
{
|
||||||
ImGui::SetNextItemWidth(LayoutScale(450.0f));
|
BeginMenuButtons();
|
||||||
|
|
||||||
|
const float end = ImGui::GetCurrentWindow()->WorkRect.GetWidth();
|
||||||
|
ImGui::SetNextItemWidth(end);
|
||||||
|
|
||||||
changed = ImGui::SliderInt("##value", value, min, max, format, ImGuiSliderFlags_NoInput);
|
changed = ImGui::SliderInt("##value", value, min, max, format, ImGuiSliderFlags_NoInput);
|
||||||
|
|
||||||
BeginMenuButtons();
|
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + LayoutScale(10.0f));
|
||||||
if (MenuButton("OK", nullptr, true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY))
|
if (MenuButtonWithoutSummary(ok_text, true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY, g_large_font, ImVec2(0.5f, 0.0f)))
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
EndMenuButtons();
|
EndMenuButtons();
|
||||||
|
|
||||||
ImGui::EndPopup();
|
ImGui::EndPopup();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::PopStyleVar(3);
|
ImGui::PopStyleVar(4);
|
||||||
ImGui::PopFont();
|
ImGui::PopFont();
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
|
@ -1553,7 +1558,7 @@ bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, s32* v
|
||||||
bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, float* value, float min, float max,
|
bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, float* value, float min, float max,
|
||||||
float increment, const char* format, bool enabled /*= true*/,
|
float increment, const char* format, bool enabled /*= true*/,
|
||||||
float height /*= LAYOUT_MENU_BUTTON_HEIGHT*/, ImFont* font /*= g_large_font*/,
|
float height /*= LAYOUT_MENU_BUTTON_HEIGHT*/, ImFont* font /*= g_large_font*/,
|
||||||
ImFont* summary_font /*= g_medium_font*/)
|
ImFont* summary_font /*= g_medium_font*/, const char* ok_text /*= "OK"*/)
|
||||||
{
|
{
|
||||||
ImRect bb;
|
ImRect bb;
|
||||||
bool visible, hovered;
|
bool visible, hovered;
|
||||||
|
@ -1593,7 +1598,7 @@ bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, float*
|
||||||
|
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(LayoutScale(500.0f, 180.0f));
|
ImGui::SetNextWindowSize(LayoutScale(500.0f, 192.0f));
|
||||||
ImGui::SetNextWindowPos((ImGui::GetIO().DisplaySize - LayoutScale(0.0f, LAYOUT_FOOTER_HEIGHT)) * 0.5f,
|
ImGui::SetNextWindowPos((ImGui::GetIO().DisplaySize - LayoutScale(0.0f, LAYOUT_FOOTER_HEIGHT)) * 0.5f,
|
||||||
ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
ImGuiCond_Always, ImVec2(0.5f, 0.5f));
|
||||||
|
|
||||||
|
@ -1601,23 +1606,27 @@ bool ImGuiFullscreen::RangeButton(const char* title, const char* summary, float*
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, LayoutScale(10.0f));
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, LayoutScale(10.0f));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, LayoutScale(ImGuiFullscreen::LAYOUT_MENU_BUTTON_X_PADDING,
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, LayoutScale(ImGuiFullscreen::LAYOUT_MENU_BUTTON_X_PADDING,
|
||||||
ImGuiFullscreen::LAYOUT_MENU_BUTTON_Y_PADDING));
|
ImGuiFullscreen::LAYOUT_MENU_BUTTON_Y_PADDING));
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, LayoutScale(20.0f, 20.0f));
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, LayoutScale(20.0f, 20.0f));
|
||||||
|
|
||||||
if (ImGui::BeginPopupModal(title, nullptr,
|
if (ImGui::BeginPopupModal(title, nullptr,
|
||||||
ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove))
|
ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove))
|
||||||
{
|
{
|
||||||
ImGui::SetNextItemWidth(LayoutScale(450.0f));
|
BeginMenuButtons();
|
||||||
|
|
||||||
|
const float end = ImGui::GetCurrentWindow()->WorkRect.GetWidth();
|
||||||
|
ImGui::SetNextItemWidth(end);
|
||||||
|
|
||||||
changed = ImGui::SliderFloat("##value", value, min, max, format, ImGuiSliderFlags_NoInput);
|
changed = ImGui::SliderFloat("##value", value, min, max, format, ImGuiSliderFlags_NoInput);
|
||||||
|
|
||||||
BeginMenuButtons();
|
if (MenuButtonWithoutSummary(ok_text, true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY, g_large_font, ImVec2(0.5f, 0.0f)))
|
||||||
if (MenuButton("OK", nullptr, true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY))
|
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
EndMenuButtons();
|
EndMenuButtons();
|
||||||
|
|
||||||
ImGui::EndPopup();
|
ImGui::EndPopup();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::PopStyleVar(3);
|
ImGui::PopStyleVar(4);
|
||||||
ImGui::PopFont();
|
ImGui::PopFont();
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
|
@ -1719,8 +1728,8 @@ void ImGuiFullscreen::BeginNavBar(float x_padding /*= LAYOUT_MENU_BUTTON_X_PADDI
|
||||||
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, LayoutScale(x_padding, y_padding));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, LayoutScale(x_padding, y_padding));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 0.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 0.0f);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, LayoutScale(1.0f));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, LayoutScale(1.0f, 1.0f));
|
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, LayoutScale(1.0f, 0.0f));
|
||||||
PushPrimaryColor();
|
PushPrimaryColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2277,8 +2286,8 @@ void ImGuiFullscreen::DrawChoiceDialog()
|
||||||
const float title_height =
|
const float title_height =
|
||||||
g_large_font->FontSize + ImGui::GetStyle().FramePadding.y * 2.0f + ImGui::GetStyle().WindowPadding.y * 2.0f;
|
g_large_font->FontSize + ImGui::GetStyle().FramePadding.y * 2.0f + ImGui::GetStyle().WindowPadding.y * 2.0f;
|
||||||
const float height =
|
const float height =
|
||||||
std::min(LayoutScale(480.0f),
|
std::min(LayoutScale(480.0f), title_height + (LayoutScale(LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY) +
|
||||||
title_height + LayoutScale(LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY + (LAYOUT_MENU_BUTTON_Y_PADDING * 2.0f)) *
|
LayoutScale(LAYOUT_MENU_BUTTON_Y_PADDING) * 2.0f) *
|
||||||
static_cast<float>(s_choice_dialog_options.size()));
|
static_cast<float>(s_choice_dialog_options.size()));
|
||||||
ImGui::SetNextWindowSize(ImVec2(width, height));
|
ImGui::SetNextWindowSize(ImVec2(width, height));
|
||||||
ImGui::SetNextWindowPos((ImGui::GetIO().DisplaySize - LayoutScale(0.0f, LAYOUT_FOOTER_HEIGHT)) * 0.5f,
|
ImGui::SetNextWindowPos((ImGui::GetIO().DisplaySize - LayoutScale(0.0f, LAYOUT_FOOTER_HEIGHT)) * 0.5f,
|
||||||
|
|
|
@ -212,10 +212,10 @@ bool ThreeWayToggleButton(const char* title, const char* summary, std::optional<
|
||||||
ImFont* summary_font = g_medium_font);
|
ImFont* summary_font = g_medium_font);
|
||||||
bool RangeButton(const char* title, const char* summary, s32* value, s32 min, s32 max, s32 increment,
|
bool RangeButton(const char* title, const char* summary, s32* value, s32 min, s32 max, s32 increment,
|
||||||
const char* format = "%d", bool enabled = true, float height = LAYOUT_MENU_BUTTON_HEIGHT,
|
const char* format = "%d", bool enabled = true, float height = LAYOUT_MENU_BUTTON_HEIGHT,
|
||||||
ImFont* font = g_large_font, ImFont* summary_font = g_medium_font);
|
ImFont* font = g_large_font, ImFont* summary_font = g_medium_font, const char* ok_text = "OK");
|
||||||
bool RangeButton(const char* title, const char* summary, float* value, float min, float max, float increment,
|
bool RangeButton(const char* title, const char* summary, float* value, float min, float max, float increment,
|
||||||
const char* format = "%f", bool enabled = true, float height = LAYOUT_MENU_BUTTON_HEIGHT,
|
const char* format = "%f", bool enabled = true, float height = LAYOUT_MENU_BUTTON_HEIGHT,
|
||||||
ImFont* font = g_large_font, ImFont* summary_font = g_medium_font);
|
ImFont* font = g_large_font, ImFont* summary_font = g_medium_font, const char* ok_text = "OK");
|
||||||
bool EnumChoiceButtonImpl(const char* title, const char* summary, s32* value_pointer,
|
bool EnumChoiceButtonImpl(const char* title, const char* summary, s32* value_pointer,
|
||||||
const char* (*to_display_name_function)(s32 value, void* opaque), void* opaque, u32 count,
|
const char* (*to_display_name_function)(s32 value, void* opaque), void* opaque, u32 count,
|
||||||
bool enabled, float height, ImFont* font, ImFont* summary_font);
|
bool enabled, float height, ImFont* font, ImFont* summary_font);
|
||||||
|
|
Loading…
Reference in a new issue