Files
UnrealEngineUWP/Engine/Source/Editor/PropertyEditor/Private/DetailMultiTopLevelObjectRootNode.h
Ryan Vance 7c51ff94af Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
CL 1 of 8
#rb integration

[CL 4748712 by Ryan Vance in Dev-VR branch]
2019-01-17 18:54:05 -05:00

67 lines
2.8 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Input/Reply.h"
#include "Widgets/SWidget.h"
#include "IPropertyUtilities.h"
#include "DetailTreeNode.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Widgets/Views/STableViewBase.h"
#include "Widgets/Views/STableRow.h"
#include "SDetailsViewBase.h"
#include "SDetailTableRowBase.h"
class IDetailRootObjectCustomization;
class SDetailMultiTopLevelObjectTableRow : public SDetailTableRowBase
{
public:
SLATE_BEGIN_ARGS(SDetailMultiTopLevelObjectTableRow)
: _DisplayName()
, _ShowExpansionArrow(false)
{}
SLATE_ARGUMENT( FText, DisplayName )
SLATE_ARGUMENT( bool, ShowExpansionArrow )
SLATE_END_ARGS()
void Construct( const FArguments& InArgs, TSharedRef<FDetailTreeNode> InOwnerTreeNode, const TSharedRef<SWidget>& InCustomizedWidgetContents, const TSharedRef<STableViewBase>& InOwnerTableView );
private:
const FSlateBrush* GetBackgroundImage() const;
private:
virtual FReply OnMouseButtonDown( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) override;
virtual FReply OnMouseButtonDoubleClick( const FGeometry& InMyGeometry, const FPointerEvent& InMouseEvent ) override;
private:
bool bShowExpansionArrow;
};
class FDetailMultiTopLevelObjectRootNode : public FDetailTreeNode, public TSharedFromThis<FDetailMultiTopLevelObjectRootNode>
{
public:
FDetailMultiTopLevelObjectRootNode( const FDetailNodeList& InChildNodes, const TSharedPtr<IDetailRootObjectCustomization>& RootObjectCustomization, IDetailsViewPrivate* InDetailsView, const UObject& InRootObject );
private:
virtual IDetailsViewPrivate* GetDetailsView() const override{ return DetailsView; }
virtual void OnItemExpansionChanged( bool bIsExpanded, bool bShouldSaveState ) override {}
virtual bool ShouldBeExpanded() const override { return true; }
virtual ENodeVisibility GetVisibility() const override;
virtual TSharedRef< ITableRow > GenerateWidgetForTableView( const TSharedRef<STableViewBase>& OwnerTable, const FDetailColumnSizeData& ColumnSizeData, bool bAllowFavoriteSystem) override;
virtual bool GenerateStandaloneWidget(FDetailWidgetRow& OutRow) const override;
virtual void GetChildren(FDetailNodeList& OutChildren ) override;
virtual void FilterNode( const FDetailFilter& InFilter ) override;
virtual void Tick( float DeltaTime ) override {}
virtual bool ShouldShowOnlyChildren() const override;
virtual FName GetNodeName() const override { return NodeName; }
virtual EDetailNodeType GetNodeType() const override { return EDetailNodeType::Object; }
virtual TSharedPtr<IPropertyHandle> CreatePropertyHandle() const override { return nullptr; }
private:
FDetailNodeList ChildNodes;
IDetailsViewPrivate* DetailsView;
TWeakPtr<IDetailRootObjectCustomization> RootObjectCustomization;
const TWeakObjectPtr<UObject> RootObject;
FName NodeName;
bool bShouldBeVisible;
};