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); Super::PreBegin(WindowFlags);
WindowFlags |= ImGuiWindowFlags_NoScrollbar;
if (Config->bShowAsOverlay) if (Config->bShowAsOverlay)
{ {
WindowFlags = ImGuiWindowFlags_NoTitleBar WindowFlags = ImGuiWindowFlags_NoTitleBar
| ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollbar
| ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoCollapse
| ImGuiWindowFlags_NoBackground; | 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); 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() void FCogInputWindow_Gamepad::PostBegin()
{ {
@@ -482,23 +491,23 @@ void FCogInputWindow_Gamepad::RenderMainContextMenu()
SetIsVisible(false); SetIsVisible(false);
} }
if (ImGui::MenuItem("Reset Settings"))
{
ResetConfig();
}
ImGui::Separator();
if (ImGui::BeginMenu("Display")) if (ImGui::BeginMenu("Display"))
{ {
ImGui::ColorEdit4("Background Color", (float*)&Config->BackgroundColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf); ImGui::ColorEdit4("Background Color", &Config->BackgroundColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Border Color", (float*)&Config->BorderColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf); ImGui::ColorEdit4("Border Color", &Config->BorderColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Button Color", (float*)&Config->ButtonColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf); ImGui::ColorEdit4("Button Color", &Config->ButtonColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Pressed Color", (float*)&Config->PressedColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf); ImGui::ColorEdit4("Pressed Color", &Config->PressedColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Hovered Color", (float*)&Config->HoveredColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf); ImGui::ColorEdit4("Hovered Color", &Config->HoveredColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
ImGui::ColorEdit4("Inject Color", (float*)&Config->InjectColor, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf); ImGui::ColorEdit4("Inject Color", &Config->InjectColor.X, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_AlphaPreviewHalf);
FCogWidgets::SetNextItemToShortWidth(); FCogWidgets::SetNextItemToShortWidth();
FCogWidgets::SliderWithReset("Border", &Config->Border, 0.0f, 0.1f, 0.02f, "%0.3f"); FCogWidgets::SliderWithReset("Border", &Config->Border, 0.0f, 0.1f, 0.02f, "%0.3f");
ImGui::EndMenu(); ImGui::EndMenu();
} }
ImGui::Separator();
if (ImGui::MenuItem("Reset Settings"))
{
ResetConfig();
}
} }
@@ -47,6 +47,8 @@ protected:
virtual void TryRefreshActions(); virtual void TryRefreshActions();
static void ConstrainAspectRatio(ImGuiSizeCallbackData* InData);
TObjectPtr<UCogInputConfig_Gamepad> Config; TObjectPtr<UCogInputConfig_Gamepad> Config;
TMap<FKey, FCogInputActionInfo> Actions; TMap<FKey, FCogInputActionInfo> Actions;