private ThemeVariantData DrawViewThemesViewVariantsSprite(ThemeData themeData) { ThemeVariantData deleteVariant = null; float rowHeight = GetThemePropertyRowHeight(m_selectedThemeTab) - DGUI.Properties.Space(5); GUILayout.BeginHorizontal(); { foreach (ThemeVariantData variant in themeData.Variants.Where(variant => variant != null)) { GUILayout.BeginVertical(GUILayout.Width(m_themeVariantColumnWidth), GUILayout.Height(rowHeight)); { deleteVariant = DrawThemeVariantButton(themeData, variant); if (deleteVariant != null) { GUILayout.EndVertical(); break; } for (int propertyIndex = 0; propertyIndex < themeData.SpriteLabels.Count; propertyIndex++) { GUILayout.BeginHorizontal(GUILayout.Width(m_themeVariantColumnWidth)); { GUILayout.FlexibleSpace(); EditorGUI.BeginChangeCheck(); var sprite = (Sprite)EditorGUILayout.ObjectField(GUIContent.none, variant.Sprites[propertyIndex].Sprite, typeof(Sprite), false, GUILayout.Width(rowHeight), GUILayout.Height(rowHeight)); if (EditorGUI.EndChangeCheck()) { themeData.UndoRecord(UILabels.UpdateValue); variant.Sprites[propertyIndex] = new SpriteId(variant.Sprites[propertyIndex].Id, sprite); themeData.SetDirty(false); UpdateAllThemeTargets(themeData); } GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Space(DGUI.Properties.Space()); DrawHorizontalDivider(); GUILayout.Space(DGUI.Properties.Space()); } } GUILayout.EndVertical(); } DrawThemeAddVariantButton(themeData); GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); return(deleteVariant); }
private ThemeVariantData DrawThemeVariantButton(ThemeData themeData, ThemeVariantData variant) { ThemeVariantData deleteVariant = null; if (EditMode.faded > 0.01f) { string variantName = variant.VariantName; GUILayout.BeginHorizontal(GUILayout.Width(m_themeVariantColumnWidth)); { GUILayout.Space(DGUI.Properties.Space(1 - EditMode.faded)); if (DGUI.Button.IconButton.Minus()) { deleteVariant = variant; } GUILayout.Space(DGUI.Properties.Space(2 * (1 - EditMode.faded))); EditorGUI.BeginChangeCheck(); variantName = EditorGUILayout.TextField(variantName); } GUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { themeData.UndoRecord(UILabels.UpdateValue); variant.VariantName = variantName; themeData.SetDirty(false); } } else { bool activeVariant = themeData.ActiveVariant.Id.Equals(variant.Id); if (DGUI.Button.Draw(variant.VariantName, activeVariant ? CurrentViewColorName : DGUI.Colors.DisabledBackgroundColorName, activeVariant ? CurrentViewColorName : DGUI.Colors.DisabledTextColorName, activeVariant, m_themeVariantButtonHeight, m_themeVariantColumnWidth)) { themeData.ActivateVariant(variant); themeData.SetDirty(false); UpdateAllThemeTargets(themeData); } } if (EditMode.faded > 0.01f) { GUILayout.Space(DGUI.Properties.Space(2)); } GUILayout.Space(DGUI.Properties.Space(4)); DrawHorizontalDivider(); GUILayout.Space(DGUI.Properties.Space()); return(deleteVariant); }
private ThemeVariantData DrawViewThemesViewVariantsFontAsset(ThemeData themeData) { ThemeVariantData deleteVariant = null; GUILayout.BeginHorizontal(); { foreach (ThemeVariantData variant in themeData.Variants.Where(variant => variant != null)) { GUILayout.BeginVertical(GUILayout.Width(m_themeVariantColumnWidth)); { deleteVariant = DrawThemeVariantButton(themeData, variant); if (deleteVariant != null) { GUILayout.EndVertical(); break; } for (int propertyIndex = 0; propertyIndex < themeData.FontAssetLabels.Count; propertyIndex++) { GUILayout.BeginHorizontal(GUILayout.Width(m_themeVariantColumnWidth)); { #if dUI_TextMeshPro GUILayout.FlexibleSpace(); EditorGUI.BeginChangeCheck(); var fontAsset = (TMP_FontAsset)EditorGUILayout.ObjectField(GUIContent.none, variant.FontAssets[propertyIndex].FontAsset, typeof(TMP_FontAsset), false, GUILayout.Width(m_themeVariantColumnWidth)); if (EditorGUI.EndChangeCheck()) { themeData.UndoRecord(UILabels.UpdateValue); variant.FontAssets[propertyIndex] = new FontAssetId(variant.FontAssets[propertyIndex].Id, fontAsset); themeData.SetDirty(false); UpdateAllThemeTargets(themeData); } GUILayout.FlexibleSpace(); #endif } GUILayout.EndHorizontal(); GUILayout.Space(DGUI.Properties.Space()); DrawHorizontalDivider(); GUILayout.Space(DGUI.Properties.Space()); } } GUILayout.EndVertical(); } DrawThemeAddVariantButton(themeData); GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); return(deleteVariant); }
private ThemeVariantData DrawViewThemesViewVariantsColor(ThemeData themeData) { ThemeVariantData deleteVariant = null; GUILayout.BeginHorizontal(); { foreach (ThemeVariantData variant in themeData.Variants.Where(variant => variant != null)) { GUILayout.BeginVertical(GUILayout.Width(m_themeVariantColumnWidth)); { deleteVariant = DrawThemeVariantButton(themeData, variant); if (deleteVariant != null) { GUILayout.EndVertical(); break; } for (int propertyIndex = 0; propertyIndex < themeData.ColorLabels.Count; propertyIndex++) { GUILayout.BeginHorizontal(GUILayout.Width(m_themeVariantColumnWidth)); { GUILayout.FlexibleSpace(); EditorGUI.BeginChangeCheck(); Color color = EditorGUILayout.ColorField(GUIContent.none, variant.Colors[propertyIndex].Color, GUILayout.Width(DGUI.Properties.DefaultFieldWidth)); if (EditorGUI.EndChangeCheck()) { themeData.UndoRecord(UILabels.UpdateValue); variant.Colors[propertyIndex] = new ColorId(variant.Colors[propertyIndex].Id, color); themeData.SetDirty(false); UpdateAllThemeTargets(themeData); } GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); GUILayout.Space(DGUI.Properties.Space()); DrawHorizontalDivider(); GUILayout.Space(DGUI.Properties.Space()); } } GUILayout.EndVertical(); } DrawThemeAddVariantButton(themeData); GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); return(deleteVariant); }
private void DrawActionDescription() { DynamicHeight += DGUI.Properties.Space(4); float x = DrawRect.x + 16; float lineHeight = DGUI.Properties.SingleLineHeight; float iconLineHeight = lineHeight * 2; float iconSize = iconLineHeight * 0.6f; var iconRect = new Rect(x, DynamicHeight + (iconLineHeight - iconSize) / 2, iconSize, iconSize); float textX = iconRect.xMax + DGUI.Properties.Space(4); float textWidth = DrawRect.width - iconSize - DGUI.Properties.Space(4) - 32; var themeNameRect = new Rect(textX, DynamicHeight, textWidth, lineHeight); DynamicHeight += themeNameRect.height; var variantNameRect = new Rect(textX, DynamicHeight, textWidth, lineHeight); DynamicHeight += variantNameRect.height; DynamicHeight += DGUI.Properties.Space(4); if (ZoomedBeyondSocketDrawThreshold) { return; } m_targetThemeName = "---"; m_targetVariantName = "---"; ThemeData theme = ThemesSettings.Database.GetThemeData(TargetNode.ThemeId); if (theme != null) { m_targetThemeName = theme.ThemeName; ThemeVariantData variant = theme.GetVariant(TargetNode.VariantId); if (variant != null) { m_targetVariantName = variant.VariantName; } } Color iconAndTextColor = (DGUI.Utility.IsProSkin ? Color.white.Darker() : Color.black.Lighter()).WithAlpha(0.6f); DGUI.Icon.Draw(iconRect, m_actionIcon, iconAndTextColor); GUI.Label(themeNameRect, m_targetThemeName, DGUI.Colors.ColorTextOfGUIStyle(DGUI.Label.Style(Editor.Size.S, TextAlign.Left), iconAndTextColor)); GUI.Label(variantNameRect, m_targetVariantName, DGUI.Colors.ColorTextOfGUIStyle(DGUI.Label.Style(Editor.Size.M, TextAlign.Left), iconAndTextColor)); }
private void DrawViewThemesVariants(ThemeData themeData) { ThemeVariantData deleteVariant = null; GUILayout.BeginArea(ThemesVariantsAreaRect); m_themesVariantsScrollPosition = GUILayout.BeginScrollView(m_themesVariantsScrollPosition); { switch (m_selectedThemeTab) { case COLOR_TAB_INDEX: deleteVariant = DrawViewThemesViewVariantsColor(themeData); break; case SPRITE_TAB_INDEX: deleteVariant = DrawViewThemesViewVariantsSprite(themeData); break; case TEXTURE_TAB_INDEX: deleteVariant = DrawViewThemesViewVariantsTexture(themeData); break; case FONT_TAB_INDEX: deleteVariant = DrawViewThemesViewVariantsFont(themeData); break; #if dUI_TextMeshPro case FONT_ASSET_TAB_INDEX: deleteVariant = DrawViewThemesViewVariantsFontAsset(themeData); break; #endif } GUILayout.Space(DGUI.Properties.SingleLineHeight * 2); } GUILayout.EndScrollView(); GUILayout.EndArea(); if (deleteVariant != null) { themeData.RemoveVariant(deleteVariant, true, true, true); } }