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

103 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "ToolMenus.h"
#include "ToolMenusEditor.generated.h"
UENUM()
enum class ESelectedEditMenuEntryType : uint8
{
None = 0,
Entry,
Section,
Menu
};
UCLASS(Abstract)
class UToolMenuEditorDialogObject : public UObject
{
GENERATED_BODY()
public:
virtual void LoadState() {}
};
UCLASS()
class UToolMenuEditorDialogMenu : public UToolMenuEditorDialogObject
{
GENERATED_BODY()
public:
void Init(class UToolMenu* InMenu, const FName InName);
UPROPERTY(VisibleAnywhere, Category = Misc)
FName Name;
UPROPERTY()
TObjectPtr<UToolMenu> Menu;
};
UCLASS()
class UToolMenuEditorDialogBlock : public UToolMenuEditorDialogObject
{
GENERATED_BODY()
public:
UPROPERTY(VisibleAnywhere, Category = Misc)
FName Name;
UPROPERTY(VisibleAnywhere, Category = Misc)
ESelectedEditMenuEntryType Type;
UPROPERTY(EditAnywhere, Category = Misc)
ECustomizedToolMenuVisibility Visibility;
UPROPERTY(VisibleAnywhere, Category = Misc)
FString OwnerName;
UPROPERTY(VisibleAnywhere, Category = Misc)
FString ScriptObject;
UPROPERTY(VisibleAnywhere, Category = Misc)
FString ScriptObjectClass;
UPROPERTY()
TObjectPtr<UToolMenu> Menu;
};
UCLASS()
class UToolMenuEditorDialogSection : public UToolMenuEditorDialogBlock
{
GENERATED_BODY()
public:
void Init(class UToolMenu* InMenu, const FName InName);
virtual void LoadState() override;
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
};
UCLASS()
class UToolMenuEditorDialogEntry : public UToolMenuEditorDialogBlock
{
GENERATED_BODY()
public:
void Init(class UToolMenu* InMenu, const FName InName);
virtual void LoadState() override;
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
};