Beispiel #1
0
        private Term BuildFunctionTerm(string name, List <Term> terms)
        {
            switch (name)
            {
            case "rgb":
            {
                if (terms.Count == 5)
                {
                    if (CheckNumber(terms[0]) &&
                        CheckNumber(terms[2]) &&
                        CheckNumber(terms[4]))
                    {
                        return(HtmlColor.FromRgb(
                                   ToByte(terms[0]),
                                   ToByte(terms[2]),
                                   ToByte(terms[4])));
                    }
                }

                break;
            }

            case "rgba":
            {
                if (terms.Count == 7)
                {
                    if (CheckNumber(terms[0]) &&
                        CheckNumber(terms[2]) &&
                        CheckNumber(terms[4]) &&
                        CheckNumber(terms[6]))
                    {
                        return(HtmlColor.FromRgba(
                                   ToByte(terms[0]),
                                   ToByte(terms[2]),
                                   ToByte(terms[4]),
                                   ToSingle(terms[6])));
                    }
                }

                break;
            }

            case "hsl":
            {
                if (_termList.Count == 5)
                {
                    if (CheckNumber(terms[0]) &&
                        CheckPercentage(terms[2]) &&
                        CheckPercentage(terms[4]))
                    {
                        return(HtmlColor.FromHsl(
                                   ToSingle(terms[0]),
                                   ToSingle(terms[2], UnitType.Percentage),
                                   ToSingle(terms[4], UnitType.Percentage)));
                    }
                }

                break;
            }
            }

            return(new GenericFunction(name, terms));
        }