TSharedRef SSetupMessage::MakeRow()

in GameLiftPlugin/Source/GameLiftPlugin/Private/SWidgets/SSetupMessage.cpp [30:92]


TSharedRef<SWidget> SSetupMessage::MakeRow(FName IconName, const FText& Message, const FText& ButtonMessage, const char* ButtonStyle, TSharedPtr<SWidget> RowWidget, bool IconVAlignTop, bool ButtonVAlignTop)
{
	const int IconSize = 18;

	TSharedRef<SHorizontalBox> Result = SNew(SHorizontalBox)
		// Status icon
		+ SHorizontalBox::Slot()
		.AutoWidth()
		.Padding(SPadding::SetupMessageIconPadding)
		.VAlign(IconVAlignTop ? VAlign_Top : VAlign_Center)
		.HAlign(HAlign_Center)
		[
			SNew(SBox)
				.WidthOverride(IconSize)
				.HeightOverride(IconSize)
				[
					SNew(SImage)
						.Image(FGameLiftPluginStyle::Get().GetBrush(IconName))
				]
		];

		if (RowWidget != nullptr)
		{
			Result->AddSlot()
				.FillWidth(1)
				.Padding(SPadding::SetupMessageContentPadding)
				[
					RowWidget.ToSharedRef()
				];
		}
		else
		{
			// Status text
			Result->AddSlot()
				.VAlign(VAlign_Center)
				.Padding(SPadding::SetupMessageContentPadding)
				[
					SNew(STextBlock)
						.ColorAndOpacity(this, &SSetupMessage::GetTextColor)
						.Text(Message)
						.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kParagraph)
						.AutoWrapText(true)
				];
		}
		
	if (!ButtonMessage.IsEmpty() || !FText::FromString(ButtonStyle).IsEmpty())
	{
		Result->AddSlot()
			.HAlign(HAlign_Right)
			.VAlign(ButtonVAlignTop ? VAlign_Top : VAlign_Center)
			.Padding(ButtonVAlignTop ? SPadding::CloseButtonTopPadding : SPadding::Right2x)
			.AutoWidth()
			[
				SNew(SButton)
				.OnClicked(this, &SSetupMessage::OnButtonPressed)
				.Text(ButtonMessage)
				.TextStyle(FGameLiftPluginStyle::Get(), Style::Text::kButtonNormal)
				.ButtonStyle(FGameLiftPluginStyle::Get(), ButtonStyle)
			];
	}

	return Result;
}