public static StyleSheet ToStyleSheet(GUISkin skin, UssExportOptions options = null) { var builder = new StyleSheetBuilderHelper(options); AddSkin(builder, skin); builder.PopulateSheet(); return(builder.sheet); }
public UssExportOptions(UssExportOptions opts) : base() { comments = opts.comments ?? new UssComments(); propertyIndent = opts.propertyIndent; withComment = opts.withComment; exportDefaultValues = opts.exportDefaultValues; }
public static StyleSheet ToStyleSheet(GUIStyle style, string name, UssExportOptions options = null) { var builder = new StyleSheetBuilderHelper(options); AddStyle(builder, name, style); builder.PopulateSheet(); return(builder.sheet); }
public static string ToUssString(StyleSheet sheet, UssExportOptions options, StyleValueHandle handle) { string str = ""; switch (handle.valueType) { case StyleValueType.Keyword: str = sheet.ReadKeyword(handle).ToString().ToLower(); break; case StyleValueType.Float: str = sheet.ReadFloat(handle).ToString(CultureInfo.InvariantCulture.NumberFormat); break; case StyleValueType.Dimension: str = sheet.ReadDimension(handle).ToString(); break; case StyleValueType.Color: UnityEngine.Color color = sheet.ReadColor(handle); str = ToUssString(color, options.useColorCode); break; case StyleValueType.ResourcePath: str = $"resource(\"{sheet.ReadResourcePath(handle)}\")"; break; case StyleValueType.Enum: str = sheet.ReadEnum(handle); break; case StyleValueType.String: str = $"\"{sheet.ReadString(handle)}\""; break; case StyleValueType.Variable: str = sheet.ReadVariable(handle); break; case StyleValueType.Function: str = sheet.ReadFunctionName(handle); break; case StyleValueType.CommaSeparator: str = ","; break; default: throw new ArgumentException("Unhandled type " + handle.valueType); } return(str); }
public static void ToUssString(StyleSheet sheet, UssExportOptions options, StyleComplexSelector complexSelector, StringBuilder sb) { options.comments.TryGet(complexSelector.rule, comment => AddComment(sb, comment)); foreach (var selector in complexSelector.selectors) { ToUssString(selector.previousRelationship, selector.parts, sb); } sb.Append(" {\n"); ToUssString(sheet, options, complexSelector.rule, sb); sb.Append("}"); sb.Append("\n"); }
public static void ToUssString(StyleSheet sheet, UssExportOptions options, StyleRule rule, StringBuilder sb) { foreach (var property in rule.properties) { options.comments.TryGet(property, comment => { if (rule.properties[0] != property) { sb.Append("\n"); } AddComment(sb, comment, options.propertyIndent); }); sb.Append(options.propertyIndent); sb.Append(property.name); sb.Append(":"); if (property.name == "cursor" && property.values.Length > 1) { int i; string propertyValueStr; for (i = 0; i < property.values.Length - 1; i++) { propertyValueStr = ToUssString(sheet, options, property.values[i]); sb.Append(" "); sb.Append(propertyValueStr); } sb.Append(", "); propertyValueStr = ToUssString(sheet, options, property.values[i]); sb.Append(propertyValueStr); } else { foreach (var propertyValue in property.values) { var propertyValueStr = ToUssString(sheet, options, propertyValue); sb.Append(" "); sb.Append(propertyValueStr); } } sb.Append(";\n"); } }
public static string ToUssString(StyleSheet sheet, UssExportOptions options = null) { if (options == null) { options = new UssExportOptions(); } var sb = new StringBuilder(); if (sheet.complexSelectors != null) { for (var complexSelectorIndex = 0; complexSelectorIndex < sheet.complexSelectors.Length; ++complexSelectorIndex) { var complexSelector = sheet.complexSelectors[complexSelectorIndex]; ToUssString(sheet, options, complexSelector, sb); if (complexSelectorIndex != sheet.complexSelectors.Length - 1) { sb.Append("\n"); } } } return(sb.ToString()); }
public static void ToUssString(StringBuilder sb, StyleSheet sheet, UssExportOptions options, StyleValueHandle[] values, ref int valueIndex, int valueCount = -1) { for (; valueIndex < values.Length && valueCount != 0; --valueCount) { var propertyValue = values[valueIndex++]; switch (propertyValue.valueType) { case StyleValueType.Function: // First param: function name sb.Append(sheet.ReadFunctionName(propertyValue)); sb.Append("("); // Second param: number of arguments var nbParams = (int)sheet.ReadFloat(values[valueIndex++]); ToUssString(sb, sheet, options, values, ref valueIndex, nbParams); sb.Append(")"); break; case StyleValueType.FunctionSeparator: sb.Append(","); break; default: { var propertyValueStr = ToUssString(sheet, options, propertyValue); sb.Append(propertyValueStr); break; } } if (valueIndex < values.Length && values[valueIndex].valueType != StyleValueType.FunctionSeparator && valueCount != 1) { sb.Append(" "); } } }
public static string ToUssString(StyleSheet sheet, UssExportOptions options, StyleValueHandle handle) { string str = ""; switch (handle.valueType) { case StyleValueType.Keyword: str = sheet.ReadKeyword(handle).ToString().ToLower(); break; case StyleValueType.Float: str = sheet.ReadFloat(handle).ToString(); break; case StyleValueType.Color: UnityEngine.Color color = sheet.ReadColor(handle); str = ToUssString(color, options.useColorCode); break; case StyleValueType.ResourcePath: str = string.Format("resource(\"{0}\")", sheet.ReadResourcePath(handle)); break; case StyleValueType.Enum: str = sheet.ReadEnum(handle); break; case StyleValueType.String: str = string.Format("\"{0}\"", sheet.ReadString(handle)); break; default: throw new ArgumentException("Unhandled type " + handle.valueType); } return(str); }
public static void WriteStyleSheet(StyleSheet sheet, string path, UssExportOptions options = null) { File.WriteAllText(path, ToUssString(sheet, options)); }
public StyleSheetBuilderHelper(UssExportOptions opts = null) { builder = new StyleSheetBuilder(); options = opts ?? new UssExportOptions(); }