using UnityEditor; using UnityEngine; namespace Unity.VisualScripting { public static class LudiqStyles { static LudiqStyles() { // General centeredLabel = new GUIStyle(EditorStyles.label); centeredLabel.alignment = TextAnchor.MiddleCenter; centeredLabel.margin = new RectOffset(0, 0, 5, 5); centeredLabel.wordWrap = true; horizontalSeparator = ColorPalette.unityBackgroundVeryDark.CreateBackground(); horizontalSeparator.fixedHeight = 1; horizontalSeparator.stretchWidth = true; verticalSeparator = ColorPalette.unityBackgroundVeryDark.CreateBackground(); verticalSeparator.fixedWidth = 1; verticalSeparator.stretchHeight = true; expandedTooltip = new GUIStyle(EditorStyles.label); expandedTooltip.normal.textColor = ColorPalette.unityForegroundDim; expandedTooltip.wordWrap = true; expandedTooltip.fontSize = 10; expandedTooltip.padding = new RectOffset(2, 5, 0, 10); paddedButton = new GUIStyle("Button"); paddedButton.padding = new RectOffset(10, 10, 5, 5); textAreaWordWrapped = new GUIStyle(EditorStyles.textArea); textAreaWordWrapped.wordWrap = true; spinnerButton = new GUIStyle("MiniToolbarButton"); spinnerButton.padding = new RectOffset(0, 0, 0, 0); spinnerButton.imagePosition = ImagePosition.ImageOnly; spinnerButton.alignment = TextAnchor.MiddleCenter; spinnerButton.fixedWidth = 0; spinnerButton.fixedHeight = 0; spinnerDownArrow = new GUIStyle(LudiqGUIUtility.newSkin ? "IN MinMaxStateDropDown" : "IN DropDown").normal.background; // Headers headerBackground = new GUIStyle("IN BigTitle"); headerBackground.margin = new RectOffset(0, 0, 0, 5); // Show smaller icons on high DPI displays, // and crisp 32x icons on standard DPI displays if (EditorGUIUtility.pixelsPerPoint >= 2) { headerBackground.padding = new RectOffset(8, 8, 8, 9); } else { headerBackground.padding = new RectOffset(8, 6, 6, 7); } headerTitle = new GUIStyle(EditorStyles.label); headerTitle.fontSize = 13; headerTitle.wordWrap = true; headerSummary = new GUIStyle(EditorStyles.label); headerSummary.wordWrap = true; headerIcon = new GUIStyle(); if (EditorGUIUtility.pixelsPerPoint >= 2) { headerIcon.fixedWidth = 20; headerIcon.fixedHeight = 20; headerIcon.margin = new RectOffset(0, 8, 3, 0); } else { headerIcon.fixedWidth = 32; headerIcon.fixedHeight = 32; headerIcon.margin = new RectOffset(0, 6, 3, 0); } headerTitleField = new GUIStyle(EditorStyles.textField); headerTitleField.fontSize = 13; headerTitleField.fixedHeight = 19; headerTitleFieldHidable = new GUIStyle(headerTitleField); headerTitleFieldHidable.hover.background = headerTitleFieldHidable.normal.background; headerTitleFieldHidable.normal.background = ColorPalette.transparent.GetPixel(); headerTitlePlaceholder = new GUIStyle(EditorStyles.label); headerTitlePlaceholder.normal.textColor = EditorStyles.centeredGreyMiniLabel.normal.textColor; headerTitlePlaceholder.padding = headerTitleField.padding; headerTitlePlaceholder.fontSize = headerTitleField.fontSize; headerSummaryField = new GUIStyle(EditorStyles.textArea); headerSummaryFieldHidable = new GUIStyle(headerSummaryField); headerSummaryFieldHidable.hover.background = headerSummaryFieldHidable.normal.background; headerSummaryFieldHidable.normal.background = ColorPalette.transparent.GetPixel(); headerSummaryPlaceholder = new GUIStyle(EditorStyles.label); headerSummaryPlaceholder.normal.textColor = EditorStyles.centeredGreyMiniLabel.normal.textColor; headerSummaryPlaceholder.padding = EditorStyles.textField.padding; // Lists listBackground = ColorPalette.unityBackgroundLight.CreateBackground(); listRow = new GUIStyle(); listRow.fontSize = 13; listRow.richText = true; listRow.alignment = TextAnchor.MiddleRight; listRow.padding = new RectOffset(18, 8, 10, 10); var normalBackground = ColorPalette.transparent.GetPixel(); var selectedBackground = ColorPalette.unitySelectionHighlight.GetPixel(); var normalForeground = ColorPalette.unityForeground; var selectedForeground = ColorPalette.unityForegroundSelected; listRow.normal.background = normalBackground; listRow.normal.textColor = normalForeground; listRow.onNormal.background = selectedBackground; listRow.onNormal.textColor = selectedForeground; listRow.active.background = normalBackground; listRow.active.textColor = normalForeground; listRow.onActive.background = selectedBackground; listRow.onActive.textColor = selectedForeground; listRow.border = new RectOffset(1, 1, 1, 1); // Toolbars toolbarBackground = new GUIStyle(EditorStyles.toolbar); toolbarButton = new GUIStyle(EditorStyles.toolbarButton); toolbarButton.alignment = TextAnchor.MiddleCenter; toolbarButton.padding.right -= 2; toolbarPopup = new GUIStyle(EditorStyles.toolbarPopup); toolbarBreadcrumbRoot = new GUIStyle("GUIEditor.BreadcrumbLeft"); toolbarBreadcrumbRoot.alignment = TextAnchor.MiddleCenter; toolbarBreadcrumbRoot.padding.bottom++; toolbarBreadcrumbRoot.fontSize = 9; toolbarBreadcrumbRoot.margin.left = 0; toolbarBreadcrumb = new GUIStyle("GUIEditor.BreadcrumbMid"); toolbarBreadcrumb.alignment = TextAnchor.MiddleCenter; toolbarBreadcrumb.padding.bottom++; toolbarBreadcrumb.fontSize = 9; toolbarLabel = new GUIStyle(EditorStyles.label); toolbarLabel.alignment = TextAnchor.MiddleCenter; toolbarLabel.padding = new RectOffset(2, 2, 2, 2); toolbarLabel.fontSize = 9; // Windows windowHeaderBackground = new GUIStyle("IN BigTitle"); windowHeaderBackground.margin = new RectOffset(0, 0, 0, 0); windowHeaderBackground.padding = new RectOffset(10, 10, 20, 20); windowHeaderTitle = new GUIStyle(EditorStyles.label); windowHeaderTitle.padding = new RectOffset(0, 0, 0, 0); windowHeaderTitle.margin = new RectOffset(0, 0, 0, 0); windowHeaderTitle.alignment = TextAnchor.MiddleCenter; windowHeaderTitle.fontSize = 14; windowHeaderIcon = new GUIStyle(); windowHeaderIcon.imagePosition = ImagePosition.ImageOnly; windowHeaderIcon.alignment = TextAnchor.MiddleCenter; windowHeaderIcon.fixedWidth = IconSize.Medium; windowHeaderIcon.fixedHeight = IconSize.Medium; windowHeaderTitle.fixedHeight = headerIcon.fixedHeight; windowBackground = ColorPalette.unityBackgroundMid.CreateBackground(); } // General public static readonly GUIStyle centeredLabel; public static readonly GUIStyle horizontalSeparator; public static readonly GUIStyle verticalSeparator; public static readonly GUIStyle expandedTooltip; public static readonly GUIStyle paddedButton; public static readonly float compactHorizontalSpacing = 2; public static readonly GUIStyle textAreaWordWrapped; public static readonly GUIStyle spinnerButton; public static readonly Texture2D spinnerDownArrow; // Headers public static readonly GUIStyle headerBackground; public static readonly GUIStyle headerIcon; public static readonly GUIStyle headerTitle; public static readonly GUIStyle headerTitleField; public static readonly GUIStyle headerTitleFieldHidable; public static readonly GUIStyle headerTitlePlaceholder; public static readonly GUIStyle headerSummary; public static readonly GUIStyle headerSummaryField; public static readonly GUIStyle headerSummaryFieldHidable; public static readonly GUIStyle headerSummaryPlaceholder; // Lists public static readonly GUIStyle listRow; public static readonly GUIStyle listBackground; // Toolbars public static readonly GUIStyle toolbarBackground; public static readonly GUIStyle toolbarButton; public static readonly GUIStyle toolbarPopup; public static readonly GUIStyle toolbarBreadcrumbRoot; public static readonly GUIStyle toolbarBreadcrumb; public static readonly GUIStyle toolbarLabel; // Windows public static readonly GUIStyle windowHeaderBackground; public static readonly GUIStyle windowHeaderTitle; public static readonly GUIStyle windowHeaderIcon; public static readonly GUIStyle windowBackground; public static readonly float spaceBetweenWindowHeaderIconAndTitle = 14; } }