示例#1
0
 public static CssEmptyCell GetEmptyCell(WebDom.CssCodeValueExpression value)
 {
     return((CssEmptyCell)EvaluateIntPropertyValueFromString(
                _cssEmptyCellMap,
                WebDom.CssValueEvaluatedAs.EmptyCell,
                CssEmptyCell.Show, value));
 }
示例#2
0
        public static CssLength AsLength(this WebDom.CssCodeValueExpression value)
        {
            if (value.EvaluatedAs != WebDom.CssValueEvaluatedAs.Length)
            {
                //length from number
                switch (value.Hint)
                {
                case WebDom.CssValueHint.Number:
                {
                    if (value is WebDom.CssCodePrimitiveExpression)
                    {
                        WebDom.CssCodePrimitiveExpression prim = (WebDom.CssCodePrimitiveExpression)value;
                        CssLength len = new CssLength(value.AsNumber(), GetCssUnit(prim.Unit));
                        value.SetCssLength(len, WebDom.CssValueEvaluatedAs.Length);
                        return(len);
                    }
                    else
                    {
                        CssLength len = CssLength.MakePixelLength(value.AsNumber());
                        value.SetCssLength(len, WebDom.CssValueEvaluatedAs.Length);
                        return(len);
                    }
                }

                default:
                {
                    CssLength len = TranslateLength(value.ToString());
                    value.SetCssLength(len, WebDom.CssValueEvaluatedAs.Length);
                    return(len);
                }
                }
            }
            return(value.GetCacheCssLength());
        }
示例#3
0
 public static CssFontStyle GetFontStyle(WebDom.CssCodeValueExpression value)
 {
     return((CssFontStyle)EvaluateIntPropertyValueFromString(
                _cssFontStyleMap,
                WebDom.CssValueEvaluatedAs.FontStyle,
                CssFontStyle.Normal,
                value));
 }
示例#4
0
 public static CssWhiteSpace GetWhitespace(WebDom.CssCodeValueExpression value)
 {
     return((CssWhiteSpace)EvaluateIntPropertyValueFromString(
                _cssWhitespaceMap,
                WebDom.CssValueEvaluatedAs.WhiteSpace,
                CssWhiteSpace.Normal,
                value));
 }
示例#5
0
 public static CssBorderStyle GetBorderStyle(WebDom.CssCodeValueExpression value)
 {
     return((CssBorderStyle)EvaluateIntPropertyValueFromString(
                _cssBorderStyleMap,
                WebDom.CssValueEvaluatedAs.BorderStyle,
                CssBorderStyle.None,
                value));
 }
示例#6
0
 public static CssVerticalAlign GetVerticalAlign(WebDom.CssCodeValueExpression value)
 {
     return((CssVerticalAlign)EvaluateIntPropertyValueFromString(
                _cssVerticalAlignMap,
                WebDom.CssValueEvaluatedAs.VerticalAlign,
                CssVerticalAlign.Baseline,
                value));
 }
示例#7
0
 public static CssVisibility GetVisibility(WebDom.CssCodeValueExpression value)
 {
     return((CssVisibility)EvaluateIntPropertyValueFromString(
                _cssVisibilityMap,
                WebDom.CssValueEvaluatedAs.Visibility,
                CssVisibility.Visible,
                value));
 }
示例#8
0
 public static CssTextAlign GetTextAlign(WebDom.CssCodeValueExpression value)
 {
     return((CssTextAlign)EvaluateIntPropertyValueFromString(
                _cssTextAlignMap,
                WebDom.CssValueEvaluatedAs.TextAlign,
                CssTextAlign.NotAssign,
                value));
 }
示例#9
0
 public static CssBoxSizing GetBoxSizing(WebDom.CssCodeValueExpression value)
 {
     return((CssBoxSizing)EvaluateIntPropertyValueFromString(
                _cssBoxSizingMap,
                WebDom.CssValueEvaluatedAs.BoxSizing,
                CssBoxSizing.ContentBox,//default
                value));
 }
示例#10
0
 public static CssWordBreak GetWordBreak(WebDom.CssCodeValueExpression value)
 {
     return((CssWordBreak)EvaluateIntPropertyValueFromString(
                _cssWordBreakMap,
                WebDom.CssValueEvaluatedAs.WordBreak,
                CssWordBreak.Normal,
                value));
 }
