PO/Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Style.cs

130 lines
3.7 KiB
C#

using UnityEngine;
using System.Collections;
#pragma warning disable 0649 // Disabled warnings.
namespace TMPro
{
[System.Serializable]
public class TMP_Style
{
public static TMP_Style NormalStyle
{
get
{
if (k_NormalStyle == null)
k_NormalStyle = new TMP_Style("Normal", string.Empty, string.Empty);
return k_NormalStyle;
}
}
internal static TMP_Style k_NormalStyle;
// PUBLIC PROPERTIES
/// <summary>
/// The name identifying this style. ex. <style="name">.
/// </summary>
public string name
{ get { return m_Name; } set { if (value != m_Name) m_Name = value; } }
/// <summary>
/// The hash code corresponding to the name of this style.
/// </summary>
public int hashCode
{ get { return m_HashCode; } set { if (value != m_HashCode) m_HashCode = value; } }
/// <summary>
/// The initial definition of the style. ex. <b> <u>.
/// </summary>
public string styleOpeningDefinition
{ get { return m_OpeningDefinition; } }
/// <summary>
/// The closing definition of the style. ex. </b> </u>.
/// </summary>
public string styleClosingDefinition
{ get { return m_ClosingDefinition; } }
public int[] styleOpeningTagArray
{ get { return m_OpeningTagArray; } }
public int[] styleClosingTagArray
{ get { return m_ClosingTagArray; } }
// PRIVATE FIELDS
[SerializeField]
private string m_Name;
[SerializeField]
private int m_HashCode;
[SerializeField]
private string m_OpeningDefinition;
[SerializeField]
private string m_ClosingDefinition;
[SerializeField]
private int[] m_OpeningTagArray;
[SerializeField]
private int[] m_ClosingTagArray;
[SerializeField]
internal uint[] m_OpeningTagUnicodeArray;
[SerializeField]
internal uint[] m_ClosingTagUnicodeArray;
/// <summary>
/// Constructor
/// </summary>
/// <param name="styleName">Name of the style.</param>
/// <param name="styleOpeningDefinition">Style opening definition.</param>
/// <param name="styleClosingDefinition">Style closing definition.</param>
internal TMP_Style(string styleName, string styleOpeningDefinition, string styleClosingDefinition)
{
m_Name = styleName;
m_HashCode = TMP_TextParsingUtilities.GetHashCode(styleName);
m_OpeningDefinition = styleOpeningDefinition;
m_ClosingDefinition = styleClosingDefinition;
RefreshStyle();
}
/// <summary>
/// Function to update the content of the int[] resulting from changes to OpeningDefinition & ClosingDefinition.
/// </summary>
public void RefreshStyle()
{
m_HashCode = TMP_TextParsingUtilities.GetHashCode(m_Name);
int s1 = m_OpeningDefinition.Length;
m_OpeningTagArray = new int[s1];
m_OpeningTagUnicodeArray = new uint[s1];
for (int i = 0; i < s1; i++)
{
m_OpeningTagArray[i] = m_OpeningDefinition[i];
m_OpeningTagUnicodeArray[i] = m_OpeningDefinition[i];
}
int s2 = m_ClosingDefinition.Length;
m_ClosingTagArray = new int[s2];
m_ClosingTagUnicodeArray = new uint[s2];
for (int i = 0; i < s2; i++)
{
m_ClosingTagArray[i] = m_ClosingDefinition[i];
m_ClosingTagUnicodeArray[i] = m_ClosingDefinition[i];
}
}
}
}