Ejemplo n.º 1
0
    public static Color AsColor(this UssValue v)
    {
        v = v.Unwrap();

        if (v.GetType() == typeof(UssColorValue))
        {
            return(((UssColorValue)v).value);
        }
        if (v.GetType() == typeof(UssStringValue))
        {
            var str = v.AsString();
            if (str == "black")
            {
                return(Color.black);
            }
            else if (str == "green")
            {
                return(Color.green);
            }
            else if (str == "red")
            {
                return(Color.red);
            }
            else if (str == "blue")
            {
                return(Color.blue);
            }
        }

        throw new InvalidOperationException("Value cannot be color: " + v.GetType());
    }
Ejemplo n.º 2
0
    public void ApplyPaddingLeft(RectTransform g, UssValue value)
    {
        var v    = value.AsFloat();
        var elem = g.GetComponent <UtmlElement>();

        elem.padding.x = v;
    }
Ejemplo n.º 3
0
 public static UssValue Unwrap(this UssValue v)
 {
     if (v.GetType() == typeof(UssRefValue))
     {
         return(UssValues.GetValue((UssRefValue)v));
     }
     return(v);
 }
Ejemplo n.º 4
0
    private void ParseValues(UssToken token)
    {
        if (token.IsIgnoreable)
        {
            return;
        }

        if (token.type == UssTokenType.SemiColon)
        {
            if (valueState != ValueParsingState.End)
            {
                throw new UssUnexpectedTokenException(token);
            }

            state = ParsingState.Root;
            return;
        }

        if (valueState == ValueParsingState.Key)
        {
            if (token.type != UssTokenType.ValueRef)
            {
                throw new UssUnexpectedTokenException(token, UssTokenType.ValueRef);
            }

            valueKey   = token.body.Substring(1);
            valueState = ValueParsingState.Colon;
        }
        else if (valueState == ValueParsingState.Colon)
        {
            if (token.type == UssTokenType.LeftBracket)
            {
                state    = ParsingState.Properties;
                nodeType = CurrentNodeType.Bundle;
            }
            else if (token.type == UssTokenType.Colon)
            {
                valueState = ValueParsingState.Value;
            }
            else
            {
                throw new UssUnexpectedTokenException(token);
            }
        }
        else if (valueState == ValueParsingState.Value)
        {
            if (token.IsValue == false)
            {
                throw new UssUnexpectedTokenException(token);
            }

            values.Add(valueKey, UssValue.Create(token));
            valueState = ValueParsingState.End;
        }
    }
Ejemplo n.º 5
0
    public static Color AsColor(this UssValue v)
    {
        v = v.Unwrap();

        if (v.GetType() == typeof(UssColorValue))
        {
            return(((UssColorValue)v).value);
        }

        throw new InvalidOperationException("Value cannot be color: " + v.GetType());
    }
Ejemplo n.º 6
0
    public void ApplyVisibility(Graphic g, UssValue value)
    {
        var keywd = value.AsString();

        if (keywd == "visible")
        {
            g.enabled = true;
        }
        else
        {
            g.enabled = false;
        }
    }
Ejemplo n.º 7
0
    public void ApplyOverflowX(Text obj, UssValue value)
    {
        var v = value.AsString();

        if (v == "visible")
        {
            obj.horizontalOverflow = HorizontalWrapMode.Overflow;
        }
        else if (v == "wrap")
        {
            obj.horizontalOverflow = HorizontalWrapMode.Wrap;
        }
    }
Ejemplo n.º 8
0
    public void ApplyOverflowY(Text obj, UssValue value)
    {
        var v = value.AsString();

        if (v == "visible")
        {
            obj.verticalOverflow = VerticalWrapMode.Overflow;
        }
        else if (v == "hidden")
        {
            obj.verticalOverflow = VerticalWrapMode.Truncate;
        }
    }
Ejemplo n.º 9
0
    public static string AsString(this UssValue v)
    {
        v = v.Unwrap();

        if (v.GetType() == typeof(UssStringValue))
        {
            return(((UssStringValue)(object)v).value);
        }
        if (v.GetType() == typeof(UssNullValue))
        {
            return(null);
        }

        throw new InvalidOperationException("Value cannot be string: " + v.GetType());
    }
