void SControlBarSection::Construct()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/Containers/SControlBarSection.cpp [32:87]


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

	bool isDockerInstalled = FPlatformMisc::OsExecute(TEXT("open"), TEXT("docker"), TEXT("-v"));

	if (!isDockerInstalled)
	{
		VerticalBox->AddSlot()
			.AutoHeight()
			[
				SNew(SBox)
					.Padding(SPadding::Bottom3x)
					.Visibility_Lambda([&]
						{
							UGameLiftContainersStatus* ContainersStatus = GetMutableDefault<UGameLiftContainersStatus>();
							bool IsVisible = IsAccountBootstrapped()
								&& (ContainersStatus->ContainerFleetDeploymentStatus == (int)EContainerFleetDeploymentStatus::DeploymentNotStart)
								&& (ContainersStatus->DeploymentScenario != (int)EContainersDeploymentScenario::HaveContainerImageInEcr);

							return IsVisible ? EVisibility::Visible : EVisibility::Collapsed;
						})
					[
						CreateDockerInstallWarningMessage()
					]
			];
	}

	VerticalBox->AddSlot()
		.AutoHeight()
		[
			SNew(SBox)
				.Padding(SPadding::Bottom3x)
				.Visibility_Lambda([&]()
					{
						UGameLiftContainersStatus* ContainersStatus = GetMutableDefault<UGameLiftContainersStatus>();
						return (IsAccountBootstrapped() && ContainersStatus->ContainerFleetDeploymentStatus == (int)EContainerFleetDeploymentStatus::DeploymentNotStart) ? EVisibility::Visible : EVisibility::Collapsed;
					})
				[
					CreateDeploymentTimeNotificationBar()
				]
		];

	VerticalBox->AddSlot()
		.AutoHeight()
		.Padding(SPadding::Top_Bottom + SPadding::Right2x)
		.HAlign(HAlign_Right)
		[
			CreateDeploymentButtonsRow()
		];

	ChildSlot
		[
			VerticalBox
		];
}