in GameLiftPlugin/Source/GameLiftPlugin/Private/SMenu/Anywhere/SAnywhereGenerateAuthTokenMenu.cpp [22:129]
void SAnywhereGenerateAuthTokenMenu::Construct(const FArguments& InArgs)
{
TSharedRef<SVerticalBox> VerticalBox = SNew(SVerticalBox)
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Fill)
[
SNew(SNamedRow)
.NameText(Menu::DeployAnywhere::kAuthTokenTitle)
.SecondaryColumnLeftPadding(true)
.RowWidget(
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Fill)
[
SAssignNew(AuthTokenTextView, SEditableText)
.Text(Menu::DeployAnywhere::kAuthTokenNotGeneratedText)
.Style(FGameLiftPluginStyle::Get(), Style::EditableText::kFieldMedium)
.IsReadOnly(true)
]
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Fill)
.Padding(SPadding::Top)
[
SAssignNew(AuthTokenNoteView, STextBlock)
.Text(Menu::DeployAnywhere::kAuthTokenGenerateNoteText)
.AutoWrapText(true)
.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kNote)
]
)
]
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Left)
.Padding(SPadding::Top_Bottom)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.AutoWidth()
[
SNew(SNamedRow)
.RowWidget(
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.AutoWidth()
.HAlign(HAlign_Left)
.Padding(SPadding::Right2x)
[
SNew(SButton)
.Text(Menu::DeployAnywhere::kAuthTokenGenerateButtonText)
.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
.IsEnabled_Raw(this, &SAnywhereGenerateAuthTokenMenu::CanGenerateAuthToken)
.OnClicked_Raw(this, &SAnywhereGenerateAuthTokenMenu::OnGenerateAuthTokenButtonClicked)
]
// 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::Top_Bottom)
[
SAssignNew(GenerateAuthTokenErrorRow, SNamedRow)
.SecondaryColumnLeftPadding(true)
.RowWidget(
SAssignNew(GenerateAuthTokenErrorTextBlock, STextBlock)
.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kNote)
.AutoWrapText(true)
)
.Visibility(EVisibility::Collapsed)
];
SSectionStep::Construct(
SSectionStep::FArguments()
.HeaderTitle(Menu::DeployAnywhere::kGenerateAuthTokenHeader)
.HeaderDescription(FText::FromString("DESCRIPTION TODO"))
.BodyContent()
[
VerticalBox
]);
GenerateAuthTokenErrorTextBlock->SetColorAndOpacity(FGameLiftPluginStyle::Get().GetColor(Style::Color::kError));
// Listen to profile changes
SGameLiftSettingsAwsAccountMenu::OnProfileSelectionChangedMultiDelegate.AddSP(this, &SAnywhereGenerateAuthTokenMenu::OnBootstrapStatusChanged);
// Initialize section UI based on state
UGameLiftAnywhereStatus* AnywhereStatus = GetMutableDefault<UGameLiftAnywhereStatus>();
if (AnywhereStatus->AuthToken.IsEmpty())
{
ResetAndCollapseSection();
}
}