Files
UnrealEngineUWP/Engine/Source/Editor/PropertyEditor/Private/SStructureDetailsView.h
Ben Marsh be3e0d6cd9 [INTEGRATE] Change 2422849 by Dan.Hertzka@Dan.Hertzka_T4682_4010 on 2015/01/28 16:56:45
[UE-8147] - Details window locks as before, updated work with the component tree
	- Once locked, can change component selection to update the details, but the level selection is not affected
	- After unlocking, any component selection will force the level selection to match

[CL 2425907 by Ben Marsh in Main branch]
2015-01-30 11:25:21 -05:00

94 lines
2.9 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "SDetailsViewBase.h"
#include "IStructureDetailsView.h"
class SStructureDetailsView : public SDetailsViewBase, public IStructureDetailsView
{
TSharedPtr<class FStructOnScope> StructData;
TSharedPtr<class FStructurePropertyNode> RootNode;
FText CustomName;
public:
SLATE_BEGIN_ARGS(SStructureDetailsView)
: _DetailsViewArgs()
{}
/** The user defined args for the details view */
SLATE_ARGUMENT(FDetailsViewArgs, DetailsViewArgs)
SLATE_ARGUMENT(FText, CustomName)
SLATE_END_ARGS()
~SStructureDetailsView();
/**
* Constructs the property view widgets
*/
void Construct(const FArguments& InArgs);
UStruct* GetBaseScriptStruct() const;
virtual bool IsConnected() const override;
virtual bool DontUpdateValueWhileEditing() const override
{
return true;
}
/** IStructureDetailsView interface */
virtual TSharedPtr<SWidget> GetWidget() override
{
return AsShared();
}
virtual void SetStructureData(TSharedPtr<FStructOnScope> InStructData) override;
virtual FOnFinishedChangingProperties& GetOnFinishedChangingPropertiesDelegate() override
{
return OnFinishedChangingProperties();
}
/** IDetailsViewPrivate interface */
virtual const UClass* GetBaseClass() const override
{
return NULL;
}
virtual UClass* GetBaseClass() override
{
return NULL;
}
virtual bool IsCategoryHiddenByClass(FName CategoryName) const override
{
return false;
}
virtual void ForceRefresh() override;
virtual void AddExternalRootPropertyNode(TSharedRef<FPropertyNode> ExternalRootNode) override {}
/** IDetailsView interface */
virtual UStruct* GetBaseStruct() const override
{
return GetBaseScriptStruct();
}
virtual const TArray< TWeakObjectPtr<UObject> >& GetSelectedObjects() const override;
virtual const TArray< TWeakObjectPtr<AActor> >& GetSelectedActors() const override;
virtual const struct FSelectedActorInfo& GetSelectedActorInfo() const override;
virtual bool HasClassDefaultObject() const override
{
return false;
}
virtual void SetOnObjectArrayChanged(FOnObjectArrayChanged OnObjectArrayChangedDelegate) override {}
virtual void RegisterInstancedCustomPropertyLayout(UClass* Class, FOnGetDetailCustomizationInstance DetailLayoutDelegate) override {}
virtual void UnregisterInstancedCustomPropertyLayout(UClass* Class) override {}
virtual void SetObjects(const TArray<UObject*>& InObjects, bool bForceRefresh = false, bool bOverrideLock = false) override {}
virtual void SetObjects(const TArray< TWeakObjectPtr< UObject > >& InObjects, bool bForceRefresh = false, bool bOverrideLock = false) override {}
virtual void SetObject(UObject* InObject, bool bForceRefresh = false) override{}
virtual void RemoveInvalidObjects() override {}
virtual TSharedPtr<class FComplexPropertyNode> GetRootNode() override;
protected:
virtual void CustomUpdatePropertyMap() override;
};