From c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sun, 19 Apr 2020 17:19:32 -0400 Subject: Inital commit --- .../Scripts/Runtime/TMP_Settings.cs | 440 +++++++++++++++++++++ 1 file changed, 440 insertions(+) create mode 100644 Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_Settings.cs (limited to 'Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_Settings.cs') diff --git a/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_Settings.cs b/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_Settings.cs new file mode 100644 index 0000000..8155ea3 --- /dev/null +++ b/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/TMP_Settings.cs @@ -0,0 +1,440 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + + +#pragma warning disable 0649 // Disabled warnings related to serialized fields not assigned in this script but used in the editor. + +namespace TMPro +{ + [System.Serializable] + public class TMP_Settings : ScriptableObject + { + private static TMP_Settings s_Instance; + + /// + /// Returns the release version of the product. + /// + public static string version + { + get { return "1.4.0"; } + } + + /// + /// Controls if Word Wrapping will be enabled on newly created text objects by default. + /// + public static bool enableWordWrapping + { + get { return instance.m_enableWordWrapping; } + } + [SerializeField] + private bool m_enableWordWrapping; + + /// + /// Controls if Kerning is enabled on newly created text objects by default. + /// + public static bool enableKerning + { + get { return instance.m_enableKerning; } + } + [SerializeField] + private bool m_enableKerning; + + /// + /// Controls if Extra Padding is enabled on newly created text objects by default. + /// + public static bool enableExtraPadding + { + get { return instance.m_enableExtraPadding; } + } + [SerializeField] + private bool m_enableExtraPadding; + + /// + /// Controls if TintAllSprites is enabled on newly created text objects by default. + /// + public static bool enableTintAllSprites + { + get { return instance.m_enableTintAllSprites; } + } + [SerializeField] + private bool m_enableTintAllSprites; + + /// + /// Controls if Escape Characters will be parsed in the Text Input Box on newly created text objects. + /// + public static bool enableParseEscapeCharacters + { + get { return instance.m_enableParseEscapeCharacters; } + } + [SerializeField] + private bool m_enableParseEscapeCharacters; + + /// + /// Controls if Raycast Target is enabled by default on newly created text objects. + /// + public static bool enableRaycastTarget + { + get { return instance.m_EnableRaycastTarget; } + } + [SerializeField] + private bool m_EnableRaycastTarget = true; + + /// + /// Determines if OpenType Font Features should be retrieved at runtime from the source font file. + /// + public static bool getFontFeaturesAtRuntime + { + get { return instance.m_GetFontFeaturesAtRuntime; } + } + [SerializeField] + private bool m_GetFontFeaturesAtRuntime = true; + + /// + /// The character that will be used as a replacement for missing glyphs in a font asset. + /// + public static int missingGlyphCharacter + { + get { return instance.m_missingGlyphCharacter; } + set { instance.m_missingGlyphCharacter = value; } + } + [SerializeField] + private int m_missingGlyphCharacter; + + /// + /// Controls the display of warning message in the console. + /// + public static bool warningsDisabled + { + get { return instance.m_warningsDisabled; } + } + [SerializeField] + private bool m_warningsDisabled; + + /// + /// Returns the Default Font Asset to be used by newly created text objects. + /// + public static TMP_FontAsset defaultFontAsset + { + get { return instance.m_defaultFontAsset; } + } + [SerializeField] + private TMP_FontAsset m_defaultFontAsset; + + /// + /// The relative path to a Resources folder in the project. + /// + public static string defaultFontAssetPath + { + get { return instance.m_defaultFontAssetPath; } + } + [SerializeField] + private string m_defaultFontAssetPath; + + /// + /// The Default Point Size of newly created text objects. + /// + public static float defaultFontSize + { + get { return instance.m_defaultFontSize; } + } + [SerializeField] + private float m_defaultFontSize; + + /// + /// The multiplier used to computer the default Min point size when Text Auto Sizing is used. + /// + public static float defaultTextAutoSizingMinRatio + { + get { return instance.m_defaultAutoSizeMinRatio; } + } + [SerializeField] + private float m_defaultAutoSizeMinRatio; + + /// + /// The multiplier used to computer the default Max point size when Text Auto Sizing is used. + /// + public static float defaultTextAutoSizingMaxRatio + { + get { return instance.m_defaultAutoSizeMaxRatio; } + } + [SerializeField] + private float m_defaultAutoSizeMaxRatio; + + /// + /// The Default Size of the Text Container of a TextMeshPro object. + /// + public static Vector2 defaultTextMeshProTextContainerSize + { + get { return instance.m_defaultTextMeshProTextContainerSize; } + } + [SerializeField] + private Vector2 m_defaultTextMeshProTextContainerSize; + + /// + /// The Default Width of the Text Container of a TextMeshProUI object. + /// + public static Vector2 defaultTextMeshProUITextContainerSize + { + get { return instance.m_defaultTextMeshProUITextContainerSize; } + } + [SerializeField] + private Vector2 m_defaultTextMeshProUITextContainerSize; + + /// + /// Set the size of the text container of newly created text objects to match the size of the text. + /// + public static bool autoSizeTextContainer + { + get { return instance.m_autoSizeTextContainer; } + } + [SerializeField] + private bool m_autoSizeTextContainer; + + /// + /// Returns the list of Fallback Fonts defined in the TMP Settings file. + /// + public static List fallbackFontAssets + { + get { return instance.m_fallbackFontAssets; } + } + [SerializeField] + private List m_fallbackFontAssets; + + /// + /// Controls whether or not TMP will create a matching material preset or use the default material of the fallback font asset. + /// + public static bool matchMaterialPreset + { + get { return instance.m_matchMaterialPreset; } + } + [SerializeField] + private bool m_matchMaterialPreset; + + /// + /// The Default Sprite Asset to be used by default. + /// + public static TMP_SpriteAsset defaultSpriteAsset + { + get { return instance.m_defaultSpriteAsset; } + } + [SerializeField] + private TMP_SpriteAsset m_defaultSpriteAsset; + + /// + /// The relative path to a Resources folder in the project. + /// + public static string defaultSpriteAssetPath + { + get { return instance.m_defaultSpriteAssetPath; } + } + [SerializeField] + private string m_defaultSpriteAssetPath; + + /// + /// The relative path to a Resources folder in the project that contains Color Gradient Presets. + /// + public static string defaultColorGradientPresetsPath + { + get { return instance.m_defaultColorGradientPresetsPath; } + } + [SerializeField] + private string m_defaultColorGradientPresetsPath; + + /// + /// Determines if Emoji support is enabled in the Input Field TouchScreenKeyboard. + /// + public static bool enableEmojiSupport + { + get { return instance.m_enableEmojiSupport; } + set { instance.m_enableEmojiSupport = value; } + } + [SerializeField] + private bool m_enableEmojiSupport; + + /// + /// The Default Style Sheet used by the text objects. + /// + public static TMP_StyleSheet defaultStyleSheet + { + get { return instance.m_defaultStyleSheet; } + } + [SerializeField] + private TMP_StyleSheet m_defaultStyleSheet; + + /// + /// Text file that contains the leading characters used for line breaking for Asian languages. + /// + public static TextAsset leadingCharacters + { + get { return instance.m_leadingCharacters; } + } + [SerializeField] + private TextAsset m_leadingCharacters; + + /// + /// Text file that contains the following characters used for line breaking for Asian languages. + /// + public static TextAsset followingCharacters + { + get { return instance.m_followingCharacters; } + } + [SerializeField] + private TextAsset m_followingCharacters; + + /// + /// + /// + public static LineBreakingTable linebreakingRules + { + get + { + if (instance.m_linebreakingRules == null) + LoadLinebreakingRules(); + + return instance.m_linebreakingRules; + } + } + [SerializeField] + private LineBreakingTable m_linebreakingRules; + + /// + /// Get a singleton instance of the settings class. + /// + public static TMP_Settings instance + { + get + { + if (TMP_Settings.s_Instance == null) + { + TMP_Settings.s_Instance = Resources.Load("TMP Settings"); + + #if UNITY_EDITOR + // Make sure TextMesh Pro UPM packages resources have been added to the user project + if (TMP_Settings.s_Instance == null) + { + // Open TMP Resources Importer + TMP_PackageResourceImporterWindow.ShowPackageImporterWindow(); + } + #endif + } + + return TMP_Settings.s_Instance; + } + } + + + /// + /// Static Function to load the TMP Settings file. + /// + /// + public static TMP_Settings LoadDefaultSettings() + { + if (s_Instance == null) + { + // Load settings from TMP_Settings file + TMP_Settings settings = Resources.Load("TMP Settings"); + if (settings != null) + s_Instance = settings; + } + + return s_Instance; + } + + + /// + /// Returns the Sprite Asset defined in the TMP Settings file. + /// + /// + public static TMP_Settings GetSettings() + { + if (TMP_Settings.instance == null) return null; + + return TMP_Settings.instance; + } + + + /// + /// Returns the Font Asset defined in the TMP Settings file. + /// + /// + public static TMP_FontAsset GetFontAsset() + { + if (TMP_Settings.instance == null) return null; + + return TMP_Settings.instance.m_defaultFontAsset; + } + + + /// + /// Returns the Sprite Asset defined in the TMP Settings file. + /// + /// + public static TMP_SpriteAsset GetSpriteAsset() + { + if (TMP_Settings.instance == null) return null; + + return TMP_Settings.instance.m_defaultSpriteAsset; + } + + + /// + /// Returns the Sprite Asset defined in the TMP Settings file. + /// + /// + public static TMP_StyleSheet GetStyleSheet() + { + if (TMP_Settings.instance == null) return null; + + return TMP_Settings.instance.m_defaultStyleSheet; + } + + + public static void LoadLinebreakingRules() + { + //Debug.Log("Loading Line Breaking Rules for Asian Languages."); + + if (TMP_Settings.instance == null) return; + + if (s_Instance.m_linebreakingRules == null) + s_Instance.m_linebreakingRules = new LineBreakingTable(); + + s_Instance.m_linebreakingRules.leadingCharacters = GetCharacters(s_Instance.m_leadingCharacters); + s_Instance.m_linebreakingRules.followingCharacters = GetCharacters(s_Instance.m_followingCharacters); + } + + + /// + /// Get the characters from the line breaking files + /// + /// + /// + private static Dictionary GetCharacters(TextAsset file) + { + Dictionary dict = new Dictionary(); + string text = file.text; + + for (int i = 0; i < text.Length; i++) + { + char c = text[i]; + // Check to make sure we don't include duplicates + if (dict.ContainsKey((int)c) == false) + { + dict.Add((int)c, c); + //Debug.Log("Adding [" + (int)c + "] to dictionary."); + } + //else + // Debug.Log("Character [" + text[i] + "] is a duplicate."); + } + + return dict; + } + + + public class LineBreakingTable + { + public Dictionary leadingCharacters; + public Dictionary followingCharacters; + } + } +} -- cgit v1.2.3