Files
UnrealEngineUWP/Engine/Source/Runtime/UMG/Private/Components/ListView.cpp
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

83 lines
2.1 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "Components/ListView.h"
#include "Widgets/Text/STextBlock.h"
#include "Widgets/Views/SListView.h"
#define LOCTEXT_NAMESPACE "UMG"
/////////////////////////////////////////////////////
// UListView
UListView::UListView(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
bIsVariable = true;
ItemHeight = 16.0f;
SelectionMode = ESelectionMode::Single;
}
TSharedRef<SWidget> UListView::RebuildWidget()
{
MyListView = SNew(SListView< UObject* >)
.SelectionMode(SelectionMode)
.ListItemsSource(&Items)
.ItemHeight(ItemHeight)
.OnGenerateRow(BIND_UOBJECT_DELEGATE(SListView< UObject* >::FOnGenerateRow, HandleOnGenerateRow))
//.OnSelectionChanged(this, &SSocketManager::SocketSelectionChanged_Execute)
//.OnContextMenuOpening(this, &SSocketManager::OnContextMenuOpening)
//.OnItemScrolledIntoView(this, &SSocketManager::OnItemScrolledIntoView)
// .HeaderRow
// (
// SNew(SHeaderRow)
// .Visibility(EVisibility::Collapsed)
// + SHeaderRow::Column(TEXT("Socket"))
// );
;
return BuildDesignTimeWidget( MyListView.ToSharedRef() );
}
TSharedRef<ITableRow> UListView::HandleOnGenerateRow(UObject* Item, const TSharedRef< STableViewBase >& OwnerTable) const
{
// Call the user's delegate to see if they want to generate a custom widget bound to the data source.
if ( OnGenerateRowEvent.IsBound() )
{
UWidget* Widget = OnGenerateRowEvent.Execute(Item);
if ( Widget != NULL )
{
return SNew(STableRow< UObject* >, OwnerTable)
[
Widget->TakeWidget()
];
}
}
// If a row wasn't generated just create the default one, a simple text block of the item's name.
return SNew(STableRow< UObject* >, OwnerTable)
[
SNew(STextBlock).Text(Item ? FText::FromString(Item->GetName()) : LOCTEXT("null", "null"))
];
}
#if WITH_EDITOR
const FText UListView::GetPaletteCategory()
{
return LOCTEXT("Misc", "Misc");
}
#endif
void UListView::ReleaseSlateResources(bool bReleaseChildren)
{
Super::ReleaseSlateResources(bReleaseChildren);
MyListView.Reset();
}
/////////////////////////////////////////////////////
#undef LOCTEXT_NAMESPACE