Exemple #1
0
 void EvaluateRuleSet(WebDom.CssRuleSet ruleset)
 {
     //only some prop need to be alter
     List<CssPropertyDeclaration> newProps = null;
     foreach (CssPropertyDeclaration decl in ruleset.GetAssignmentIter())
     {
         switch (decl.WellknownPropertyName)
         {
             case WellknownCssPropertyName.Font:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandFontProperty(decl, newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.Border:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandBorderProperty(decl, BorderDirection.All, newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.BorderLeft:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandBorderProperty(decl, BorderDirection.Left, newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.BorderRight:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandBorderProperty(decl, BorderDirection.Right, newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.BorderTop:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandBorderProperty(decl, BorderDirection.Top, newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.BorderBottom:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandBorderProperty(decl, BorderDirection.Bottom, newProps);
                     decl.IsExpand = true;
                 }
                 break;
             //---------------------------
             case WellknownCssPropertyName.BorderStyle:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandCssEdgeProperty(decl,
                         WellknownCssPropertyName.BorderLeftStyle,
                         WellknownCssPropertyName.BorderTopStyle,
                         WellknownCssPropertyName.BorderRightStyle,
                         WellknownCssPropertyName.BorderBottomStyle,
                         newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.BorderWidth:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandCssEdgeProperty(decl,
                          WellknownCssPropertyName.BorderLeftWidth,
                          WellknownCssPropertyName.BorderTopWidth,
                          WellknownCssPropertyName.BorderRightWidth,
                          WellknownCssPropertyName.BorderBottomWidth,
                          newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.BorderColor:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandCssEdgeProperty(decl,
                         WellknownCssPropertyName.BorderLeftColor,
                         WellknownCssPropertyName.BorderTopColor,
                         WellknownCssPropertyName.BorderRightColor,
                         WellknownCssPropertyName.BorderBottomColor,
                         newProps);
                     decl.IsExpand = true;
                 }
                 break;
             //---------------------------
             case WellknownCssPropertyName.Margin:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandCssEdgeProperty(decl,
                         WellknownCssPropertyName.MarginLeft,
                         WellknownCssPropertyName.MarginTop,
                         WellknownCssPropertyName.MarginRight,
                         WellknownCssPropertyName.MarginBottom,
                         newProps);
                     decl.IsExpand = true;
                 }
                 break;
             case WellknownCssPropertyName.Padding:
                 {
                     if (newProps == null) newProps = new List<CssPropertyDeclaration>();
                     ExpandCssEdgeProperty(decl,
                         WellknownCssPropertyName.PaddingLeft,
                         WellknownCssPropertyName.PaddingTop,
                         WellknownCssPropertyName.PaddingRight,
                         WellknownCssPropertyName.PaddingBottom,
                         newProps);
                     decl.IsExpand = true;
                 }
                 break;
         }
     }
     //--------------------
     //add new prop to ruleset
     if (newProps == null)
     {
         return;
     }
     //------------
     int newPropCount = newProps.Count;
     for (int i = 0; i < newPropCount; ++i)
     {
         //add new prop to ruleset
         ruleset.AddCssCodeProperty(newProps[i]);
     }
 }