372 lines
18 KiB
C++
372 lines
18 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "SubstrateMaterialEditorStyle.h"
|
|
#include "Brushes/SlateImageBrush.h"
|
|
#include "DetailLayoutBuilder.h"
|
|
#include "MaterialEditorModule.h"
|
|
#include "Engine/Texture2D.h"
|
|
#include "Interfaces/IPluginManager.h"
|
|
#include "Misc/Paths.h"
|
|
#include "Styling/SlateStyleRegistry.h"
|
|
#include "Styling/StyleColors.h"
|
|
#include "Styling/SlateStyleMacros.h"
|
|
|
|
#define IMAGE_PLUGIN_BRUSH(RelativePath, ...) FSlateImageBrush(FSubstrateMaterialEditorStyle::InContent(RelativePath, ".png"), __VA_ARGS__)
|
|
#define IMAGE_PLUGIN_BRUSH_SVG(RelativePath, ...) FSlateVectorImageBrush(FSubstrateMaterialEditorStyle::InContent(RelativePath, ".svg"), __VA_ARGS__)
|
|
#define RootToContentDir Style->RootToContentDir
|
|
|
|
TSharedPtr<FSlateStyleSet> FSubstrateMaterialEditorStyle::StyleInstance = nullptr;
|
|
|
|
void FSubstrateMaterialEditorStyle::Initialize()
|
|
{
|
|
if (!StyleInstance.IsValid())
|
|
{
|
|
StyleInstance = Create();
|
|
FSlateStyleRegistry::RegisterSlateStyle(*StyleInstance);
|
|
}
|
|
}
|
|
|
|
void FSubstrateMaterialEditorStyle::Shutdown()
|
|
{
|
|
if (StyleInstance.IsValid())
|
|
{
|
|
FSlateStyleRegistry::UnRegisterSlateStyle(*StyleInstance);
|
|
ensure(StyleInstance.IsUnique());
|
|
StyleInstance.Reset();
|
|
}
|
|
}
|
|
|
|
FName FSubstrateMaterialEditorStyle::GetStyleSetName()
|
|
{
|
|
static FName StyleSetName(TEXT("SubstrateMaterialEditorStyle"));
|
|
return StyleSetName;
|
|
}
|
|
|
|
const ISlateStyle& FSubstrateMaterialEditorStyle::Get()
|
|
{
|
|
if (!StyleInstance.IsValid())
|
|
{
|
|
Initialize();
|
|
}
|
|
return *StyleInstance;
|
|
}
|
|
|
|
FLinearColor FSubstrateMaterialEditorStyle::GetColor(const FName& InName)
|
|
{
|
|
return FSubstrateMaterialEditorStyle::Get().GetColor(InName);
|
|
}
|
|
|
|
const FSlateBrush* FSubstrateMaterialEditorStyle::GetBrush(const FName& InName)
|
|
{
|
|
return FSubstrateMaterialEditorStyle::Get().GetBrush(InName);
|
|
}
|
|
|
|
|
|
const FVector2D Icon8x8(8.f, 8.f);
|
|
const FVector2D Icon12x12(12.f, 12.f);
|
|
const FVector2D Icon16x16(16.f, 16.f);
|
|
const FVector2D Icon20x20(20.f, 20.f);
|
|
const FVector2D Icon24x24(24.f, 24.f);
|
|
const FVector2D Icon32x32(32.f, 32.f);
|
|
const FVector2D Icon40x40(40.f, 40.f);
|
|
|
|
FLinearColor ReplaceColorAlpha(const FLinearColor& InColor, const float InNewAlpha)
|
|
{
|
|
FLinearColor OutColor(InColor);
|
|
OutColor.A = InNewAlpha;
|
|
return OutColor;
|
|
}
|
|
TSharedRef<FSlateStyleSet> FSubstrateMaterialEditorStyle::Create()
|
|
{
|
|
TSharedRef<FSlateStyleSet> Style = MakeShared<FSlateStyleSet>(TEXT("SubstrateMaterial"));
|
|
|
|
Style->SetContentRoot(FPaths::EngineContentDir() / TEXT("Editor/Slate/DynamicMaterial"));
|
|
Style->SetCoreContentRoot(FPaths::EngineContentDir() / TEXT("Slate"));
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Color Styles
|
|
const FLinearColor EngineSelectColor = FStyleColors::Primary.GetSpecifiedColor();
|
|
const FLinearColor EngineSelectHoverColor = FStyleColors::PrimaryHover.GetSpecifiedColor();
|
|
const FLinearColor EngineSelectPressColor = FStyleColors::PrimaryPress.GetSpecifiedColor();
|
|
|
|
const FLinearColor SelectColor = ReplaceColorAlpha(FStyleColors::Select.GetSpecifiedColor(), 0.9f);
|
|
const FLinearColor SelectHoverColor = FStyleColors::Select.GetSpecifiedColor();
|
|
const FLinearColor SelectPressColor = EngineSelectPressColor;
|
|
|
|
Style->Set("Color.Select", SelectColor);
|
|
Style->Set("Color.Select.Hover", SelectHoverColor);
|
|
Style->Set("Color.Select.Press", SelectPressColor);
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Brush Styles
|
|
Style->Set("Icons.Menu.Dropdown", new IMAGE_BRUSH_SVG("Icons/MenuDropdown", Icon16x16));
|
|
|
|
Style->Set("Icons.Type.None", new IMAGE_BRUSH("Icons/ValueTypes/None", Icon12x12));
|
|
Style->Set("Icons.Type.Bool", new IMAGE_BRUSH("Icons/ValueTypes/Bool", Icon12x12));
|
|
Style->Set("Icons.Type.Float1", new IMAGE_BRUSH("Icons/ValueTypes/Float1", Icon12x12));
|
|
Style->Set("Icons.Type.Float2", new IMAGE_BRUSH("Icons/ValueTypes/Float2", Icon12x12));
|
|
Style->Set("Icons.Type.Float3_RPY", new IMAGE_BRUSH("Icons/ValueTypes/Float3_RPY", Icon12x12));
|
|
Style->Set("Icons.Type.Float3_RGB", new IMAGE_BRUSH("Icons/ValueTypes/Float3_RGB", Icon12x12));
|
|
Style->Set("Icons.Type.Float3_XYZ", new IMAGE_BRUSH("Icons/ValueTypes/Float3_XYZ", Icon12x12));
|
|
Style->Set("Icons.Type.Float4_RGBA", new IMAGE_BRUSH("Icons/ValueTypes/Float4_RGBA", Icon12x12));
|
|
Style->Set("Icons.Type.Float_Any", new IMAGE_BRUSH("Icons/ValueTypes/Float_Any", Icon12x12));
|
|
Style->Set("Icons.Type.Texture", new IMAGE_BRUSH("Icons/ValueTypes/Texture", Icon12x12));
|
|
|
|
Style->Set("Icons.Material.DefaultLit", new IMAGE_BRUSH("Icons/EditorIcons/MaterialTypeDefaultLit", Icon32x32));
|
|
Style->Set("Icons.Material.Unlit", new IMAGE_BRUSH("Icons/EditorIcons/MaterialTypeUnlit", Icon32x32));
|
|
|
|
Style->Set("Icons.Lock", new IMAGE_BRUSH_SVG("Icons/EditorIcons/Lock", Icon16x16));
|
|
Style->Set("Icons.Unlock", new IMAGE_BRUSH_SVG("Icons/EditorIcons/Unlock", Icon16x16));
|
|
|
|
Style->Set("Icons.Remove", new IMAGE_BRUSH("Icons/EditorIcons/Remove_16px", Icon16x16));
|
|
|
|
Style->Set("Icons.Normalize", new IMAGE_BRUSH_SVG("Icons/EditorIcons/Normalize", Icon16x16));
|
|
|
|
Style->Set("Icons.Stage.EnabledButton", new IMAGE_BRUSH("Icons/EditorIcons/WhiteBall", Icon8x8));
|
|
Style->Set("Icons.Stage.BaseToggle", new IMAGE_BRUSH("Icons/EditorIcons/BaseToggle_16x", Icon16x16));
|
|
Style->Set("Icons.Stage.MaskToggle", new IMAGE_BRUSH("Icons/EditorIcons/MaskToggle_16x", Icon16x16));
|
|
Style->Set("Icons.Stage.Enabled", new IMAGE_BRUSH_SVG("Icons/EditorIcons/Enable", Icon24x24));
|
|
Style->Set("Icons.Stage.Disabled", new IMAGE_BRUSH_SVG("Icons/EditorIcons/Disable", Icon24x24));
|
|
|
|
Style->Set("Icons.Stage.ChainLinked", new IMAGE_BRUSH_SVG("Icons/EditorIcons/ChainLinked", Icon16x16));
|
|
Style->Set("Icons.Stage.ChainUnlinked", new IMAGE_BRUSH_SVG("Icons/EditorIcons/ChainUnlinked", Icon16x16));
|
|
Style->Set("Icons.Stage.ChainLinked.Horizontal", new IMAGE_BRUSH_SVG("Icons/EditorIcons/ChainLinked_Horizontal", Icon24x24));
|
|
Style->Set("Icons.Stage.ChainUnlinked.Horizontal", new IMAGE_BRUSH_SVG("Icons/EditorIcons/ChainUnlinked_Horizontal", Icon24x24));
|
|
Style->Set("Icons.Stage.ChainLinked.Vertical", new IMAGE_BRUSH_SVG("Icons/EditorIcons/ChainLinked_Vertical", Icon24x24));
|
|
Style->Set("Icons.Stage.ChainUnlinked.Vertical", new IMAGE_BRUSH_SVG("Icons/EditorIcons/ChainUnlinked_Vertical", Icon24x24));
|
|
|
|
Style->Set("ImageBorder", new FSlateRoundedBoxBrush(
|
|
FLinearColor::Transparent, 0.0f,
|
|
FStyleColors::Panel.GetSpecifiedColor(), 6.0f));
|
|
|
|
Style->Set("Border.SinglePixel", new BORDER_BRUSH(TEXT("Images/Borders/Border_SinglePixel"), FMargin(1.0f / 4.0f)));
|
|
Style->Set("Border.LeftTopRight", new BORDER_BRUSH(TEXT("Images/Borders/Border_LeftTopRight"), FMargin(1.0f / 4.0f, 1.0f / 2.0f)));
|
|
Style->Set("Border.LeftBottomRight", new BORDER_BRUSH(TEXT("Images/Borders/Border_LeftBottomRight"), FMargin(1.0f / 4.0f, 1.0f / 2.0f)));
|
|
Style->Set("Border.TopLeftBottom", new BORDER_BRUSH(TEXT("Images/Borders/Border_TopLeftBottom"), FMargin(1.0f / 2.0f, 1.0f / 4.0f)));
|
|
Style->Set("Border.TopRightBottom", new BORDER_BRUSH(TEXT("Images/Borders/Border_TopRightBottom"), FMargin(1.0f / 2.0f, 1.0f / 4.0f)));
|
|
Style->Set("Border.Top", new BORDER_BRUSH(TEXT("Images/Borders/Border_Top"), FMargin(0.0f, 1.0f / 2.0f)));
|
|
Style->Set("Border.Bottom", new BORDER_BRUSH(TEXT("Images/Borders/Border_Bottom"), FMargin(0.0f, 1.0f / 2.0f)));
|
|
Style->Set("Border.Left", new BORDER_BRUSH(TEXT("Images/Borders/Border_Left"), FMargin(1.0f / 2.0f, 0.0f)));
|
|
Style->Set("Border.Right", new BORDER_BRUSH(TEXT("Images/Borders/Border_Right"), FMargin(1.0f / 2.0f, 0.0f)));
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Button Styles
|
|
Style->Set("HoverHintOnly", FButtonStyle()
|
|
.SetNormal(FSlateNoResource())
|
|
.SetHovered(FSlateRoundedBoxBrush(FLinearColor(1, 1, 1, 0.15f), 4.0f))
|
|
.SetPressed(FSlateRoundedBoxBrush(FLinearColor(1, 1, 1, 0.25f), 4.0f))
|
|
.SetNormalPadding(FMargin(0, 0, 0, 1))
|
|
.SetPressedPadding(FMargin(0, 1, 0, 0)));
|
|
|
|
Style->Set("HoverHintOnly.Bordered", FButtonStyle()
|
|
.SetNormal(FSlateRoundedBoxBrush(FLinearColor::Transparent, 4.0f, FLinearColor(1, 1, 1, 0.25f), 1.0f))
|
|
.SetHovered(FSlateRoundedBoxBrush(FLinearColor(1, 1, 1, 0.15f), 4.0f, FLinearColor(1, 1, 1, 0.4f), 1.0f))
|
|
.SetPressed(FSlateRoundedBoxBrush(FLinearColor(1, 1, 1, 0.25f), 4.0f, FLinearColor(1, 1, 1, 0.5f), 1.0f))
|
|
.SetNormalPadding(FMargin(0, 0, 0, 1))
|
|
.SetPressedPadding(FMargin(0, 1, 0, 0)));
|
|
|
|
Style->Set("HoverHintOnly.Bordered.Dark", FButtonStyle()
|
|
.SetNormal(FSlateRoundedBoxBrush(FLinearColor::Transparent, 4.0f, FStyleColors::InputOutline.GetSpecifiedColor(), 1.0f))
|
|
.SetHovered(FSlateRoundedBoxBrush(FLinearColor(1, 1, 1, 0.15f), 4.0f, FLinearColor(1, 1, 1, 0.4f), 1.0f))
|
|
.SetPressed(FSlateRoundedBoxBrush(FLinearColor(1, 1, 1, 0.25f), 4.0f, FLinearColor(1, 1, 1, 0.5f), 1.0f))
|
|
.SetNormalPadding(FMargin(0, 0, 0, 1))
|
|
.SetPressedPadding(FMargin(0, 1, 0, 0)));
|
|
|
|
SetupLayerViewStyles(Style);
|
|
SetupTextStyles(Style);
|
|
|
|
//////////////////////////////////////////////////////
|
|
/// Editable TextBox Style
|
|
FEditableTextBoxStyle InlineEditableTextBoxStyle;
|
|
InlineEditableTextBoxStyle.SetPadding(FMargin(0));
|
|
InlineEditableTextBoxStyle.SetBackgroundColor(FSlateColor(FLinearColor::Transparent));
|
|
|
|
Style->Set("InlineEditableTextBoxStyle", InlineEditableTextBoxStyle);
|
|
|
|
return Style;
|
|
}
|
|
|
|
void FSubstrateMaterialEditorStyle::SetupLayerViewStyles(const TSharedRef<FSlateStyleSet>& Style)
|
|
{
|
|
Style->Set("LayerView.Background", new FSlateRoundedBoxBrush(
|
|
FStyleColors::Recessed, 6.0f, FStyleColors::Recessed, 0.0f));
|
|
|
|
Style->Set("LayerView", FTableViewStyle()
|
|
.SetBackgroundBrush(*Style->GetBrush("LayerView.Background"))
|
|
);
|
|
|
|
constexpr float LayerViewItemCornerRadius = 10.0f;
|
|
constexpr float LayerViewItemBorderWidth = 1.0f;
|
|
constexpr float DropZoneMargin = 0.25f;
|
|
|
|
const FLinearColor LayerViewItem1FillColor = FStyleColors::Dropdown.GetSpecifiedColor();
|
|
const FLinearColor LayerViewItem2FillColor = FStyleColors::DropdownOutline.GetSpecifiedColor();
|
|
constexpr FLinearColor LayerViewItemBorderColor = FLinearColor(0, 0, 0, 1.f);
|
|
|
|
const FLinearColor LayerItemHoverFillColor = FStyleColors::Hover.GetSpecifiedColor();
|
|
constexpr FLinearColor LayerItemHoverBorderColor = FLinearColor(1, 1, 1, 0.2f);
|
|
|
|
const FLinearColor LayerItemSelectBorderColor = ReplaceColorAlpha(FStyleColors::Select.GetSpecifiedColor(), 0.9f);
|
|
|
|
Style->Set("LayerView.Row1.Item", new FSlateRoundedBoxBrush(
|
|
LayerViewItem1FillColor, LayerViewItemCornerRadius));
|
|
Style->Set("LayerView.Row2.Item", new FSlateRoundedBoxBrush(
|
|
LayerViewItem2FillColor, LayerViewItemCornerRadius,
|
|
LayerViewItemBorderColor, LayerViewItemBorderWidth));
|
|
Style->Set("LayerView.Row.Hovered", new FSlateRoundedBoxBrush(
|
|
LayerItemHoverFillColor, LayerViewItemCornerRadius,
|
|
LayerItemHoverBorderColor, LayerViewItemBorderWidth));
|
|
Style->Set("LayerView.Row1.ActiveBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem1FillColor, LayerViewItemCornerRadius,
|
|
LayerItemSelectBorderColor, LayerViewItemBorderWidth));
|
|
Style->Set("LayerView.Row1.ActiveHoveredBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem1FillColor, LayerViewItemCornerRadius,
|
|
LayerItemSelectBorderColor, LayerViewItemBorderWidth));
|
|
Style->Set("LayerView.Row1.InactiveBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem1FillColor, LayerViewItemCornerRadius));
|
|
Style->Set("LayerView.Row1.InactiveHoveredBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem1FillColor, LayerViewItemCornerRadius));
|
|
|
|
Style->Set("LayerView.Row2.ActiveBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem2FillColor, LayerViewItemCornerRadius,
|
|
LayerItemSelectBorderColor, LayerViewItemBorderWidth));
|
|
Style->Set("LayerView.Row2.ActiveHoveredBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem2FillColor, LayerViewItemCornerRadius,
|
|
LayerItemSelectBorderColor, LayerViewItemBorderWidth));
|
|
Style->Set("LayerView.Row2.InactiveBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem2FillColor, LayerViewItemCornerRadius,
|
|
LayerItemSelectBorderColor, LayerViewItemBorderWidth));
|
|
Style->Set("LayerView.Row2.InactiveHoveredBrush", new FSlateRoundedBoxBrush(
|
|
LayerViewItem2FillColor, LayerViewItemCornerRadius,
|
|
LayerItemSelectBorderColor, LayerViewItemBorderWidth));
|
|
|
|
Style->Set("LayerView.DropIndicatorOnto", new FSlateBoxBrush(
|
|
FPaths::EngineContentDir() + TEXT("Editor/Slate/Common/DropZoneIndicator_Onto.png"),
|
|
FMargin(4.0f / 16.0f), Style->GetColor(TEXT("Color.Select.Hover"))));
|
|
Style->Set("LayerView.DropIndicatorAbove", new FSlateBorderBrush(
|
|
FPaths::EngineContentDir() + TEXT("Editor/Slate/Common/LayersDropZoneDashed_Above.png"),
|
|
FMargin(DropZoneMargin, DropZoneMargin, 0.f, 0.f), Style->GetColor(TEXT("Color.Select.Hover"))));
|
|
Style->Set("LayerView.DropIndicatorBelow", new FSlateBorderBrush(
|
|
FPaths::EngineContentDir() + TEXT("Editor/Slate/Common/LayersDropZoneDashed_Below.png"),
|
|
FMargin(DropZoneMargin, 0, 0, DropZoneMargin), Style->GetColor(TEXT("Color.Select.Hover"))));
|
|
|
|
Style->Set("LayerView.Row1", FTableRowStyle()
|
|
.SetTextColor(FStyleColors::Foreground)
|
|
.SetSelectedTextColor(FStyleColors::ForegroundHover)
|
|
.SetEvenRowBackgroundBrush(*Style->GetBrush(TEXT("LayerView.Row1.Item")))
|
|
.SetEvenRowBackgroundHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row.Hovered")))
|
|
.SetOddRowBackgroundBrush(*Style->GetBrush(TEXT("LayerView.Row1.Item")))
|
|
.SetOddRowBackgroundHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row.Hovered")))
|
|
.SetSelectorFocusedBrush(*Style->GetBrush(TEXT("LayerView.Row1.ActiveBrush")))
|
|
.SetActiveBrush(*Style->GetBrush(TEXT("LayerView.Row1.ActiveBrush")))
|
|
.SetActiveHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row1.ActiveHoveredBrush")))
|
|
.SetInactiveBrush(*Style->GetBrush(TEXT("LayerView.Row1.InactiveBrush")))
|
|
.SetInactiveHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row1.InactiveHoveredBrush")))
|
|
.SetDropIndicator_Onto(*Style->GetBrush(TEXT("LayerView.DropIndicatorOnto")))
|
|
.SetDropIndicator_Above(*Style->GetBrush(TEXT("LayerView.DropIndicatorAbove")))
|
|
.SetDropIndicator_Below(*Style->GetBrush(TEXT("LayerView.DropIndicatorBelow")))
|
|
);
|
|
Style->Set("LayerView.Row2", FTableRowStyle()
|
|
.SetTextColor(FStyleColors::Foreground)
|
|
.SetSelectedTextColor(FStyleColors::ForegroundHover)
|
|
.SetEvenRowBackgroundBrush(*Style->GetBrush(TEXT("LayerView.Row2.Item")))
|
|
.SetEvenRowBackgroundHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row.Hovered")))
|
|
.SetOddRowBackgroundBrush(*Style->GetBrush(TEXT("LayerView.Row2.Item")))
|
|
.SetOddRowBackgroundHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row.Hovered")))
|
|
.SetSelectorFocusedBrush(*Style->GetBrush(TEXT("LayerView.Row2.ActiveBrush")))
|
|
.SetActiveBrush(*Style->GetBrush(TEXT("LayerView.Row2.ActiveBrush")))
|
|
.SetActiveHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row2.ActiveHoveredBrush")))
|
|
.SetInactiveBrush(*Style->GetBrush(TEXT("LayerView.Row2.InactiveBrush")))
|
|
.SetInactiveHoveredBrush(*Style->GetBrush(TEXT("LayerView.Row2.InactiveHoveredBrush")))
|
|
.SetDropIndicator_Onto(*Style->GetBrush(TEXT("LayerView.DropIndicatorOnto")))
|
|
.SetDropIndicator_Above(*Style->GetBrush(TEXT("LayerView.DropIndicatorAbove")))
|
|
.SetDropIndicator_Below(*Style->GetBrush(TEXT("LayerView.DropIndicatorBelow")))
|
|
);
|
|
Style->Set("LayerView.AddIcon", new IMAGE_BRUSH("Icons/EditorIcons/LayerAdd", Icon16x16));
|
|
Style->Set("LayerView.DuplicateIcon", new IMAGE_BRUSH("Icons/EditorIcons/Duplicate_40x", Icon40x40));
|
|
Style->Set("LayerView.RemoveIcon", new IMAGE_BRUSH("Icons/EditorIcons/LayerRemove", Icon16x16));
|
|
|
|
Style->Set("LayerView.Row.Handle", new IMAGE_BRUSH_SVG("Icons/DragHandle", Icon16x16));
|
|
|
|
Style->Set("LayerView.Row.OuterRoundBrush", new FSlateRoundedBoxBrush(FStyleColors::Recessed, 15.0f, FStyleColors::Recessed, 1.0f));
|
|
}
|
|
|
|
void FSubstrateMaterialEditorStyle::SetupTextStyles(const TSharedRef<FSlateStyleSet>& Style)
|
|
{
|
|
const FTextBlockStyle NormalTextStyle(FAppStyle::GetWidgetStyle<FTextBlockStyle>(TEXT("NormalText")));
|
|
|
|
const FLinearColor LayerViewItemTextShadowColor = FLinearColor(0.0f, 0.0f, 0.0f, 0.5f);
|
|
|
|
FFontOutlineSettings HandleFontOutline;
|
|
HandleFontOutline.OutlineColor = LayerViewItemTextShadowColor;
|
|
HandleFontOutline.OutlineSize = 1;
|
|
|
|
FTextBlockStyle SmallTextStyle(NormalTextStyle);
|
|
SmallTextStyle.SetFont(DEFAULT_FONT("Regular", 8));
|
|
Style->Set("SmallFont", SmallTextStyle);
|
|
|
|
FTextBlockStyle RegularTextStyle(NormalTextStyle);
|
|
RegularTextStyle.SetFont(DEFAULT_FONT("Regular", 10));
|
|
Style->Set("RegularFont", RegularTextStyle);
|
|
|
|
FTextBlockStyle BoldTextStyle(NormalTextStyle);
|
|
BoldTextStyle.SetFont(DEFAULT_FONT("Bold", 10));
|
|
Style->Set("BoldFont", BoldTextStyle);
|
|
|
|
Style->Set("ActorName", RegularTextStyle);
|
|
|
|
FTextBlockStyle ActorNameBigTextStyle(NormalTextStyle);
|
|
ActorNameBigTextStyle.SetFont(DEFAULT_FONT("Regular", 14));
|
|
Style->Set("ActorNameBig", ActorNameBigTextStyle);
|
|
|
|
FTextBlockStyle ComponentNameBigTextStyle(NormalTextStyle);
|
|
ComponentNameBigTextStyle.SetFont(DEFAULT_FONT("Regular", 12));
|
|
Style->Set("ComponentNameBig", ComponentNameBigTextStyle);
|
|
|
|
FTextBlockStyle SlotLayerInfoTextStyle(NormalTextStyle);
|
|
SlotLayerInfoTextStyle.SetFont(DEFAULT_FONT("Italic", 8));
|
|
Style->Set("SlotLayerInfo", SlotLayerInfoTextStyle);
|
|
|
|
FSlateFontInfo LayerViewItemFont = DEFAULT_FONT("Bold", 12);
|
|
LayerViewItemFont.OutlineSettings = HandleFontOutline;
|
|
Style->Set("LayerView.Row.Font", LayerViewItemFont);
|
|
|
|
Style->Set("LayerView.Row.HandleFont", RegularTextStyle);
|
|
|
|
FTextBlockStyle LayerViewItemTextStyle(NormalTextStyle);
|
|
|
|
Style->Set("LayerView.Row.HeaderText",
|
|
FTextBlockStyle(LayerViewItemTextStyle)
|
|
.SetColorAndOpacity(FStyleColors::Foreground)
|
|
.SetFont(LayerViewItemFont));
|
|
|
|
Style->Set("LayerView.Row.HeaderText.Small",
|
|
FTextBlockStyle(LayerViewItemTextStyle)
|
|
.SetColorAndOpacity(FStyleColors::Foreground)
|
|
.SetFont(RegularTextStyle.Font));
|
|
|
|
FTextBlockStyle StagePropertyDetailsTextStyle(NormalTextStyle);
|
|
StagePropertyDetailsTextStyle.SetFont(DEFAULT_FONT("Regular", 12));
|
|
Style->Set("Font.Stage.Details", StagePropertyDetailsTextStyle);
|
|
|
|
Style->Set("Font.Stage.Details.Bold", BoldTextStyle);
|
|
|
|
FTextBlockStyle StagePropertyDetailsSmallTextStyle(NormalTextStyle);
|
|
StagePropertyDetailsSmallTextStyle.SetFont(IDetailLayoutBuilder::GetDetailFont());
|
|
Style->Set("Font.Stage.Details.Small", StagePropertyDetailsSmallTextStyle);
|
|
|
|
FTextBlockStyle StagePropertyDetailsSmallBoldTextStyle(NormalTextStyle);
|
|
StagePropertyDetailsSmallBoldTextStyle.SetFont(IDetailLayoutBuilder::GetDetailFontBold());
|
|
Style->Set("Font.Stage.Details.Small.Bold", StagePropertyDetailsSmallBoldTextStyle);
|
|
|
|
Style->Set("Font.Stage.Details.Small.Bold", FTextBlockStyle(NormalTextStyle)
|
|
.SetFont(IDetailLayoutBuilder::GetDetailFontBold()));
|
|
|
|
Style->Set("LayerView.Row.SlabWithoutAttributes",
|
|
FTextBlockStyle(ComponentNameBigTextStyle)
|
|
.SetColorAndOpacity(FStyleColors::SelectInactive));
|
|
}
|
|
|
|
#undef IMAGE_PLUGIN_BRUSH
|
|
#undef IMAGE_PLUGIN_BRUSH_SVG
|
|
#undef RootToContentDir
|