Пример #1
0
        public static StyleSheet ToStyleSheet(GUISkin skin, UssExportOptions options = null)
        {
            var builder = new StyleSheetBuilderHelper(options);

            AddSkin(builder, skin);
            builder.PopulateSheet();
            return(builder.sheet);
        }
Пример #2
0
 public UssExportOptions(UssExportOptions opts)
     : base()
 {
     comments            = opts.comments ?? new UssComments();
     propertyIndent      = opts.propertyIndent;
     withComment         = opts.withComment;
     exportDefaultValues = opts.exportDefaultValues;
 }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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");
            }
        }
Пример #7
0
        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());
        }
Пример #8
0
        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);
        }
Пример #10
0
 public static void WriteStyleSheet(StyleSheet sheet, string path, UssExportOptions options = null)
 {
     File.WriteAllText(path, ToUssString(sheet, options));
 }
Пример #11
0
 public StyleSheetBuilderHelper(UssExportOptions opts = null)
 {
     builder = new StyleSheetBuilder();
     options = opts ?? new UssExportOptions();
 }