Ejemplo n.º 10
0
    public static int AsInt(this UssValue v)
    {
        v = v.Unwrap();

        if (v.GetType() == typeof(UssFloatValue))
        {
            return((int)((UssFloatValue)(object)v).value);
        }
        if (v.GetType() == typeof(UssIntValue))
        {
            return(((UssIntValue)(object)v).value);
        }

        throw new InvalidOperationException("Value cannot be integer: " + v.GetType());
    }
Ejemplo n.º 11
0
    public void ApplyFontStyle(Text g, UssValue value)
    {
        var style = value.AsString();

        if (style == "normal")
        {
            g.fontStyle = FontStyle.Normal;
        }
        else if (style == "bold")
        {
            g.fontStyle = FontStyle.Bold;
        }
        else if (style == "italic")
        {
            g.fontStyle = FontStyle.Italic;
        }
    }
Ejemplo n.º 12
0
    public void ApplyPaddingTop(RectTransform g, UssValue value)
    {
        var v = value.AsFloat();

        g.offsetMax = new Vector2(g.offsetMin.x, -v);
    }
Ejemplo n.º 13
0
    private bool ParseProperties(UssToken token)
    {
        if (token.IsIgnoreable)
        {
            return(false);
        }

        if (propertyState == PropertyParsingState.Key &&
            token.type == UssTokenType.RightBracket)
        {
            state = ParsingState.Root;
            return(true);
        }

        if (propertyState == PropertyParsingState.Key)
        {
            if (token.type == UssTokenType.ValueRef)
            {
                bundles.Add(token.body.Substring(1));

                if (GetNextToken().type == UssTokenType.SemiColon)
                {
                    WasteNextToken();
                }
                else
                {
                    throw new UssUnexpectedTokenException(GetNextToken(), UssTokenType.SemiColon);
                }
            }
            else if (token.type == UssTokenType.Id)
            {
                propertyValues = new List <UssValue>();

                propertyKey   = token.body;
                propertyState = PropertyParsingState.Colon;
            }
            else
            {
                throw new InvalidOperationException("Invalid token `" + token.body + "`. (expected Id)");
            }
        }
        else if (propertyState == PropertyParsingState.Colon)
        {
            if (token.type != UssTokenType.Colon)
            {
                throw new InvalidOperationException("Invalid token `" + token.body + "`. (expected Colon)");
            }

            propertyState = PropertyParsingState.Value;
        }
        else
        {
            if (token.IsValue)
            {
                propertyValues.Add(UssValue.Create(token));
            }
            else if (token.type == UssTokenType.SemiColon)
            {
                properties.Add(new UssStyleProperty()
                {
                    key    = propertyKey,
                    values = propertyValues.ToArray()
                });

                propertyState = PropertyParsingState.Key;
            }
            else
            {
                throw new InvalidOperationException("Invalid token `" + token.body + "`. (expected Value)");
            }
        }

        return(false);
    }
Ejemplo n.º 14
0
 public UssModifierException(string className, UssValue value, Type expected) :
     base(className + " : " + value.GetType().Name + ". (expected " + expected.Name + ")")
 {
 }
Ejemplo n.º 15
0
 public static void SetValue(string key, UssValue value)
 {
     values[key] = value;
 }
Ejemplo n.º 16
0
 public void ApplyFontSize(Text g, UssValue value)
 {
     g.fontSize = value.AsInt();
 }
Ejemplo n.º 17
0
 public void ApplyFontFamilty(Text g, UssValue value)
 {
 }
Ejemplo n.º 18
0
    public void ApplyColor(Graphic g, UssValue value)
    {
        var color = value.AsColor();

        g.color = color;
    }
Ejemplo n.º 19
0
    public void ApplyOpacity(Graphic g, UssValue value)
    {
        var alpha = value.AsFloat();

        g.canvasRenderer.SetAlpha(alpha);
    }
Ejemplo n.º 20
0
    public void ApplyPaddingLeft(RectTransform g, UssValue value)
    {
        var v = value.AsFloat();

        g.offsetMin = new Vector2(v, g.offsetMin.y);
    }
Ejemplo n.º 21
0
    public void ApplyPaddingBottom(RectTransform g, UssValue value)
    {
        var v = value.AsFloat();

        g.offsetMin = new Vector2(g.offsetMin.x, v);
    }
Ejemplo n.º 22
0
    public void ApplyPaddingRight(RectTransform g, UssValue value)
    {
        var v = value.AsFloat();

        g.offsetMax = new Vector2(-v, g.offsetMax.y);
    }