Files
UnrealEngineUWP/Engine/Source/Developer/WidgetRegistration/Private/Layout/Containers/WidgetContainer.cpp
karen jirak 356c94488d Place Actors Milestone 2, new builders.
-Header and body container
- Simple Title container
- Column wrapping container
- Zero State builder
- Addition of favorites
- moved additions of placement entries into the category builder

#jira UE-205201
#rb JeanMichel.Dignard

[CL 32977191 by karen jirak in ue5-main branch]
2024-04-15 17:30:12 -04:00

73 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Layout/Containers/WidgetContainer.h"
#include "Layout/Containers/SlateBuilder.h"
#include "Widgets/SNullWidget.h"
FWidgetContainer::FWidgetContainer(const FWidgetContainerArgs Args) :
FSlateBuilder ( nullptr, Args.Identifier )
{
}
FWidgetContainerArgs::FWidgetContainerArgs( FName InIdentifier) :
Identifier( InIdentifier )
{
}
FWidgetContainer& FWidgetContainer::AddBuilder(const TSharedRef<FSlateBuilder>& Builder)
{
ChildBuilderArray.Add( Builder );
return *this;
}
TSharedPtr<FSlateBuilder> FWidgetContainer::GetBuilderAtIndex(int32 Index)
{
if ( Index < ChildBuilderArray.Num() )
{
return ChildBuilderArray[Index];
}
return nullptr;
}
void FWidgetContainer::Empty()
{
ChildBuilderArray.Empty();
}
FWidgetContainer& FWidgetContainer::AddBuilder( TSharedRef<SWidget> Widget)
{
ChildBuilderArray.Add( MakeShared<FSlateBuilder>( Widget ) );
return *this;
}
TSharedPtr<SWidget> FWidgetContainer::GenerateWidget()
{
for ( int32 ChildBuilderIndex = 0; ChildBuilderIndex < ChildBuilderArray.Num(); ChildBuilderIndex++)
{
CreateAndPositionWidgetAtIndex( ChildBuilderIndex );
}
return MainContentWidget.IsValid() ? MainContentWidget : SNullWidget::NullWidget.ToSharedPtr();
}
void FWidgetContainer::UpdateWidget()
{
for ( int32 ChildBuilderIndex = 0; ChildBuilderIndex < ChildBuilderArray.Num(); ChildBuilderIndex++)
{
ChildBuilderArray[ChildBuilderIndex]->UpdateWidget();
}
}
FWidgetContainer& FWidgetContainer::SetBuilders( TArray<TSharedRef<FSlateBuilder>> Builders )
{
Empty();
for ( const TSharedRef<FSlateBuilder>& Builder : Builders )
{
ChildBuilderArray.Add( Builder );
}
return *this;
}