void SUserInputSection::Construct()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/Containers/SUserInputSection.cpp [17:122]


void SUserInputSection::Construct(const FArguments& InArgs)
{
    TSharedRef<SVerticalBox> VerticalBox = SNew(SVerticalBox);

    VerticalBox->AddSlot()
        .AutoHeight()
        .Padding(SPadding::Bottom2x)
        [
            SNew(SBox)
                .Visibility_Lambda([this]()
                    {
                        return ShowGameServerPathInput();
                    })
                [
                    CreateGameServerPathInput()
                ]
        ];

    VerticalBox->AddSlot()
        .AutoHeight()
        .Padding(SPadding::Bottom2x)
        [
            CreateOutConfigFilePathInput()
        ];

    VerticalBox->AddSlot()
        .AutoHeight()
        .Padding(SPadding::Bottom2x)
        [
            SNew(SBox)
                .Visibility_Lambda([this]()
                    {
                        return ShowExistingECRRepoDropdown();
                    })
                [
                    CreateExistingECRRepoDropdown()
                ]
        ];

    VerticalBox->AddSlot()
        .AutoHeight()
        .Padding(SPadding::Bottom2x)
        [
            SNew(SBox)
                .Visibility_Lambda([this]()
                    {
                        return ShowExistingECRImageDropdown();
                    })
                [
                    CreateExistingECRImageDropdown()
                ]
        ];

    VerticalBox->AddSlot()
        .AutoHeight()
        .Padding(SPadding::Bottom2x)
        [
            SNew(SBox)
                .Visibility_Lambda([this]()
                    {
                        return ShowDockerRepoInput();
                    })
                [
                    CreateDockerRepoInput()
                ]
        ];

    // Deployment Scenario Choice
    VerticalBox->AddSlot()
        .AutoHeight()
        [
            CreateDeploymentScenarioChoice()
        ];


    // Default Settings
    TSharedPtr<SSectionsWithHeaders> SectionsWithHeaders = SNew(SSectionsWithHeaders).ShowDefaultColor(true);
    SectionsWithHeaders->AddSection(Menu::DeployContainers::kDefaultSettingsHeader, CreateDefaultSettings(), true);

    VerticalBox->AddSlot()
        .AutoHeight()
        .Padding(SPadding::Top + SPadding::SectionWithHeaderLeftPadding)
        [
            SectionsWithHeaders.ToSharedRef()
        ];

    ChildSlot
        .Padding(SPadding::Top_Bottom)
        [
            VerticalBox
        ];

    if (CanLoadECRRepoDropDown()) {
        LoadRepoInfoAsync();
    }

    if (CanLoadECRImageDropDown()) {
        LoadImageInfoAsync();
    }

    SIntakeQuestionnaireSection::OnDeploymentScenarioStateChangedMultiDelegate.AddSP(this, &SUserInputSection::OnDeploymentScenarioStateChanged);
    SGameLiftSettingsAwsAccountMenu::OnProfileSelectionChangedMultiDelegate.AddSP(this, &SUserInputSection::OnBootstrapStatusChanged);
    SResetDeploymentModal::OnResetDeploymentMultiDelegate.AddSP(this, &SUserInputSection::OnRefreshUI);

    UpdateInitialUI();
}