Files
UnrealEngineUWP/Engine/Source/Editor/DetailCustomizations/Private/SPerPlatformPropertiesWidget.cpp
aurel cordonnier 43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00

84 lines
2.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SPerPlatformPropertiesWidget.h"
#include "Layout/Margin.h"
#include "Fonts/SlateFontInfo.h"
#include "Styling/CoreStyle.h"
#include "Framework/MultiBox/MultiBoxBuilder.h"
#include "Widgets/Input/SButton.h"
#include "Widgets/Input/SComboButton.h"
#include "PlatformInfo.h"
#include "Widgets/Layout/SWrapBox.h"
#include "EditorStyleSet.h"
#include "Widgets/Layout/SBox.h"
#include "DetailLayoutBuilder.h"
#include "Widgets/Images/SImage.h"
#include "PerQualityLevelProperties.h"
void SPerPlatformPropertiesRow::Construct(const FArguments& InArgs, FName PlatformName)
{
this->OnGenerateWidget = InArgs._OnGenerateWidget;
this->OnRemovePlatform = InArgs._OnRemovePlatform;
ChildSlot
[
MakePerPlatformWidget(PlatformName)
];
}
FReply SPerPlatformPropertiesRow::RemovePlatform(FName PlatformName)
{
if (OnRemovePlatform.IsBound())
{
OnRemovePlatform.Execute(PlatformName);
}
return FReply::Handled();
}
TSharedRef<SWidget> SPerPlatformPropertiesRow::MakePerPlatformWidget(FName InName)
{
TSharedPtr<SHorizontalBox> HorizontalBox;
TSharedRef<SWidget> Widget =
SNew(SBox)
.Padding(FMargin(0.0f, 2.0f, 4.0f, 2.0f))
.MinDesiredWidth(50.0f)
[
SAssignNew(HorizontalBox, SHorizontalBox)
.ToolTipText((InName != NAME_None)
? FText::Format(NSLOCTEXT("SPerPlatformPropertiesWidget", "PerPlatformDesc", "Override for {0}"), FText::AsCultureInvariant(InName.ToString()))
: NSLOCTEXT("SPerPlatformPropertiesWidget", "DefaultDesc", "Default value for properties without an override"))
+SHorizontalBox::Slot()
.Padding(0.0f, 0.0f, 2.0f, 0.0f)
.VAlign(VAlign_Center)
[
OnGenerateWidget.Execute(InName)
]
];
if(InName != NAME_None)
{
HorizontalBox->AddSlot()
.AutoWidth()
.Padding(2.0f, 0.0f, 0.0f, 0.0f)
.VAlign(VAlign_Center)
[
SNew(SButton)
.ButtonStyle(FEditorStyle::Get(), "SimpleButton")
.OnClicked(this, &SPerPlatformPropertiesRow::RemovePlatform, InName)
.ToolTipText(FText::Format(NSLOCTEXT("SPerPlatformPropertiesWidget", "RemoveOverrideFor", "Remove Override for {0}"), FText::AsCultureInvariant(InName.ToString())))
.Content()
[
SNew(SImage)
.Image(FEditorStyle::GetBrush("Icons.Delete"))
.ColorAndOpacity(FSlateColor::UseForeground())
]
];
}
return Widget;
}