You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.7 KiB
129 lines
3.7 KiB
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]; |
|
} |
|
} |
|
|
|
} |
|
}
|
|
|