示例#11
0
 public static CssOverflow GetOverflow(WebDom.CssCodeValueExpression value)
 {
     return((CssOverflow)EvaluateIntPropertyValueFromString(
                _cssOverFlowMap,
                WebDom.CssValueEvaluatedAs.Overflow,
                CssOverflow.Visible,
                value));
 }
示例#12
0
 //----------------------
 public static CssPosition GetCssPosition(WebDom.CssCodeValueExpression value)
 {
     return((CssPosition)EvaluateIntPropertyValueFromString(
                _cssPositionMap,
                WebDom.CssValueEvaluatedAs.Position,
                CssPosition.Static,
                value));
 }
示例#13
0
 public static CssBackgroundRepeat GetBackgroundRepeat(WebDom.CssCodeValueExpression value)
 {
     return((CssBackgroundRepeat)EvaluateIntPropertyValueFromString(
                _cssBackgroundRepeatMap,
                WebDom.CssValueEvaluatedAs.BackgroundRepeat,
                CssBackgroundRepeat.Repeat,
                value));
 }
示例#14
0
 //-----------------------
 public static CssDisplay GetDisplayType(WebDom.CssCodeValueExpression value)
 {
     return((CssDisplay)EvaluateIntPropertyValueFromString(
                _cssDisplayMap,
                WebDom.CssValueEvaluatedAs.Display,
                CssDisplay.Inline,
                value));
 }
示例#15
0
 public static CssFontVariant GetFontVariant(WebDom.CssCodeValueExpression value)
 {
     return((CssFontVariant)EvaluateIntPropertyValueFromString(
                _cssFontVariantMap,
                WebDom.CssValueEvaluatedAs.FontVariant,
                CssFontVariant.Normal,
                value));
 }
示例#16
0
 public static CssFloat GetFloat(WebDom.CssCodeValueExpression value)
 {
     return((CssFloat)EvaluateIntPropertyValueFromString(
                _cssFloatMap,
                WebDom.CssValueEvaluatedAs.Float,
                CssFloat.None,
                value));
 }
示例#17
0
        //-----------------------

        public static CssBorderCollapse GetBorderCollapse(WebDom.CssCodeValueExpression value)
        {
            return((CssBorderCollapse)EvaluateIntPropertyValueFromString(
                       _cssCollapseBorderMap,
                       WebDom.CssValueEvaluatedAs.BorderCollapse,
                       CssBorderCollapse.Separate,
                       value));
        }
示例#18
0
 public static CssListStyleType GetListStyleType(WebDom.CssCodeValueExpression value)
 {
     return((CssListStyleType)EvaluateIntPropertyValueFromString(
                _cssListStyleTypeMap,
                WebDom.CssValueEvaluatedAs.ListStyleType,
                CssListStyleType.Disc,
                value));
 }
示例#19
0
 public static CssListStylePosition GetListStylePosition(WebDom.CssCodeValueExpression value)
 {
     return((CssListStylePosition)EvaluateIntPropertyValueFromString(
                _cssListStylePositionMap,
                WebDom.CssValueEvaluatedAs.ListStylePosition,
                CssListStylePosition.Outside,
                value));
 }
示例#20
0
 public static CssFontWeight GetFontWeight(WebDom.CssCodeValueExpression value)
 {
     return((CssFontWeight)EvaluateIntPropertyValueFromString(
                _cssFontWeightMap,
                WebDom.CssValueEvaluatedAs.Float,
                CssFontWeight.NotAssign,
                value));
 }
示例#21
0
 static void SetCornerRadius(BoxSpec box, WebDom.CssCodeValueExpression value)
 {
     WebDom.CssCodePrimitiveExpression prim = value as WebDom.CssCodePrimitiveExpression;
     if (prim == null)
     {
         //combinator values?
         throw new NotSupportedException();
         return;
     }
     box.CornerNERadius     = box.CornerNWRadius =
         box.CornerSERadius = box.CornerSWRadius = UserMapUtil.AsLength(prim);
 }
