TSharedRef SControlBarSection::CreateDeploymentButtonSwitcher()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/Containers/SControlBarSection.cpp [232:339]


TSharedRef<SWidget> SControlBarSection::CreateDeploymentButtonSwitcher()
{
	return SNew(SWidgetSwitcher)
		.WidgetIndex_Lambda([&]
			{
				UGameLiftContainersStatus* ContainersStatus = GetMutableDefault<UGameLiftContainersStatus>();
				return ContainersStatus->ContainerFleetDeploymentStatus;
			})
		+ SWidgetSwitcher::Slot()
		[
			SNew(SBox)
				.HeightOverride(OverrideButtonHeight)
				.HAlign(HAlign_Center)
				[
					SNew(SButton)
						.HAlign(HAlign_Center)
						.VAlign(VAlign_Center)
						.Text(Menu::DeployContainers::kDeployContainerFleetButtonText)
						.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
						.IsEnabled_Raw(this, &SControlBarSection::IsAccountBootstrapped)
						.ToolTipText_Lambda([&]()
							{
								if (!IsAccountBootstrapped())
								{
									return Menu::DeployCommon::kDeploymentDisabledNeedBootstrapTooltip;
								}

								return Menu::DeployCommon::kDeploymentEnabledTooltip;
							})
						.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kSuccessButtonStyleName)
						.OnClicked_Lambda([this]
							{
								UGameLiftContainersStatus* ContainersStatus = GetMutableDefault<UGameLiftContainersStatus>();
								ContainersStatus->ContainerFleetDeploymentStatus = (int)EContainerFleetDeploymentStatus::DeploymentInProgress;
								ContainersStatus->SaveConfig();
								OnNewDeploymentMultiDelegate.Broadcast();
								return FReply::Handled();
							})
				]
		]
		+ SWidgetSwitcher::Slot()
		[
			SNew(SBox)
				.HeightOverride(OverrideButtonHeight)
				.HAlign(HAlign_Center)
				[
					SNew(SButton)
						.HAlign(HAlign_Center)
						.VAlign(VAlign_Center)
						.Text(Menu::DeployContainers::kResetDeploymentButtonText)
						.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
						.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kErrorButtonStyleName)
						.OnClicked_Lambda([this]
							{
								DisplayResetModal();
								return FReply::Handled();
							})
				]
		]
		+ SWidgetSwitcher::Slot()
		[
			SNew(SButton)
				.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kNormalButtonStyleName)
				.OnClicked_Lambda([]
					{
						UGameLiftContainersStatus* ContainersStatus = GetMutableDefault<UGameLiftContainersStatus>();
						ContainersStatus->ContainerFleetDeploymentStatus = (int)EContainerFleetDeploymentStatus::DeploymentNotStart;
						ContainersStatus->SaveConfig();
						return FReply::Handled();
					})
				.Content()
				[
					SNew(SBox)
						.HeightOverride(OverrideButtonHeight)
						.HAlign(HAlign_Center)
						[
							SNew(SHorizontalBox)
								+ SHorizontalBox::Slot()
								.AutoWidth()
								.HAlign(HAlign_Center)
								.VAlign(VAlign_Center)
								[
									SNew(SBox)
										.WidthOverride(Style::kResetIconSize)
										.HeightOverride(Style::kResetIconSize)
										[
											SNew(SImage)
												.Image(FGameLiftPluginStyle::Get().GetBrush(Style::Brush::kResetIconName))
#if(ENGINE_MAJOR_VERSION == 4)
												.ColorAndOpacity(FColor::Black)
#endif
										]
								]

								+ SHorizontalBox::Slot()
								.AutoWidth()
								.Padding(SPadding::Left)
								.HAlign(HAlign_Left)
								.VAlign(VAlign_Center)
								[
									SNew(STextBlock)
										.Text(Menu::DeployContainers::kResetDeploymentButtonText)
										.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
								]
						]
				]
		];
}