#include "DialogueEditorStyle.h" #include "Styling/SlateStyle.h" #include "Styling/SlateStyleRegistry.h" #include "Interfaces/IPluginManager.h" #include "Styling/SlateStyleRegistry.h" TSharedPtr< FSlateStyleSet > FDialogueEditorStyle::StyleSet = nullptr; TSharedPtr< ISlateStyle > FDialogueEditorStyle::Get() { return StyleSet; } void FDialogueEditorStyle::Initialize() { if (StyleSet.IsValid()) { return; } StyleSet = MakeShareable(new FSlateStyleSet(FName(TEXT("DialogueEditorStyle")))); FString ResourceDir = IPluginManager::Get().FindPlugin("Dialogue")->GetBaseDir() / TEXT("Resources"); //加载图标相关资源 StyleSet->Set("PlayerNodeStyle", new FSlateBoxBrush(ResourceDir/"playerNode.png", FMargin(5.f / 138.f, 5.f / 56.f, 5.f / 138.f, 5.f / 56.f))); // left top right bottom StyleSet->Set("NpcNodeStyle", new FSlateBoxBrush(ResourceDir/"npcNode.png", FMargin(5.f / 138.f, 5.f / 56.f, 5.f / 138.f, 5.f / 56.f))); StyleSet->Set("StartNodeStyle", new FSlateBoxBrush(ResourceDir/"startNode.png", FMargin(5.f / 138.f, 5.f / 56.f, 5.f / 138.f, 5.f / 56.f))); StyleSet->Set("EventIcon", new FSlateImageBrush(ResourceDir/"event.png", FVector2D(14, 16))); StyleSet->Set("ConditionIcon", new FSlateImageBrush(ResourceDir/"condition.png", FVector2D(16, 16))); StyleSet->Set("VoiceIcon", new FSlateImageBrush(ResourceDir/"sound.png", FVector2D(17, 16))); StyleSet->Set(FName(TEXT("ClassThumbnail.DialogueAsset")), new FSlateImageBrush(ResourceDir/"dialogue_64.png", FVector2D(64, 64))); StyleSet->Set(FName(TEXT("ClassIcon.DialogueAsset")), new FSlateImageBrush(ResourceDir/"dialogue_16.png", FVector2D(16, 16))); FSlateStyleRegistry::RegisterSlateStyle(*StyleSet.Get()); } void FDialogueEditorStyle::Shutdown() { if (StyleSet.IsValid()) { FSlateStyleRegistry::UnRegisterSlateStyle(*StyleSet.Get()); StyleSet.Reset(); } }