TSharedRef SGameLiftSettingsAwsAccountMenu::MakeAddProfileWidget()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/SGameLiftSettingsAwsAccountMenu.cpp [722:829]


TSharedRef<SWidget> SGameLiftSettingsAwsAccountMenu::MakeAddProfileWidget(bool BootstrapPage)
{
	TSharedRef<SVerticalBox> VerticalBox = SNew(SVerticalBox);

	VerticalBox->AddSlot()
	.AutoHeight()
	.HAlign(HAlign_Fill)
	.Padding(SPadding::Top_Bottom + SPadding::Right2x)
	[
		SNew(SNamedRow)
		.NameText(Settings::AwsAccount::kProfileModificationProfileNameText)
		.RowWidget(
			SAssignNew(BootstrapPage ? BootstrapPageAwsProfileNameInput : AwsProfileNameInput, SInputTextBox)
			.ButtonVisibility(EVisibility::Hidden)
		)
	];

	// Access credentials help documentation
	VerticalBox->AddSlot()
		.AutoHeight()
		.HAlign(HAlign_Fill)
		.Padding(SPadding::Top_Bottom + SPadding::Right2x)
		[
			AccessCredentialsHelpMessage.ToSharedRef()
		];

	// AWS access key
	VerticalBox->AddSlot()
	.AutoHeight()
	.HAlign(HAlign_Fill)
	.Padding(SPadding::Top_Bottom + SPadding::Right2x)
	[
		SNew(SNamedRow)
		.NameText(Settings::AwsAccount::kProfileModificationAccessKeyText)
		.RowWidget(SAssignNew(BootstrapPage ? BootstrapPageAwsAccessKeyIdInput : AwsAccessKeyIdInput, SInputTextBox))
	];

	// AWS secret key
	VerticalBox->AddSlot()
	.AutoHeight()
	.HAlign(HAlign_Fill)
	.Padding(SPadding::Top_Bottom + SPadding::Right2x)
	[
		SNew(SNamedRow)
		.NameText(Settings::AwsAccount::kProfileModificationSecretKeyText)
		.RowWidget(SAssignNew(BootstrapPage ? BootstrapPageAwsSecretKeyInput : AwsSecretKeyInput, SInputTextBox))
	];

	// AWS region
	VerticalBox->AddSlot()
	.AutoHeight()
	.HAlign(HAlign_Fill)
	.Padding(SPadding::Top_Bottom + SPadding::Right2x)
	[
		SNew(SNamedRow)
		.NameText(Settings::AwsAccount::kProfileModificationRegionText)
		.RowWidget(
			SAssignNew(BootstrapPage? BootstrapPageAwsRegionInput : AwsRegionInput, SSelectionComboBox)
			.OnListBuilding_Raw(this, &SGameLiftSettingsAwsAccountMenu::BuildRegionValues)
			.OnItemSelected_Raw(this, &SGameLiftSettingsAwsAccountMenu::OnGetRegion)
		)
	];

	// Buttons and hyperlink
	VerticalBox->AddSlot()
	.AutoHeight()
	.HAlign(HAlign_Fill)
	.Padding(SPadding::Top_Bottom + SPadding::Right2x)
	[
		SNew(SNamedRow)
		.RowWidget(
			SNew(SHorizontalBox)
			// Button to cancel creating profile
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.Padding(SPadding::Right)
			[
				SNew(SButton)
				.Text(Settings::AwsAccount::kCancelButtonText)
				.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kNormalButtonStyleName)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonLight)
				.OnClicked_Lambda([this, BootstrapPage]
					{
						ResetAddProfileUI(BootstrapPage);
						ShowAddProfile = false;
						ProfileHeaderSwitcher->SetActiveWidgetIndex(0);
						return FReply::Handled();
					})
			]
			// Button to create profile
			+ SHorizontalBox::Slot()
			.AutoWidth()
			.HAlign(HAlign_Left)
			.Padding(SPadding::Right)
			[
				SNew(SButton)
				.Text(Settings::AwsAccount::kCreateProfileButtonText)
				.OnClicked_Raw(this, &SGameLiftSettingsAwsAccountMenu::CreateAccount, BootstrapPage)
				.IsEnabled_Raw(this, &SGameLiftSettingsAwsAccountMenu::CanCreateAccountProfile, BootstrapPage)
				.ButtonStyle(FGameLiftPluginStyle::Get(), Style::Button::kSuccessButtonStyleName)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonLight)
			]
		)
	];

	return VerticalBox;
}