TSharedRef SAnywhereRegisterComputeMenu::CreateAddNewComputeUI()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/Anywhere/SAnywhereRegisterComputeMenu.cpp [119:212]


TSharedRef<SWidget> SAnywhereRegisterComputeMenu::CreateAddNewComputeUI()
{
	TSharedRef<SVerticalBox> VerticalBox = SNew(SVerticalBox)
		// Compute name text input
		+ SVerticalBox::Slot()
		.AutoHeight()
		.HAlign(HAlign_Fill)
		.Padding(SPadding::Right2x + SPadding::Top)
		[
			SNew(SNamedRow)
			.NameText(Menu::DeployAnywhere::kComputeNameTitle)
			.RowWidget(
				SAssignNew(ComputeNameTextInput, SEditableTextBox)
				.HintText(Menu::DeployAnywhere::kComputeNameTextHint)
				.IsEnabled_Raw(this, &SAnywhereRegisterComputeMenu::CanEditComputeSettings)
			)
		]
		+ SVerticalBox::Slot()
		.AutoHeight()
		.HAlign(HAlign_Fill)
		.Padding(SPadding::Top2x + SPadding::Right2x)
		[
			SNew(SNamedRow)
			.NameText(Menu::DeployAnywhere::kComputeIPTitle)
			.NameTooltipText(Menu::DeployAnywhere::kComputeIPTextTooltip)
			.RowWidget(
				SAssignNew(ComputeIPTextInput, SIPAddressTextBox)
				.HintText(Menu::DeployAnywhere::kComputeIPTextHint)
				.IsEnabled_Raw(this, &SAnywhereRegisterComputeMenu::CanEditComputeSettings)
			)
		]
		+ SVerticalBox::Slot()
		.AutoHeight()
		.Padding(SPadding::Top3x + SPadding::Right2x)
		[
			SNew(SHorizontalBox)
			// Button to cancel adding new compute
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.Padding(SPadding::Right2x)
			[
				SAssignNew(CancelButton, SButton)
				.Text(Menu::DeployAnywhere::kCancelButtonText)
				.OnClicked_Raw(this, &SAnywhereRegisterComputeMenu::OnCancelComputeButtonClicked)
				.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kNormalButtonStyleName)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
			]
			// Button to register new compute
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.Padding(SPadding::Right2x)
			[
				SNew(SButton)
				.Text(Menu::DeployAnywhere::kRegisterFirstComputeButtonText)
				.OnClicked_Raw(this, &SAnywhereRegisterComputeMenu::OnRegisterFirstComputeButtonClicked)
				.IsEnabled_Raw(this, &SAnywhereRegisterComputeMenu::CanRegisterCompute)
				.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kSuccessButtonStyleName)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonLight)
			]
			// Loading indicator
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.VAlign(VAlign_Center)
			[
				SNew(STextStatus)
				.IconState(STextStatus::EIconState::Loading)
				.Visibility_Lambda([&]
				{
					return IsLoading ? EVisibility::Visible : EVisibility::Hidden;
				})
			]
		]
		+ SVerticalBox::Slot()
		.AutoHeight()
		.VAlign(VAlign_Center)
		.Padding(SPadding::Top2x + SPadding::Right2x)
		[
			SAssignNew(RegisterComputeErrorRow, SNamedRow)
			.SecondaryColumnLeftPadding(true)
			.RowWidget(
				SAssignNew(RegisterComputeErrorTextBlock, STextBlock)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kNote)
				.AutoWrapText(true)
			)
			.Visibility(EVisibility::Collapsed)
		];

		RegisterComputeErrorTextBlock->SetColorAndOpacity(FGameLiftPluginStyle::Get().GetColor(Style::Color::kError));

		return VerticalBox;
}