2019-12-26 15:33:43 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2015-01-26 20:10:18 -05:00
|
|
|
|
|
|
|
|
#include "SDetailTableRowBase.h"
|
|
|
|
|
|
2021-01-27 13:22:18 -04:00
|
|
|
const float SDetailTableRowBase::ScrollBarPadding = 16.0f;
|
|
|
|
|
|
2020-12-01 07:52:47 -04:00
|
|
|
int32 SDetailTableRowBase::GetIndentLevelForBackgroundColor() const
|
|
|
|
|
{
|
|
|
|
|
int32 IndentLevel = 0;
|
|
|
|
|
if (OwnerTablePtr.IsValid())
|
|
|
|
|
{
|
|
|
|
|
// every item is in a category, but we don't want to show an indent for "top-level" properties
|
|
|
|
|
IndentLevel = GetIndentLevel() - 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TSharedPtr<FDetailTreeNode> DetailTreeNode = OwnerTreeNode.Pin();
|
|
|
|
|
if (DetailTreeNode.IsValid() &&
|
|
|
|
|
DetailTreeNode->GetDetailsView() != nullptr &&
|
|
|
|
|
DetailTreeNode->GetDetailsView()->ContainsMultipleTopLevelObjects())
|
|
|
|
|
{
|
|
|
|
|
// if the row is in a multiple top level object display (eg. Project Settings), don't display an indent for the initial level
|
|
|
|
|
--IndentLevel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return FMath::Max(0, IndentLevel);
|
2021-01-21 11:25:14 -04:00
|
|
|
}
|
|
|
|
|
|
2021-01-27 13:22:18 -04:00
|
|
|
bool SDetailTableRowBase::IsScrollBarVisible(TWeakPtr<STableViewBase> OwnerTableViewWeak)
|
2021-01-21 11:25:14 -04:00
|
|
|
{
|
|
|
|
|
TSharedPtr<STableViewBase> OwnerTableView = OwnerTableViewWeak.Pin();
|
|
|
|
|
if (OwnerTableView.IsValid())
|
|
|
|
|
{
|
2021-01-27 13:22:18 -04:00
|
|
|
return OwnerTableView->GetScrollbarVisibility() == EVisibility::Visible;
|
2021-01-21 11:25:14 -04:00
|
|
|
}
|
2021-01-27 13:22:18 -04:00
|
|
|
return false;
|
2021-01-21 11:25:14 -04:00
|
|
|
}
|