constraint game pad window aspect ratio

This commit is contained in:
Arnaud Jamin
2025-02-13 01:34:45 -05:00
parent 1d8f9b5368
commit ae19f27674
2 changed files with 25 additions and 14 deletions
@@ -50,18 +50,27 @@ void FCogInputWindow_Gamepad::PreBegin(ImGuiWindowFlags& WindowFlags)
{
Super::PreBegin(WindowFlags);
WindowFlags |= ImGuiWindowFlags_NoScrollbar;
if (Config->bShowAsOverlay)
{
WindowFlags = ImGuiWindowFlags_NoTitleBar
| ImGuiWindowFlags_NoScrollbar
| ImGuiWindowFlags_NoCollapse
| ImGuiWindowFlags_NoBackground;
//| ImGuiWindowFlags_NoResize;
}
ImGui::SetNextWindowSizeConstraints(ImVec2(100, 100), ImVec2(FLT_MAX, FLT_MAX), FCogInputWindow_Gamepad::ConstrainAspectRatio);
ImGui::PushStyleColor(ImGuiCol_ResizeGrip, IM_COL32_BLACK_TRANS);
}
//--------------------------------------------------------------------------------------------------------------------------
void FCogInputWindow_Gamepad::ConstrainAspectRatio(ImGuiSizeCallbackData* InData)
{
constexpr float AspectRatio = 0.65f;
InData->DesiredSize.y = static_cast<int>(InData->DesiredSize.x * AspectRatio + ImGui::GetFrameHeight());
}
//--------------------------------------------------------------------------------------------------------------------------
void FCogInputWindow_Gamepad::PostBegin()
{
@@ -482,23 +491,23 @@ void FCogInputWindow_Gamepad::RenderMainContextMenu()
SetIsVisible(false);
}
if (ImGui::MenuItem("Reset Settings"))
{
ResetConfig();
}
ImGui::Separator();
if (ImGui::BeginMenu("Display"))
{
ImGui::ColorEdit4("Background Color", (float*)&Config->BackgroundColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Border Color", (float*)&Config->BorderColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Button Color", (float*)&Config->ButtonColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Pressed Color", (float*)&Config->PressedColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Hovered Color", (float*)&Config->HoveredColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Inject Color", (float*)&Config->InjectColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Background Color", &Config->BackgroundColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Border Color", &Config->BorderColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Button Color", &Config->ButtonColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Pressed Color", &Config->PressedColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Hovered Color", &Config->HoveredColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Inject Color", &Config->InjectColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
FCogWidgets::SetNextItemToShortWidth();
FCogWidgets::SliderWithReset("Border", &Config->Border, 0.0f, 0.1f, 0.02f, "%0.3f");
ImGui::EndMenu();
}
ImGui::Separator();
if (ImGui::MenuItem("Reset Settings"))
{
ResetConfig();
}
}
@@ -47,6 +47,8 @@ protected:
virtual void TryRefreshActions();
static void ConstrainAspectRatio(ImGuiSizeCallbackData* InData);
TObjectPtr<UCogInputConfig_Gamepad> Config;
TMap<FKey, FCogInputActionInfo> Actions;