46 lines
1.8 KiB
C++
46 lines
1.8 KiB
C++
#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();
|
|
}
|
|
|
|
|
|
|
|
}
|