using System; using UnityEngine; namespace UnityEditor.ProBuilder.UI { /// /// Collection of commonly used styles in the editor. /// static class EditorStyles { const string k_FontAsap = "About/Font/Asap-Regular.otf"; const string k_ButtonBackgroundNormal = "Toolbar/Background/RoundedRect_Normal"; const string k_ButtonBackgroundHover = "Toolbar/Background/RoundedRect_Hover"; const string k_ButtonBackgroundPressed = "Toolbar/Background/RoundedRect_Pressed"; const string k_SettingsBackgroundNormal = "Toolbar/RoundedBorder"; const string k_SceneTextBoxBackgroundNormal = "Scene/TextBackground"; static readonly Color k_TextColorWhiteNormal = new Color(0.7f, 0.7f, 0.7f, 1f); static readonly Color k_TextColorWhiteHover = new Color(0.7f, 0.7f, 0.7f, 1f); static readonly Color k_TextColorWhiteActive = new Color(0.5f, 0.5f, 0.5f, 1f); static bool s_Initialized; static GUIStyle s_ButtonStyle; static GUIStyle s_ToolbarHelpIcon; static GUIStyle s_SettingsGroup; static GUIStyle s_RowStyle; static GUIStyle s_HeaderLabel; static GUIStyle s_SceneTextBox; public static GUIStyle buttonStyle { get { Init(); return s_ButtonStyle; } } public static GUIStyle toolbarHelpIcon { get { Init(); return s_ToolbarHelpIcon; } } public static GUIStyle settingsGroup { get { Init(); return s_SettingsGroup; } } public static GUIStyle rowStyle { get { Init(); return s_RowStyle; } } public static GUIStyle headerLabel { get { Init(); return s_HeaderLabel; } } public static GUIStyle sceneTextBox { get { Init(); return s_SceneTextBox; } } static void Init() { if (s_Initialized) return; s_Initialized = true; s_ButtonStyle = new GUIStyle() { normal = new GUIStyleState() { background = IconUtility.GetIcon(k_ButtonBackgroundNormal), textColor = UnityEditor.EditorGUIUtility.isProSkin ? k_TextColorWhiteNormal : Color.black }, hover = new GUIStyleState() { background = IconUtility.GetIcon(k_ButtonBackgroundHover), textColor = UnityEditor.EditorGUIUtility.isProSkin ? k_TextColorWhiteHover : Color.black, }, active = new GUIStyleState() { background = IconUtility.GetIcon(k_ButtonBackgroundPressed), textColor = UnityEditor.EditorGUIUtility.isProSkin ? k_TextColorWhiteActive : Color.black, }, alignment = ProBuilderEditor.s_IsIconGui ? TextAnchor.MiddleCenter : TextAnchor.MiddleLeft, border = new RectOffset(3, 3, 3, 3), stretchWidth = true, stretchHeight = false, margin = new RectOffset(4, 4, 4, 4), padding = new RectOffset(4, 4, 4, 4) }; s_ToolbarHelpIcon = new GUIStyle() { margin = new RectOffset(0, 0, 0, 0), padding = new RectOffset(0, 0, 0, 0), alignment = TextAnchor.MiddleCenter, fixedWidth = 18, fixedHeight = 18 }; s_SettingsGroup = new GUIStyle() { normal = new GUIStyleState() { background = IconUtility.GetIcon(k_SettingsBackgroundNormal) }, hover = new GUIStyleState() { background = IconUtility.GetIcon(k_SettingsBackgroundNormal) }, active = new GUIStyleState() { background = IconUtility.GetIcon(k_SettingsBackgroundNormal) }, border = new RectOffset(3, 3, 3, 3), stretchWidth = true, stretchHeight = false, margin = new RectOffset(4, 4, 4, 4), padding = new RectOffset(4, 4, 4, 6) }; s_RowStyle = new GUIStyle() { normal = new GUIStyleState() { background = UnityEditor.EditorGUIUtility.whiteTexture }, stretchWidth = true, stretchHeight = false, margin = new RectOffset(4, 4, 4, 4), padding = new RectOffset(4, 4, 4, 4) }; s_HeaderLabel = new GUIStyle(UnityEditor.EditorStyles.boldLabel) { alignment = TextAnchor.LowerLeft, fontSize = 18, stretchWidth = true, stretchHeight = false }; Font asap = FileUtility.LoadInternalAsset(k_FontAsap); if (asap != null) s_HeaderLabel.font = asap; s_SceneTextBox = new GUIStyle(GUI.skin.box) { wordWrap = false, richText = true, stretchWidth = false, stretchHeight = false, border = new RectOffset(2, 2, 2, 2), padding = new RectOffset(4, 4, 4, 4), alignment = TextAnchor.UpperLeft, normal = new GUIStyleState() { textColor = k_TextColorWhiteNormal, background = IconUtility.GetIcon(k_SceneTextBoxBackgroundNormal) } }; } } }