mirror of
https://github.com/Ed94/Cog.git
synced 2026-08-05 23:28:46 +00:00
constraint game pad window aspect ratio
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user