diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
| commit | c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch) | |
| tree | ee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_StyleSheet.cs | |
| download | Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2 Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip | |
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_StyleSheet.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_StyleSheet.cs | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_StyleSheet.cs b/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_StyleSheet.cs new file mode 100644 index 0000000..8d02a18 --- /dev/null +++ b/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_StyleSheet.cs @@ -0,0 +1,131 @@ +using UnityEngine;
+using System;
+using System.Collections.Generic;
+
+
+namespace TMPro
+{
+
+ [Serializable]
+ public class TMP_StyleSheet : ScriptableObject
+ {
+ private static TMP_StyleSheet s_Instance;
+
+ [SerializeField]
+ private List<TMP_Style> m_StyleList = new List<TMP_Style>(1);
+ private Dictionary<int, TMP_Style> m_StyleDictionary = new Dictionary<int, TMP_Style>();
+
+
+ /// <summary>
+ /// Get a singleton instance of the TMP_StyleSheet
+ /// </summary>
+ public static TMP_StyleSheet instance
+ {
+ get
+ {
+ if (s_Instance == null)
+ {
+ s_Instance = TMP_Settings.defaultStyleSheet;
+
+ if (s_Instance == null)
+ s_Instance = Resources.Load<TMP_StyleSheet>("Style Sheets/Default Style Sheet");
+
+ if (s_Instance == null) return null;
+
+ // Load the style dictionary.
+ s_Instance.LoadStyleDictionaryInternal();
+ }
+
+ return s_Instance;
+ }
+ }
+
+
+ /// <summary>
+ /// Static Function to load the Default Style Sheet.
+ /// </summary>
+ /// <returns></returns>
+ public static TMP_StyleSheet LoadDefaultStyleSheet()
+ {
+ return instance;
+ }
+
+
+ /// <summary>
+ /// Function to retrieve the Style matching the HashCode.
+ /// </summary>
+ /// <param name="hashCode"></param>
+ /// <returns></returns>
+ public static TMP_Style GetStyle(int hashCode)
+ {
+ return instance.GetStyleInternal(hashCode);
+ }
+
+
+ /// <summary>
+ /// Internal method to retrieve the Style matching the Hashcode.
+ /// </summary>
+ /// <param name="hashCode"></param>
+ /// <returns></returns>
+ private TMP_Style GetStyleInternal(int hashCode)
+ {
+ if (m_StyleDictionary.TryGetValue(hashCode, out TMP_Style style))
+ {
+ return style;
+ }
+
+ return null;
+ }
+
+
+ public void UpdateStyleDictionaryKey(int old_key, int new_key)
+ {
+ if (m_StyleDictionary.ContainsKey(old_key))
+ {
+ TMP_Style style = m_StyleDictionary[old_key];
+ m_StyleDictionary.Add(new_key, style);
+ m_StyleDictionary.Remove(old_key);
+ }
+ }
+
+
+ /// <summary>
+ /// Function to update the internal reference to a newly assigned style sheet in the TMP Settings.
+ /// </summary>
+ public static void UpdateStyleSheet()
+ {
+ // Reset instance
+ s_Instance = null;
+
+ RefreshStyles();
+ }
+
+
+ /// <summary>
+ /// Function to refresh the Style Dictionary.
+ /// </summary>
+ public static void RefreshStyles()
+ {
+ instance.LoadStyleDictionaryInternal();
+ }
+
+
+ /// <summary>
+ ///
+ /// </summary>
+ private void LoadStyleDictionaryInternal()
+ {
+ m_StyleDictionary.Clear();
+
+ // Read Styles from style list and store them into dictionary for faster access.
+ for (int i = 0; i < m_StyleList.Count; i++)
+ {
+ m_StyleList[i].RefreshStyle();
+
+ if (!m_StyleDictionary.ContainsKey(m_StyleList[i].hashCode))
+ m_StyleDictionary.Add(m_StyleList[i].hashCode, m_StyleList[i]);
+ }
+ }
+ }
+
+}
\ No newline at end of file |
