TSharedRef SConnectAnywhereFleetMenu::CreateAddNewFleetUI()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/Anywhere/SConnectAnywhereFleetMenu.cpp [220:322]


TSharedRef<SWidget> SConnectAnywhereFleetMenu::CreateAddNewFleetUI()
{
	TSharedRef<SVerticalBox> VerticalBox = SNew(SVerticalBox)
		// Anywhere fleet name text input
		+ SVerticalBox::Slot()
		.AutoHeight()
		.HAlign(HAlign_Fill)
		.Padding(SPadding::Top + SPadding::Right2x)
		[
			SNew(SNamedRow)
			.NameText(Menu::DeployAnywhere::kNewFleetNameTitle)
			.RowWidget(
				SAssignNew(FleetNameTextInput, SEditableTextBox)
				.Text(GetDefaultFleetName())
				.HintText(Menu::DeployAnywhere::kNewFleetNameTextBoxHint)
			)
		]
		+ SVerticalBox::Slot()
		.AutoHeight()
		.HAlign(HAlign_Fill)
		.Padding(SPadding::Bottom + SPadding::Right2x)
		[
			SNew(SNamedRow)
			.SecondaryColumnLeftPadding(true)
			.RowWidget(
				SNew(STextBlock)
				.Text(Menu::DeployAnywhere::kFleetNameInstructionText)
				.AutoWrapText(true)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kNote)
			)
		]
		+ SVerticalBox::Slot()
		.AutoHeight()
		.VAlign(VAlign_Center)
		.Padding(SPadding::Top + SPadding::Right2x)
		[
			SAssignNew(DeployFleetErrorRow, SNamedRow)
				.SecondaryColumnLeftPadding(true)
				.RowWidget(
					SAssignNew(DeployFleetErrorTextBlock, STextBlock)
					.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kNote)
					.AutoWrapText(true)
				)
				.Visibility(EVisibility::Collapsed)
		]
		+ SVerticalBox::Slot()
		.AutoHeight()
		.VAlign(VAlign_Center)
		.Padding(SPadding::Top3x + SPadding::Right2x)
		[
			SNew(SHorizontalBox)
			// Button to cancel adding new anywhere fleet
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.Padding(SPadding::Right2x)
			[
				SAssignNew(CancelButton, SButton)
				.Text(Menu::DeployAnywhere::kCancelButtonText)
				.OnClicked_Raw(this, &SConnectAnywhereFleetMenu::OnCancelFleetButtonClicked)
				.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kNormalButtonStyleName)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
			]
			// Button to add a new anywhere fleet
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.Padding(SPadding::Right2x)
			[
				SNew(SButton)
				.Text(Menu::DeployAnywhere::kCreateFleetButtonText)
				.OnClicked_Raw(this, &SConnectAnywhereFleetMenu::OnCreateFleetButtonClicked)
				.IsEnabled_Raw(this, &SConnectAnywhereFleetMenu::CanCreateFleet)
				.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kSuccessButtonStyleName)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonLight)
			]
			// Loading indicator during fleet creation
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.VAlign(VAlign_Center)
			[
				SNew(STextStatus)
				.IconState(STextStatus::EIconState::Loading)
				.Visibility_Lambda([&]
				{
					return IsLoading ? EVisibility::Visible : EVisibility::Hidden;
				})
			]
			// Hyperlink to see/manage available fleets in console
			+ SHorizontalBox::Slot()
			.FillWidth(1)
			.HAlign(HAlign_Right)
			.Padding(SPadding::Right) // move the link left a bit
			[
				CreateFleetsInConsoleHyperLink()
			]
		];

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

	return VerticalBox;
}