using UnityEngine;
namespace Unity.CodeEditor.Rendering
{
internal class TextParagraphProperties
{
private readonly double _tabSize;
private readonly bool _textWrapping;
private readonly GUIStyle _guiStyle;
internal TextParagraphProperties Clone()
{
TextParagraphProperties result = new TextParagraphProperties(
TextWrapping,
TabSize,
Font,
FontSize,
ForegroundColor);
return result;
}
internal bool TextWrapping
{
get { return _textWrapping; }
}
internal double TabSize
{
get { return _tabSize; }
}
internal Font Font
{
get { return _guiStyle.font; }
}
internal int FontSize
{
get { return _guiStyle.fontSize; }
}
internal Color ForegroundColor
{
get { return _guiStyle.normal.textColor; }
}
internal GUIStyle GUIStyle
{
get { return _guiStyle; }
}
internal float Leading { get; set; } = 2;
internal bool FirstLineInParagraph { get; set; }
internal double Indent { get; set; }
internal void SetForegroundColor(Color foreground)
{
if (foreground.r == 0 && foreground.g == 0 && foreground.b == 0 && foreground.a == 0)
{
_guiStyle.normal.textColor = TextEditorColors.DefaultText;
return;
}
_guiStyle.normal.textColor = foreground;
}
internal TextParagraphProperties(
bool textWrapping,
double tabSize,
Font font,
int fontSize,
Color foregroundColor)
{
_tabSize = tabSize;
_textWrapping = textWrapping;
_guiStyle = new GUIStyle()
{
wordWrap = false,
font = font,
fontSize = fontSize,
normal =
{
textColor = foregroundColor,
},
richText = true,
};
}
}
}