void SResetDeploymentModal::Construct()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/Containers/SResetDeploymentModal.cpp [22:142]


void SResetDeploymentModal::Construct(const FArguments& InArgs)
{
    OwnerWindow = InArgs._OwnerWindow;

    UGameLiftContainersStatus* ContainersStatus = GetMutableDefault<UGameLiftContainersStatus>();

    ChildSlot
        [
            SNew(SVerticalBox)
                // 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::DeployContainers::kResetFleetDeploymentTitle)
                                .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kTitleStyleName)
                        ]
                        + SHorizontalBox::Slot()
                        .AutoWidth()
                        .HAlign(HAlign_Right)
                        .VAlign(VAlign_Center)
                        [
                            SNew(SButton)
                                .OnClicked(this, &SResetDeploymentModal::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)
                        [
                            // Reset deployment Description
                            SNew(SVerticalBox)
                            + SVerticalBox::Slot()
                            .AutoHeight()
                            .Padding(SPadding::Top_Bottom)
                            [
                                SNew(STextBlock)
                                    .Text(Menu::DeployContainers::kResetFleetDeploymentDescription)
                                    .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kParagraph)
                                    .AutoWrapText(true)

                            ]
                            // Reset deployment setup message warning
                            + SVerticalBox::Slot()
                            .AutoHeight()
                            .Padding(SPadding::Top_Bottom)
                            [
                                CreateResetFleetDeploymentWarningMessage()
                            ]
                            // Reset deployment Explanantion
                            + SVerticalBox::Slot()
                            .AutoHeight()
                            .Padding(SPadding::Top_Bottom)
                            [
                                SNew(STextBlock)
                                    .Text(Menu::DeployContainers::kResetFleetDeploymentExplanantion)
                                    .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kParagraph)
                                    .AutoWrapText(true)

                            ]
                            // 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)
                                            .ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kNormalButtonStyleName)
                                            .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonLight)
                                            .ContentPadding(SPadding::LaunchBarButtonPadding)
                                            .OnClicked_Lambda([&]
                                                {
                                                    OnCloseButtonClicked();
                                                    return FReply::Handled();
                                                })
                                    ]
                                    + SHorizontalBox::Slot()
                                    .AutoWidth()
                                    .HAlign(HAlign_Right)
                                    .VAlign(VAlign_Center)
                                    [
                                        SNew(SButton)
                                            .Text(Menu::DeployContainers::kResetButtonText)
                                            .TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
                                            .ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kErrorButtonStyleName)
                                            .ContentPadding(SPadding::LaunchBarButtonPadding)
                                            .OnClicked_Lambda([this]
                                                {
                                                    UGameLiftContainersStatus* ContainersStatus = GetMutableDefault<UGameLiftContainersStatus>();
                                                    ContainersStatus->GameName = Menu::DeployContainers::kGameNameDefault;
                                                    ContainersStatus->ContainerFleetDeploymentStatus = (int)EContainerFleetDeploymentStatus::DeploymentNotStart;
                                                    ContainersStatus->ResetStatus();
                                                    ContainersStatus->SaveConfig();
                                                    OnResetDeploymentMultiDelegate.Broadcast();
                                                    OnCloseButtonClicked();
                                                    return FReply::Handled();
                                                })
                                    ]
                            ]
                        ]
                ]
        ];
}