Files
UnrealEngineUWP/Engine/Source/Runtime/UMG/Private/Components/ListView.cpp
Matthew Griffin bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00

86 lines
2.2 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
#include "UMGPrivatePCH.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 FSlateBrush* UListView::GetEditorIcon()
{
return FUMGStyle::Get().GetBrush("Widget.ListView");
}
const FText UListView::GetPaletteCategory()
{
return LOCTEXT("Misc", "Misc");
}
#endif
void UListView::ReleaseSlateResources(bool bReleaseChildren)
{
Super::ReleaseSlateResources(bReleaseChildren);
MyListView.Reset();
}
/////////////////////////////////////////////////////
#undef LOCTEXT_NAMESPACE