76 lines
2.3 KiB
C++
76 lines
2.3 KiB
C++
#include "FLESHEditorStyle.h"
|
|
#include "Styling/SlateStyleRegistry.h"
|
|
#include "Styling/SlateTypes.h"
|
|
#include "Styling/CoreStyle.h"
|
|
#include "Interfaces/IPluginManager.h"
|
|
#include "SlateOptMacros.h"
|
|
#include "Styling/SlateStyle.h"
|
|
#include "Brushes/SlateImageBrush.h"
|
|
#include "Framework/Application/SlateApplication.h"
|
|
|
|
TSharedPtr<FSlateStyleSet> FFLESHEditorStyle::StyleInstance = nullptr;
|
|
|
|
void FFLESHEditorStyle::Initialize()
|
|
{
|
|
if (!StyleInstance.IsValid())
|
|
{
|
|
StyleInstance = Create();
|
|
FSlateStyleRegistry::RegisterSlateStyle(*StyleInstance);
|
|
}
|
|
}
|
|
|
|
void FFLESHEditorStyle::Shutdown()
|
|
{
|
|
FSlateStyleRegistry::UnRegisterSlateStyle(*StyleInstance);
|
|
ensure(StyleInstance.IsUnique());
|
|
StyleInstance.Reset();
|
|
}
|
|
|
|
void FFLESHEditorStyle::ReloadTextures()
|
|
{
|
|
if (FSlateApplication::IsInitialized())
|
|
{
|
|
FSlateApplication::Get().GetRenderer()->ReloadTextureResources();
|
|
}
|
|
}
|
|
|
|
FName FFLESHEditorStyle::GetStyleSetName()
|
|
{
|
|
static FName StyleSetName(TEXT("FLESHEditorStyle"));
|
|
return StyleSetName;
|
|
}
|
|
|
|
const ISlateStyle& FFLESHEditorStyle::Get()
|
|
{
|
|
return *StyleInstance;
|
|
}
|
|
|
|
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
|
|
|
|
TSharedRef<FSlateStyleSet> FFLESHEditorStyle::Create()
|
|
{
|
|
TSharedRef<FSlateStyleSet> Style = MakeShareable(new FSlateStyleSet(GetStyleSetName()));
|
|
Style->SetContentRoot(IPluginManager::Get().FindPlugin("FLESH")->GetBaseDir() / TEXT("Resources"));
|
|
|
|
// Set editor icon
|
|
Style->Set("FLESHEditor.OpenPluginWindow", new FSlateImageBrush(Style->RootToContentDir(TEXT("ButtonIcon_40x"), TEXT(".png")), FVector2D(40.0f, 40.0f)));
|
|
|
|
// Set editor colors
|
|
const FLinearColor MainColor(0.8f, 0.1f, 0.1f, 1.0f); // Blood red
|
|
const FLinearColor DarkColor(0.4f, 0.05f, 0.05f, 1.0f); // Dark red
|
|
const FLinearColor LightColor(1.0f, 0.3f, 0.3f, 1.0f); // Light red
|
|
|
|
// Set editor button style
|
|
const FButtonStyle& DefaultButtonStyle = FCoreStyle::Get().GetWidgetStyle<FButtonStyle>("Button");
|
|
|
|
FButtonStyle RedButtonStyle = DefaultButtonStyle;
|
|
RedButtonStyle.Normal.TintColor = MainColor;
|
|
RedButtonStyle.Hovered.TintColor = LightColor;
|
|
RedButtonStyle.Pressed.TintColor = DarkColor;
|
|
Style->Set("FLESHEditor.RedButton", RedButtonStyle);
|
|
|
|
return Style;
|
|
}
|
|
|
|
END_SLATE_FUNCTION_BUILD_OPTIMIZATION
|