Пример #1
0
        public CssRuleViewModel(CSSRule rule)
        {
            Init(rule);

            switch (rule.Type)
            {
                case CssRuleType.FontFace:
                    var font = (CSSFontFaceRule)rule;
                    name = "@font-face";
                    Populate(font.CssRules);
                    break;

                case CssRuleType.Keyframe:
                    var keyframe = (CSSKeyframeRule)rule;
                    name = keyframe.KeyText;
                    Populate(keyframe.Style);
                    break;

                case CssRuleType.Keyframes:
                    var keyframes = (CSSKeyframesRule)rule;
                    name = "@keyframes " + keyframes.Name;
                    Populate(keyframes.CssRules);
                    break;

                case CssRuleType.Media:
                    var media = (CSSMediaRule)rule;
                    name = "@media " + media.ConditionText;
                    Populate(media.CssRules);
                    break;

                case CssRuleType.Page:
                    var page = (CSSPageRule)rule;
                    name = "@page " + page.SelectorText;
                    Populate(page.Style);
                    break;

                case CssRuleType.Style:
                    var style = (CSSStyleRule)rule;
                    name = style.SelectorText;
                    Populate(style.Style);
                    break;

                case CssRuleType.Supports:
                    var support = (CSSSupportsRule)rule;
                    name = "@supports " + support.ConditionText;
                    Populate(support.CssRules);
                    break;

                default:
                    name = rule.CssText;
                    break;
            }
        }
Пример #2
0
        internal void Insert(CSSRule value, Int32 index, ICssStyleSheet owner, ICssRule parent)
        {
            if (value == null)
            {
                throw new DomException(ErrorCode.Syntax);
            }
            else if (value.Type == CssRuleType.Charset)
            {
                throw new DomException(ErrorCode.Syntax);
            }
            else if (index > _rules.Count)
            {
                throw new DomException(ErrorCode.IndexSizeError);
            }
            else if (value.Type == CssRuleType.Namespace && _rules.Any(m => (m.Type != CssRuleType.Import && m.Type != CssRuleType.Charset && m.Type != CssRuleType.Namespace)))
            {
                throw new DomException(ErrorCode.InvalidState);
            }

            _rules.Insert(index, value);
            value.Owner  = owner;
            value.Parent = parent;
        }
Пример #3
0
 internal void AddRule(CSSRule rule)
 {
     _rules.List.Add(rule);
 }
Пример #4
0
 internal void Add(CSSRule value, ICssStyleSheet owner, ICssRule parent)
 {
     _rules.Add(value);
     value.Owner  = owner;
     value.Parent = parent;
 }