void SClientBuildModal::Construct()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/SClientBuildModal.cpp [16:130]


void SClientBuildModal::Construct(const FArguments& InArgs)
{
    ClientBuildExecutablePath = InArgs._DefaultClientBuildExecutablePath;
    OnStartClientClickedDelegate = InArgs._OnStartClientClickedDelegate;
    ParentWidget = InArgs._ParentWidget;

    ChildSlot
        [
            SAssignNew(OwnerWindow, SWindow)
                .IsPopupWindow(true)
                .SupportsMinimize(false)
                .SupportsMaximize(false)
                .bDragAnywhere(true)
                .SizingRule(ESizingRule::Autosized)
                .HasCloseButton(true)
                .Content()
                [
                    SNew(SBox)
                        .MinDesiredWidth(ModalWindowWidth)
                        [
                            SNew(SVerticalBox)
                                // Client modal title and close button
                                + SVerticalBox::Slot()
                                .AutoHeight()
                                .Padding(SPadding::Left4x + SPadding::Right4x + SPadding::Top2x_Bottom2x)
                                [
                                    SNew(SHorizontalBox)
                                        + SHorizontalBox::Slot()
                                        .FillWidth(1.0f)
                                        .HAlign(HAlign_Left)
                                        [
                                            SNew(STextBlock)
                                                .Text(Menu::DeployCommon::kClientBuildModalHeader)
                                                .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kTitleStyleName)
                                        ]
                                        + SHorizontalBox::Slot()
                                        .AutoWidth()
                                        .HAlign(HAlign_Right)
                                        .VAlign(VAlign_Center)
                                        [
                                            SNew(SButton)
                                                .OnClicked(this, &SClientBuildModal::OnCloseButtonClicked)
                                                .ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kCloseButtonStyleName)
                                        ]
                                ]
                                + SVerticalBox::Slot()
                                .AutoHeight()
                                [
                                    SNew(SBorder)
                                        .BorderBackgroundColor(FColor::Black)
                                        .BorderImage(FGameLiftPluginStyle::Get().GetBrush(Style::Brush::kBorderImageName))
                                        .Padding(SPadding::Left4x + SPadding::Right4x + SPadding::Top2x_Bottom2x)
                                        [
                                            SNew(SVerticalBox)
                                                // Client modal description
                                                + SVerticalBox::Slot()
                                                .AutoHeight()
                                                .Padding(SPadding::Top_Bottom)
                                                [
                                                    SNew(SRichTextBlock)
                                                        .Text(Menu::DeployCommon::kClientBuildModalDescription)
                                                        .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kParagraph)
                                                        .AutoWrapText(true)

                                                ]
                                                // Game client build executable input
                                                + SVerticalBox::Slot()
                                                .AutoHeight()
                                                .Padding(SPadding::Top_Bottom2x)
                                                [
                                                    CreateGameClientPathInput()
                                                ]
                                                // Buttons
                                                + SVerticalBox::Slot()
                                                .AutoHeight()
                                                .Padding(SPadding::Top2x_Bottom2x)
                                                [
                                                    SNew(SHorizontalBox)
                                                        + SHorizontalBox::Slot()
                                                        .FillWidth(1)
                                                        .HAlign(HAlign_Right)
                                                        .VAlign(VAlign_Center)
                                                        .Padding(SPadding::Right2x)
                                                        [
                                                            SNew(SButton)
                                                                .Text(Settings::AwsAccount::kCancelButtonText)
                                                                .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonLight)
                                                                .ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kNormalButtonStyleName)
                                                                .ContentPadding(SPadding::LaunchBarButtonPadding)
                                                                .OnClicked(this, &SClientBuildModal::OnCloseButtonClicked)
                                                        ]
                                                        + SHorizontalBox::Slot()
                                                        .AutoWidth()
                                                        .HAlign(HAlign_Right)
                                                        .VAlign(VAlign_Center)
                                                        [
                                                            SAssignNew(StartClient, SButton)
                                                                .Text(Menu::DeployCommon::kStartClientButtonText)
                                                                .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
                                                                .ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kSuccessButtonStyleName)
                                                                .ContentPadding(SPadding::LaunchBarButtonPadding)
                                                                .OnClicked_Raw(this, &SClientBuildModal::OnStartClientClicked)
                                                        ]
                                                ]
                                        ]
                                ]
                        ]
                ]
        ];
        
    SetParentWindow();
    ClientBuildExecutablePathToUpdate = ClientBuildExecutablePath;
    StartClient->SetEnabled(!ClientBuildExecutablePathToUpdate.IsEmpty());
    SGameLiftSettingsAwsAccountMenu::OnProfileSelectionChangedMultiDelegate.AddSP(this, &SClientBuildModal::OnBootstrapStatusChanged);
}