TSharedRef< FSlateStyleSet > FFriendsAndChatModuleStyle::Create(FFriendsAndChatStyle FriendStyle)
{
	TSharedRef< FSlateStyleSet > Style = MakeShareable(new FSlateStyleSet("FriendsAndChatStyle"));

	const FTextBlockStyle DefaultText = FTextBlockStyle()
		.SetFont(FriendStyle.FriendsFontStyleSmall);

	// Name Style
	const FTextBlockStyle GlobalChatFont = FTextBlockStyle(DefaultText)
		.SetFont(FriendStyle.FriendsFontStyleSmallBold)
		.SetColorAndOpacity(FriendStyle.DefaultChatColor);

	const FTextBlockStyle PartyChatFont = FTextBlockStyle(DefaultText)
		.SetFont(FriendStyle.FriendsFontStyleSmallBold)
		.SetColorAndOpacity(FriendStyle.PartyChatColor);

	const FTextBlockStyle WhisperChatFont = FTextBlockStyle(DefaultText)
		.SetFont(FriendStyle.FriendsFontStyleSmallBold)
		.SetColorAndOpacity(FriendStyle.WhisplerChatColor);

	const FButtonStyle UserNameButton = FButtonStyle()
		.SetNormal(FSlateNoResource())
		.SetPressed(FSlateNoResource())
		.SetHovered(FSlateNoResource());

	const FHyperlinkStyle GlobalChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(GlobalChatFont)
		.SetPadding(FMargin(0.0f));

	const FHyperlinkStyle PartyChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(PartyChatFont)
		.SetPadding(FMargin(0.0f));

	const FHyperlinkStyle WhisperChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(WhisperChatFont)
		.SetPadding(FMargin(0.0f));

	Style->Set("UserNameTextStyle.GlobalHyperlink", GlobalChatHyperlink);
	Style->Set("UserNameTextStyle.PartyHyperlink", PartyChatHyperlink);
	Style->Set("UserNameTextStyle.Whisperlink", WhisperChatHyperlink);
	Style->Set("UserNameTextStyle.GlobalTextStyle", GlobalChatFont);
	Style->Set("UserNameTextStyle.PartyTextStyle", PartyChatFont);
	Style->Set("UserNameTextStyle.WhisperTextStyle", WhisperChatFont);

	return Style;
}
TSharedRef< FSlateStyleSet > FFriendsAndChatModuleStyle::Create(FFriendsAndChatStyle FriendStyle)
{
	TSharedRef< FSlateStyleSet > Style = MakeShareable(new FSlateStyleSet("FriendsAndChatStyle"));

	const FTextBlockStyle DefaultText = FTextBlockStyle(FriendStyle.FriendsChatStyle.TextStyle)
		.SetFont(FriendStyle.FriendsNormalFontStyle.FriendsFontSmall);

	// Name Style
	const FTextBlockStyle GlobalChatFont = FTextBlockStyle(DefaultText)
		.SetFont(FriendStyle.FriendsNormalFontStyle.FriendsFontNormalBold)
		.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GlobalChatColor);

	const FTextBlockStyle GameChatFont = FTextBlockStyle(DefaultText)
		.SetFont(FriendStyle.FriendsNormalFontStyle.FriendsFontNormalBold)
		.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GameChatColor);

	const FTextBlockStyle PartyChatFont = FTextBlockStyle(DefaultText)
		.SetFont(FriendStyle.FriendsNormalFontStyle.FriendsFontNormalBold)
		.SetColorAndOpacity(FriendStyle.FriendsChatStyle.PartyChatColor);

	const FTextBlockStyle WhisperChatFont = FTextBlockStyle(DefaultText)
		.SetFont(FriendStyle.FriendsNormalFontStyle.FriendsFontNormalBold)
		.SetColorAndOpacity(FriendStyle.FriendsChatStyle.WhisplerChatColor);

	const FButtonStyle UserNameButton = FButtonStyle()
		.SetNormal(FSlateNoResource())
		.SetPressed(FSlateNoResource())
		.SetHovered(FSlateNoResource());

	const FHyperlinkStyle GlobalChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(GlobalChatFont)
		.SetPadding(FMargin(0.0f));

	const FHyperlinkStyle GameChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(GameChatFont)
		.SetPadding(FMargin(0.0f));

	const FHyperlinkStyle PartyChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(PartyChatFont)
		.SetPadding(FMargin(0.0f));

	const FHyperlinkStyle WhisperChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(WhisperChatFont)
		.SetPadding(FMargin(0.0f));

	const FHyperlinkStyle DefaultChatHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(UserNameButton)
		.SetTextStyle(DefaultText)
		.SetPadding(FMargin(0.0f));

	Style->Set("UserNameTextStyle.Default", DefaultText);

	Style->Set("UserNameTextStyle.GlobalHyperlink", GlobalChatHyperlink);
	Style->Set("UserNameTextStyle.GameHyperlink", GameChatHyperlink);
	Style->Set("UserNameTextStyle.PartyHyperlink", GameChatHyperlink);
	Style->Set("UserNameTextStyle.Whisperlink", WhisperChatHyperlink);
	Style->Set("UserNameTextStyle.DefaultHyperlink", DefaultChatHyperlink);
	Style->Set("UserNameTextStyle.GlobalTextStyle", GlobalChatFont);
	Style->Set("UserNameTextStyle.GameTextStyle", GameChatFont);
	Style->Set("UserNameTextStyle.PartyTextStyle", PartyChatFont);
	Style->Set("UserNameTextStyle.WhisperTextStyle", WhisperChatFont);

	Style->Set("MessageBreak", FTextBlockStyle(DefaultText)
		.SetFont(FSlateFontInfo(
		FriendStyle.FriendsNormalFontStyle.FriendsFontSmall.FontObject,
		6,
		FriendStyle.FriendsNormalFontStyle.FriendsFontSmall.TypefaceFontName
		)));

	Style->Set("GlobalChatIcon", FInlineTextImageStyle()
		.SetImage(FriendStyle.FriendsChatStyle.ChatGlobalBrush)
		.SetBaseline(0));

	Style->Set("WhisperChatIcon", FInlineTextImageStyle()
		.SetImage(FriendStyle.FriendsChatStyle.ChatWhisperBrush)
		.SetBaseline(0));

	Style->Set("PartyChatIcon", FInlineTextImageStyle()
		.SetImage(FriendStyle.FriendsChatStyle.ChatGameBrush)
		.SetBaseline(0));

	return Style;
}
TSharedRef< FSlateStyleSet > FAllarBuilderClientStyle::Create()
{
	const FVector2D Icon16x16(16.0f, 16.0f);
	const FVector2D Icon32x32(32.0f, 32.0f);
	const FVector2D Icon48x48(48.0f, 48.0f);
	const FVector2D Icon64x64(64.0f, 64.0f);

	TSharedRef<FSlateStyleSet> StyleRef = MakeShareable(new FSlateStyleSet("FAllarBuilderClientStyle"));
	FSlateStyleSet& Style = StyleRef.Get();

	const FTextBlockStyle DefaultText = FTextBlockStyle()
		.SetFont(TTF_FONT("Fonts/Roboto-Regular", 10))
		.SetColorAndOpacity(FSlateColor::UseForeground())
		.SetShadowOffset(FVector2D::ZeroVector)
		.SetShadowColorAndOpacity(FLinearColor::Black);

	// Set the client app styles
	Style.Set(TEXT("Background"), new IMAGE_BRUSH("Common/NoiseBackground", Icon64x64, FLinearColor(1,1,1,1), ESlateBrushTileType::Both));

	Style.Set(TEXT("ProjectPicker.Text"), FTextBlockStyle(DefaultText)
		.SetFont(TTF_FONT("Fonts/Roboto-Regular", 24))
		);
	
	Style.Set(TEXT("ProjectPicker.ErrorImage"), new IMAGE_BRUSH("Icons/icon_error_16x", Icon32x32));

	Style.Set(TEXT("Section.Label"), FTextBlockStyle(DefaultText)
		.SetFont(TTF_FONT("Fonts/Roboto-Bold", 18))
		);

	Style.Set(TEXT("Section.Border"), new BOX_BRUSH("Common/GroupBorder", FMargin(4.0f / 16.0f)));

	Style.Set(TEXT("Section.Text"), FTextBlockStyle(DefaultText)
		.SetFont(TTF_FONT("Fonts/Roboto-Regular", 10))
		);


	Style.Set(TEXT("Code"), FTextBlockStyle(DefaultText)
		.SetFont(TTF_FONT("Fonts/Roboto-Regular", 8))
		.SetColorAndOpacity(FSlateColor(FLinearColor::White * 0.8f))
		);

	Style.Set(TEXT("Title"), FTextBlockStyle(DefaultText)
		.SetFont(TTF_FONT("Fonts/Roboto-Bold", 12))
		);

	Style.Set(TEXT("Status"), FTextBlockStyle(DefaultText)
		.SetColorAndOpacity(FSlateColor::UseSubduedForeground())
		);

	FSlateBrush* GenericWhiteBox = new IMAGE_BRUSH("Old/White", Icon16x16);

	// Scrollbar
	const FScrollBarStyle ScrollBar = FScrollBarStyle()
		.SetVerticalTopSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Vertical", FVector2D(8, 8)))
		.SetVerticalBottomSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Vertical", FVector2D(8, 8)))
		.SetHorizontalTopSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Horizontal", FVector2D(8, 8)))
		.SetHorizontalBottomSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Horizontal", FVector2D(8, 8)))
		.SetNormalThumbImage(BOX_BRUSH("Common/Scrollbar_Thumb", FMargin(4.f / 16.f)))
		.SetDraggedThumbImage(BOX_BRUSH("Common/Scrollbar_Thumb", FMargin(4.f / 16.f)))
		.SetHoveredThumbImage(BOX_BRUSH("Common/Scrollbar_Thumb", FMargin(4.f / 16.f)));

	// SEditableTextBox defaults...
	const FEditableTextBoxStyle NormalEditableTextBoxStyle = FEditableTextBoxStyle()
		.SetBackgroundImageNormal(*GenericWhiteBox)
		.SetBackgroundImageHovered(*GenericWhiteBox)
		.SetBackgroundImageFocused(*GenericWhiteBox)
		.SetBackgroundImageReadOnly(*GenericWhiteBox)
		.SetScrollBarStyle(ScrollBar);
	{
		Style.Set("NormalEditableTextBox", NormalEditableTextBoxStyle);
	}

	// RichText
	const FTextBlockStyle AllarBuilderDataStyle = FTextBlockStyle()
		.SetFont(TTF_FONT("Testing/Fonts/Roboto-Italic", 9))
		.SetColorAndOpacity(FSlateColor(FLinearColor::White * 0.5f))
		.SetShadowOffset(FVector2D::ZeroVector)
		.SetShadowColorAndOpacity(FLinearColor::Black);

	Style.Set("AllarBuilderDataStyle", AllarBuilderDataStyle);

	FButtonStyle DarkHyperlinkButton = FButtonStyle()
		.SetNormal(BORDER_BRUSH("Old/HyperlinkDotted", FMargin(0, 0, 0, 3 / 16.0f), FSlateColor(FLinearColor::White * 0.5f)))
		.SetPressed(FSlateNoResource())
		.SetHovered(BORDER_BRUSH("Old/HyperlinkUnderline", FMargin(0, 0, 0, 3 / 16.0f), FSlateColor(FLinearColor::White * 0.5f)));

	const FHyperlinkStyle DarkHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle(DarkHyperlinkButton)
		.SetTextStyle(AllarBuilderDataStyle)
		.SetPadding(FMargin(0.0f));

	Style.Set("RichText.Hyperlink", DarkHyperlink);

	return StyleRef;
}
TSharedRef< FSlateStyleSet > FFriendsAndChatModuleStyle::Create(FFriendsAndChatStyle FriendStyle)
{
	TSharedRef< FSlateStyleSet > Style = MakeShareable(new FSlateStyleSet("FriendsAndChatStyle"));

	const FButtonStyle UserNameButton = FButtonStyle()
		.SetNormal(FSlateNoResource())
		.SetPressed(FSlateNoResource())
		.SetHovered(FSlateNoResource());

	// Small
	{
		const FTextBlockStyle DefaultTextSmall = FTextBlockStyle(FriendStyle.FriendsChatStyle.TextStyle)
			.SetFont(FriendStyle.ChatFontStyle.FriendsFontSmallBold);

		const FTextBlockStyle GlobalChatFontSmall = FTextBlockStyle(DefaultTextSmall)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GlobalHyperlinkChatColor);

		const FTextBlockStyle GameChatFontSmall = FTextBlockStyle(DefaultTextSmall)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GameHyperlinkChatColor);

		const FTextBlockStyle TeamChatFontSmall = FTextBlockStyle(DefaultTextSmall)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.TeamHyperlinkChatColor);

		const FTextBlockStyle PartyChatFontSmall = FTextBlockStyle(DefaultTextSmall)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.PartyHyperlinkChatColor);

		const FTextBlockStyle WhisperChatFontSmall = FTextBlockStyle(DefaultTextSmall)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.WhisperHyperlinkChatColor);

		const FHyperlinkStyle GlobalChatHyperlinkSmall = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(GlobalChatFontSmall)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle GameChatHyperlinkSmall = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(GameChatFontSmall)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle TeamChatHyperlinkSmall = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(TeamChatFontSmall)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle PartyChatHyperlinkSmall = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(PartyChatFontSmall)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle WhisperChatHyperlinkSmall = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(WhisperChatFontSmall)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle DefaultChatHyperlinkSmall = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(DefaultTextSmall)
			.SetPadding(FMargin(0.0f));

		Style->Set("UserNameTextStyle.DefaultSmall", DefaultTextSmall);
		Style->Set("UserNameTextStyle.GlobalHyperlinkSmall", GlobalChatHyperlinkSmall);
		Style->Set("UserNameTextStyle.GameHyperlinkSmall", GameChatHyperlinkSmall);
		Style->Set("UserNameTextStyle.TeamHyperlinkSmall", TeamChatHyperlinkSmall);
		Style->Set("UserNameTextStyle.PartyHyperlinkSmall", PartyChatHyperlinkSmall);
		Style->Set("UserNameTextStyle.WhisperlinkSmall", WhisperChatHyperlinkSmall);
		Style->Set("UserNameTextStyle.DefaultHyperlinkSmall", DefaultChatHyperlinkSmall);
		Style->Set("UserNameTextStyle.GlobalTextStyleSmall", GlobalChatFontSmall);
		Style->Set("UserNameTextStyle.GameTextStyleSmall", GameChatFontSmall);
		Style->Set("UserNameTextStyle.TeamTextStyleSmall", TeamChatFontSmall);
		Style->Set("UserNameTextStyle.PartyTextStyleSmall", PartyChatFontSmall);
		Style->Set("UserNameTextStyle.WhisperTextStyleSmall", WhisperChatFontSmall);

		Style->Set("MessageBreak", FTextBlockStyle(DefaultTextSmall)
			.SetFont(FSlateFontInfo(
			FriendStyle.FriendsNormalFontStyle.FriendsFontSmall.FontObject,
			6,
			FriendStyle.FriendsNormalFontStyle.FriendsFontSmall.TypefaceFontName
			)));
	}


	// Normal
	{
		const FTextBlockStyle DefaultText = FTextBlockStyle(FriendStyle.FriendsChatStyle.TextStyle)
			.SetFont(FriendStyle.ChatFontStyle.FriendsFontNormalBold);

		const FTextBlockStyle GlobalChatFont = FTextBlockStyle(DefaultText)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GlobalHyperlinkChatColor);

		const FTextBlockStyle GameChatFont = FTextBlockStyle(DefaultText)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GameHyperlinkChatColor);

		const FTextBlockStyle TeamChatFont = FTextBlockStyle(DefaultText)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.TeamHyperlinkChatColor);

		const FTextBlockStyle PartyChatFont = FTextBlockStyle(DefaultText)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.PartyHyperlinkChatColor);

		const FTextBlockStyle WhisperChatFont = FTextBlockStyle(DefaultText)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.WhisperHyperlinkChatColor);

		const FHyperlinkStyle GlobalChatHyperlink = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(GlobalChatFont)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle GameChatHyperlink = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(GameChatFont)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle TeamChatHyperlink = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(TeamChatFont)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle PartyChatHyperlink = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(PartyChatFont)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle WhisperChatHyperlink = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(WhisperChatFont)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle DefaultChatHyperlink = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(DefaultText)
			.SetPadding(FMargin(0.0f));

		Style->Set("UserNameTextStyle.Default", DefaultText);
		Style->Set("UserNameTextStyle.GlobalHyperlink", GlobalChatHyperlink);
		Style->Set("UserNameTextStyle.GameHyperlink", GameChatHyperlink);
		Style->Set("UserNameTextStyle.TeamHyperlink", TeamChatHyperlink);
		Style->Set("UserNameTextStyle.PartyHyperlink", PartyChatHyperlink);
		Style->Set("UserNameTextStyle.Whisperlink", WhisperChatHyperlink);
		Style->Set("UserNameTextStyle.DefaultHyperlink", DefaultChatHyperlink);
		Style->Set("UserNameTextStyle.GlobalTextStyle", GlobalChatFont);
		Style->Set("UserNameTextStyle.GameTextStyle", GameChatFont);
		Style->Set("UserNameTextStyle.TeamTextStyle", TeamChatFont);
		Style->Set("UserNameTextStyle.PartyTextStyle", PartyChatFont);
		Style->Set("UserNameTextStyle.WhisperTextStyle", WhisperChatFont);
	}

	// Large
	{
		const FTextBlockStyle DefaultTextLarge = FTextBlockStyle(FriendStyle.FriendsChatStyle.TextStyle)
			.SetFont(FriendStyle.ChatFontStyle.FriendsFontLargeBold);

		const FTextBlockStyle GlobalChatFontLarge = FTextBlockStyle(DefaultTextLarge)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GlobalHyperlinkChatColor);

		const FTextBlockStyle GameChatFontLarge = FTextBlockStyle(DefaultTextLarge)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.GameHyperlinkChatColor);

		const FTextBlockStyle TeamChatFontLarge = FTextBlockStyle(DefaultTextLarge)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.TeamHyperlinkChatColor);

		const FTextBlockStyle PartyChatFontLarge = FTextBlockStyle(DefaultTextLarge)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.PartyHyperlinkChatColor);

		const FTextBlockStyle WhisperChatFontLarge = FTextBlockStyle(DefaultTextLarge)
			.SetColorAndOpacity(FriendStyle.FriendsChatStyle.WhisperHyperlinkChatColor);

		const FHyperlinkStyle GlobalChatHyperlinkLarge = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(GlobalChatFontLarge)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle GameChatHyperlinkLarge = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(GameChatFontLarge)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle TeamChatHyperlinkLarge = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(TeamChatFontLarge)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle PartyChatHyperlinkLarge = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(PartyChatFontLarge)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle WhisperChatHyperlinkLarge = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(WhisperChatFontLarge)
			.SetPadding(FMargin(0.0f));

		const FHyperlinkStyle DefaultChatHyperlinkLarge = FHyperlinkStyle()
			.SetUnderlineStyle(UserNameButton)
			.SetTextStyle(DefaultTextLarge)
			.SetPadding(FMargin(0.0f));

		Style->Set("UserNameTextStyle.DefaultLarge", DefaultTextLarge);
		Style->Set("UserNameTextStyle.GlobalHyperlinkLarge", GlobalChatHyperlinkLarge);
		Style->Set("UserNameTextStyle.GameHyperlinkLarge", GameChatHyperlinkLarge);
		Style->Set("UserNameTextStyle.TeamHyperlinkLarge", TeamChatHyperlinkLarge);
		Style->Set("UserNameTextStyle.PartyHyperlinkLarge", PartyChatHyperlinkLarge);
		Style->Set("UserNameTextStyle.WhisperlinkLarge", WhisperChatHyperlinkLarge);
		Style->Set("UserNameTextStyle.DefaultHyperlinkLarge", DefaultChatHyperlinkLarge);
		Style->Set("UserNameTextStyle.GlobalTextStyleLarge", GlobalChatFontLarge);
		Style->Set("UserNameTextStyle.GameTextStyleLarge", GameChatFontLarge);
		Style->Set("UserNameTextStyle.TeamTextStyleLarge", TeamChatFontLarge);
		Style->Set("UserNameTextStyle.PartyTextStyleLarge", PartyChatFontLarge);
		Style->Set("UserNameTextStyle.WhisperTextStyleLarge", WhisperChatFontLarge);
	}

	return Style;
}
TSharedRef< FSlateStyleSet > FCrashReportClientStyle::Create()
{
	TSharedRef<FSlateStyleSet> StyleRef = MakeShareable(new FSlateStyleSet("CrashReportClientStyle"));
	FSlateStyleSet& Style = StyleRef.Get();

	const FTextBlockStyle DefaultText = FTextBlockStyle()
		.SetFont(TTF_FONT("Fonts/Roboto-Bold", 10))
		.SetColorAndOpacity(FSlateColor::UseForeground())
		.SetShadowOffset(FVector2D::ZeroVector)
		.SetShadowColorAndOpacity(FLinearColor::Black);

	// Set the client app styles
	Style.Set(TEXT("Code"), FTextBlockStyle(DefaultText)
		.SetFont(TTF_FONT("Fonts/Roboto-Regular", 8))
		.SetColorAndOpacity(FSlateColor(FLinearColor::White * 0.8f))
	);

	Style.Set(TEXT("Title"), FTextBlockStyle(DefaultText)
		.SetFont(TTF_FONT("Fonts/Roboto-Bold", 12))
	);

	Style.Set(TEXT("Status"), FTextBlockStyle(DefaultText)
		.SetColorAndOpacity(FSlateColor::UseSubduedForeground())
	);

	const FVector2D Icon16x16( 16.0f, 16.0f );
	FSlateBrush* GenericWhiteBox = new IMAGE_BRUSH( "Old/White", Icon16x16 );

	// Scrollbar
	const FScrollBarStyle ScrollBar = FScrollBarStyle()
		.SetVerticalTopSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Vertical", FVector2D(8, 8)))
		.SetVerticalBottomSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Vertical", FVector2D(8, 8)))
		.SetHorizontalTopSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Horizontal", FVector2D(8, 8)))
		.SetHorizontalBottomSlotImage(IMAGE_BRUSH("Common/Scrollbar_Background_Horizontal", FVector2D(8, 8)))
		.SetNormalThumbImage(BOX_BRUSH("Common/Scrollbar_Thumb", FMargin(4.f / 16.f)))
		.SetDraggedThumbImage(BOX_BRUSH("Common/Scrollbar_Thumb", FMargin(4.f / 16.f)))
		.SetHoveredThumbImage(BOX_BRUSH("Common/Scrollbar_Thumb", FMargin(4.f / 16.f)));

	// SEditableTextBox defaults...
	const FEditableTextBoxStyle NormalEditableTextBoxStyle = FEditableTextBoxStyle()
		.SetBackgroundImageNormal(*GenericWhiteBox)
		.SetBackgroundImageHovered(*GenericWhiteBox)
		.SetBackgroundImageFocused(*GenericWhiteBox)
		.SetBackgroundImageReadOnly(*GenericWhiteBox)
		.SetScrollBarStyle(ScrollBar);
	{
		Style.Set( "NormalEditableTextBox", NormalEditableTextBoxStyle );
	}

	// RichText
	const FTextBlockStyle CrashReportDataStyle = FTextBlockStyle()
		.SetFont( TTF_FONT( "Testing/Fonts/Roboto-Italic", 9 ) )
		.SetColorAndOpacity( FSlateColor( FLinearColor::White * 0.5f ) )
		.SetShadowOffset( FVector2D::ZeroVector )
		.SetShadowColorAndOpacity( FLinearColor::Black );

	Style.Set( "CrashReportDataStyle", CrashReportDataStyle );

	FButtonStyle DarkHyperlinkButton = FButtonStyle()
		.SetNormal( BORDER_BRUSH( "Old/HyperlinkDotted", FMargin( 0, 0, 0, 3 / 16.0f ), FSlateColor( FLinearColor::White * 0.5f ) ) )
		.SetPressed( FSlateNoResource() )
		.SetHovered( BORDER_BRUSH( "Old/HyperlinkUnderline", FMargin( 0, 0, 0, 3 / 16.0f ), FSlateColor( FLinearColor::White * 0.5f ) ) );

	const FHyperlinkStyle DarkHyperlink = FHyperlinkStyle()
		.SetUnderlineStyle( DarkHyperlinkButton )
		.SetTextStyle( CrashReportDataStyle )
		.SetPadding( FMargin( 0.0f ) );

	Style.Set( "RichText.Hyperlink", DarkHyperlink );

	return StyleRef;
}