Files
UnrealEngine/Engine/Source/Developer/ToolWidgets/Private/SRichTextWarningOrErrorBox.cpp
2025-05-18 13:04:45 +08:00

49 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SRichTextWarningOrErrorBox.h"
#include "Widgets/Text/SRichTextBlock.h"
#include "Widgets/SBoxPanel.h"
#include "Widgets/Images/SImage.h"
void SRichTextWarningOrErrorBox::Construct(const FArguments& InArgs)
{
MessageStyle = InArgs._MessageStyle;
SBorder::Construct(SBorder::FArguments()
.Padding(InArgs._Padding)
.ForegroundColor(FAppStyle::Get().GetSlateColor("Colors.White"))
.BorderImage_Lambda([this]() { return MessageStyle.Get() == EMessageStyle::Warning ? FAppStyle::Get().GetBrush("RoundedWarning") : FAppStyle::Get().GetBrush("RoundedError"); })
[
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.HAlign(HAlign_Left)
.VAlign(VAlign_Top)
.AutoWidth()
.Padding(FMargin(0.0f, 0.0f, 16.0f, 0.0f))
[
SNew(SImage)
.DesiredSizeOverride(InArgs._IconSize)
.Image_Lambda([this]() { return MessageStyle.Get() == EMessageStyle::Warning ? FAppStyle::Get().GetBrush("Icons.WarningWithColor") : FAppStyle::Get().GetBrush("Icons.ErrorWithColor"); })
.ColorAndOpacity(FSlateColor::UseForeground())
]
+SHorizontalBox::Slot()
.VAlign(VAlign_Center)
[
SNew(SRichTextBlock)
.DecoratorStyleSet(&FAppStyle::Get())
.Text(InArgs._Message)
.AutoWrapText(true)
]
+SHorizontalBox::Slot()
.AutoWidth()
.VAlign(VAlign_Center)
.HAlign(HAlign_Right)
[
InArgs._Content.Widget
]
]);
}