Files
UnrealEngineUWP/Engine/Source/Developer/WidgetRegistration/Private/Layout/Containers/ColumnWrappingContainer.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

78 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Layout/Containers/ColumnWrappingContainer.h"
#include "Widgets/Layout/SBorder.h"
#include "Styles/SlateBrushTemplates.h"
#include "Widgets/SBoxPanel.h"
#include "Widgets/Layout/SUniformWrapPanel.h"
FColumnWrappingContainerArgs::FColumnWrappingContainerArgs( float InCellHeight, int32 InNumColumnsOverride, FName InIdentifier ) :
FWidgetContainerArgs( InIdentifier )
, NumColumns( InNumColumnsOverride )
, CellHeight( InCellHeight )
{
}
FColumnWrappingContainer::FColumnWrappingContainer(FColumnWrappingContainerArgs&& Args):
FWidgetContainer ( Args )
, NumColumns( Args.NumColumns )
, CellHeight( Args.CellHeight )
{
Initialize();
}
FColumnWrappingContainer::FColumnWrappingContainer(const FColumnWrappingContainerArgs& Args):
FWidgetContainer ( Args )
, NumColumns( Args.NumColumns )
, CellHeight( Args.CellHeight )
{
Initialize();
}
FColumnWrappingContainer& FColumnWrappingContainer::SetNumColumns(const int32& InNumColumns)
{
NumColumns = InNumColumns;
UniformWrapPanel->SetNumColumnsOverride( NumColumns );
return *this;
}
void FColumnWrappingContainer::Empty()
{
FWidgetContainer::Empty();
UniformWrapPanel->ClearChildren();
}
void FColumnWrappingContainer::CreateAndPositionWidgetAtIndex(int32 ChildBuilderIndex)
{
UniformWrapPanel->AddSlot()
[
GetBuilderAtIndex( ChildBuilderIndex )->GenerateWidgetSharedRef()
];
}
void FColumnWrappingContainer::Initialize()
{
SAssignNew (MainContentSBorder, SBorder )
.Padding(8.f)
.BorderImage( FSlateBrushTemplates::Get().GetBrushWithColor( EStyleColor::Panel ) )
[
SAssignNew(UniformWrapPanel, SUniformWrapPanel)
.HAlign(HAlign_Fill)
.SlotPadding(FMargin{4.f, 2.f, 4.f, 2.f })
];
if ( NumColumns > 0 )
{
UniformWrapPanel->SetNumColumnsOverride( NumColumns );
}
if ( CellHeight != TNumericLimits<float>::Min())
{
UniformWrapPanel->SetMinDesiredSlotHeight( CellHeight );
UniformWrapPanel->SetMaxDesiredSlotHeight( CellHeight );
}
MainContentWidget = MainContentSBorder;
}