Files
UnrealEngine/Engine/Source/Editor/Kismet/Public/SCSDiff.h
2025-05-18 13:04:45 +08:00

44 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Array.h"
#include "CoreMinimal.h"
#include "DiffUtils.h"
#include "Templates/SharedPointer.h"
#include "UObject/NameTypes.h"
#include "Widgets/SWidget.h"
class FSCSEditorTreeNode;
class FSubobjectEditorTreeNode;
class SKismetInspector;
class SSCSEditor;
class SSubobjectBlueprintEditor;
class SWidget;
class UBlueprint;
/** Struct to support diffing the component tree for a blueprint */
class KISMET_API FSCSDiff
{
public:
FSCSDiff(const class UBlueprint* InBlueprint);
void HighlightProperty(FName VarName, FPropertySoftPath Property);
TSharedRef< SWidget > TreeWidget();
TArray< FSCSResolvedIdentifier > GetDisplayedHierarchy() const;
const UBlueprint* GetBlueprint() const { return Blueprint; }
protected:
void OnSCSEditorUpdateSelectionFromNodes(const TArray<TSharedPtr<FSubobjectEditorTreeNode>>& SelectedNodes);
void OnSCSEditorHighlightPropertyInDetailsView(const class FPropertyPath& InPropertyPath);
private:
TSharedPtr< class SWidget > ContainerWidget;
TSharedPtr< class SSubobjectBlueprintEditor > SubobjectEditor;
TSharedPtr< class SKismetInspector > Inspector;
/** Blueprint we are inspecting */
UBlueprint* Blueprint = nullptr;
};