in GameLiftPlugin/Source/GameLiftPlugin/Private/SWidgets/SAccountStartupCard.cpp [13:174]
void SAccountStartupCard::Construct(const FArguments& InArgs)
{
ContextWindow = InArgs._ContextWindow;
OnButtonClicked = InArgs._OnButtonClicked;
int32 CardWidth = 400;
int32 CardHeight = 250;
int32 CardIconSize = 60;
int32 CardBorderSize = 2;
int32 CardTextWidth = 310;
int32 CardButtonWidth = 310;
int32 CardButtonHeight = 20;
// Button
TSharedPtr<SWidget> ButtonWidget;
if (InArgs._IsHyperlinkButton)
{
SAssignNew(ButtonWidget, SButton)
.ButtonStyle(FGameLiftPluginStyle::Get(), InArgs._UseSuccessButton ? Style::Button::kSuccessButtonStyleName : Style::Button::kNormalButtonStyleName)
.OnClicked(this, &SAccountStartupCard::OnButtonPressed)
.Content()
[
SNew(SBox)
.WidthOverride(CardButtonWidth)
.HeightOverride(CardButtonHeight)
.HAlign(HAlign_Center)
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.AutoWidth()
.VAlign(VAlign_Center)
[
SNew(STextBlock)
.Text(InArgs._ButtonText)
]
+ SHorizontalBox::Slot()
.AutoWidth()
.Padding(SPadding::Left)
.HAlign(HAlign_Left)
.VAlign(VAlign_Center)
[
SNew(SBox)
.WidthOverride(Style::kLinkIconSize)
.HeightOverride(Style::kLinkIconSize)
[
SNew(SImage)
.Image(FGameLiftPluginStyle::Get().GetBrush(Style::Brush::kExternalLinkIconName))
#if(ENGINE_MAJOR_VERSION == 4)
.ColorAndOpacity(FColor::Black)
#endif
]
]
]
];
}
else
{
SAssignNew(ButtonWidget, SButton)
.ButtonStyle(FGameLiftPluginStyle::Get(), InArgs._UseSuccessButton ? Style::Button::kSuccessButtonStyleName : Style::Button::kNormalButtonStyleName)
.TextStyle(FGameLiftPluginStyle::Get(), InArgs._UseSuccessButton ? Style::Text::kButtonLight : Style::Text::kButtonNormal)
.OnClicked(this, &SAccountStartupCard::OnButtonPressed)
.Content()
[
SNew(SBox)
.WidthOverride(CardButtonWidth)
.HeightOverride(CardButtonHeight)
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(STextBlock)
.Text(InArgs._ButtonText)
]
];
}
// Link
TSharedPtr<SWidget> BottomTextWidget;
if (InArgs._LinkUrl.IsEmpty())
{
SAssignNew(BottomTextWidget, STextBlock)
.Text(InArgs._LinkText)
.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kNote);
}
else
{
SAssignNew(BottomTextWidget, SOnlineHyperlink)
.Text(InArgs._LinkText)
.Link(InArgs._LinkUrl);
}
ChildSlot
[
SNew(SBox)
.WidthOverride(CardWidth)
.HeightOverride(CardHeight)
[
SNew(SBorder)
.BorderImage(FGameLiftPluginStyle::Get().GetBrush(Style::Brush::kBorderImageName))
.BorderBackgroundColor(FColor::Black)
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
.Padding(CardBorderSize)
[
SNew(SBorder)
.BorderImage(FGameLiftPluginStyle::Get().GetBrush(Style::Brush::kBorderImageName))
.BorderBackgroundColor(FGameLiftPluginStyle::Get().GetSlateColor(Style::Color::kCardBackground))
.HAlign(HAlign_Center)
.VAlign(VAlign_Center)
[
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Center)
.VAlign(VAlign_Top)
.Padding(SPadding::Bottom)
[
SNew(SBox)
.WidthOverride(CardIconSize)
.HeightOverride(CardIconSize)
[
SNew(SImage)
.Image(FGameLiftPluginStyle::Get().GetBrush(InArgs._Icon))
]
]
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Center)
.Padding(SPadding::Top_Bottom)
[
SNew(STextBlock)
.Text(InArgs._DescriptionText)
.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kFieldBold)
]
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Center)
.Padding(SPadding::Top + SPadding::Bottom2x)
[
SNew(SBox)
.WidthOverride(CardTextWidth)
[
SNew(STextBlock)
.Text(InArgs._MiddleDescriptionText)
.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kNoteLight)
.AutoWrapText(true)
.Justification(ETextJustify::Center)
]
]
+ SVerticalBox::Slot()
.AutoHeight()
.HAlign(HAlign_Center)
.Padding(SPadding::Top_Bottom)
[
ButtonWidget.ToSharedRef()
]
]
]
]
];
}