示例#22
0
 static void SetBorderSpacing(BoxSpec box, WebDom.CssCodeValueExpression value)
 {
     WebDom.CssCodePrimitiveExpression primValue = value as WebDom.CssCodePrimitiveExpression;
     if (primValue == null)
     {
         //2 values?
         //box.BorderSpacingHorizontal = new CssLength(r[0].Value);
         //box.BorderSpacingVertical = new CssLength(r[1].Value);
         throw new NotSupportedException();
     }
     else
     {
         //primitive value
         box.BorderSpacingHorizontal = box.BorderSpacingVertical = UserMapUtil.AsLength(primValue);
     }
 }
示例#23
0
 public static CssColor AsColor(WebDom.CssCodeValueExpression value)
 {
     if (value.EvaluatedAs != WebDom.CssValueEvaluatedAs.Color)
     {
         if (value is WebDom.CssCodeColor)
         {
             return(((WebDom.CssCodeColor)value).ActualColor);
         }
         else
         {
             CssColor actualColor = CssValueParser2.GetActualColor(value.GetTranslatedStringValue());
             value.SetColorValue(actualColor);
             return(actualColor);
         }
     }
     return(value.GetCacheColor());
 }
示例#24
0
 //-----------------------
 static int EvaluateIntPropertyValueFromString <T>(ValueMap <T> map,
                                                   WebDom.CssValueEvaluatedAs
                                                   evalAs,
                                                   T defaultValue,
                                                   WebDom.CssCodeValueExpression value)
     where T : struct
 {
     if (value.EvaluatedAs != evalAs)
     {
         T   knownValue = map.GetValueFromString(value.GetTranslatedStringValue(), defaultValue);
         int result     = Convert.ToInt32(knownValue);
         value.SetIntValue(result, evalAs);
         return((int)result);
     }
     else
     {
         return(value.GetCacheIntValue());
     }
 }
示例#25
0
 static void SetBackgroundPosition(this BoxSpec box, WebDom.CssCodeValueExpression value)
 {
     //TODO: implement background position from combination value
     throw new NotSupportedException();
 }
示例#26
0
        static void SetFontSize(this BoxSpec box, WebDom.CssCodeValueExpression value)
        {
            //number + value
            WebDom.CssCodePrimitiveExpression primValue = value as WebDom.CssCodePrimitiveExpression;
            if (primValue == null)
            {
                return;
            }
            switch (primValue.Hint)
            {
            case WebDom.CssValueHint.Number:
            {
                //has unit or not
                //?
                //or percent ?

                CssLength len = UserMapUtil.AsLength(primValue);
                if (len.HasError)
                {
                    len = CssLength.FontSizeMedium;
                }
                box.FontSize = len;
            }
            break;

            case WebDom.CssValueHint.Iden:
            {
                switch (primValue.GetTranslatedStringValue())
                {
                default:
                {
                    throw new NotSupportedException();
                }

                case CssConstants.Medium:
                    box.FontSize = CssLength.FontSizeMedium;
                    break;

                case CssConstants.Small:
                    box.FontSize = CssLength.FontSizeSmall;
                    break;

                case CssConstants.XSmall:
                    box.FontSize = CssLength.FontSizeXSmall;
                    break;

                case CssConstants.XXSmall:
                    box.FontSize = CssLength.FontSizeXXSmall;
                    break;

                case CssConstants.Large:
                    box.FontSize = CssLength.FontSizeLarge;
                    break;

                case CssConstants.XLarge:
                    box.FontSize = CssLength.FontSizeLarge;
                    break;

                case CssConstants.XXLarge:
                    box.FontSize = CssLength.FontSizeLarger;
                    break;

                case CssConstants.Smaller:
                    box.FontSize = CssLength.FontSizeSmaller;
                    break;

                case CssConstants.Larger:
                    box.FontSize = CssLength.FontSizeLarger;
                    break;
                }
            }
            break;
            }
        }
示例#27
0
 internal static Color AsColor(WebDom.CssCodeValueExpression value)
 {
     return(CssColorConv.ConvertToActualColor(UserMapUtil.AsColor(value)));
 }
示例#28
0
 internal static Color AsColor(WebDom.CssCodeValueExpression value)
 {
     return(UserMapUtil.AsColor(value));
 }