public static void DrawSeparator(SeparationStyle style = SeparationStyle.Default) { if (Event.current.type == EventType.Repaint) { Texture2D tex = EditorGUIUtility.whiteTexture; Rect rect = GUILayoutUtility.GetLastRect(); Color defaultColor = GUI.color; switch (style) { case SeparationStyle.Default: GUI.color = new UnityEngine.Color(0f, 0f, 0f, 0.25f); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 2f), tex); break; case SeparationStyle.SmallDark: GUI.color = new UnityEngine.Color(0f, 0f, 0f, 0.25f); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 1f), tex); break; case SeparationStyle.BigDark: GUI.color = new UnityEngine.Color(0f, 0f, 0f, 0.25f); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 1f), tex); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 2f), tex); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 1f), tex); break; case SeparationStyle.SmallLight: GUI.color = new UnityEngine.Color(0f, 0f, 0f, 0.4f); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 1f), tex); break; case SeparationStyle.BigLight: GUI.color = new UnityEngine.Color(0f, 0f, 0f, 0.15f); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 4f), tex); GUI.color = new UnityEngine.Color(0f, 0f, 0f, 0.4f); GUI.DrawTexture(new Rect(0f, rect.yMin + 6f, Screen.width, 1f), tex); GUI.DrawTexture(new Rect(0f, rect.yMin + 9f, Screen.width, 1f), tex); GUI.color = UnityEngine.Color.white; break; } GUI.color = defaultColor; } }
public static void AddSeperator(RenderContext context, CardElement element, Grid uiContainer, SeparationStyle seperationStyle) { if (seperationStyle == SeparationStyle.None) { return; } var uiSep = new Grid(); uiSep.Style = context.GetStyle($"Adaptive.Separator"); SeparationConfig sepStyle = null; switch (seperationStyle) { case SeparationStyle.Default: sepStyle = context.Config.GetSeparationForElement(element, strong: false); break; case SeparationStyle.Strong: sepStyle = context.Config.GetSeparationForElement(element, strong: true); break; } uiSep.Margin = new Thickness(0, (sepStyle.Spacing - sepStyle.LineThickness) / 2, 0, (sepStyle.Spacing - sepStyle.LineThickness) / 2); uiSep.SetHeight(sepStyle.LineThickness); if (!string.IsNullOrWhiteSpace(sepStyle.LineColor)) { uiSep.SetBackgroundColor(sepStyle.LineColor, context); } uiContainer.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); Grid.SetRow(uiSep, uiContainer.RowDefinitions.Count - 1); uiContainer.Children.Add(uiSep); }