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; } }
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; }
internal void AddRule(CSSRule rule) { _rules.List.Add(rule); }
internal void Add(CSSRule value, ICssStyleSheet owner, ICssRule parent) { _rules.Add(value); value.Owner = owner; value.Parent = parent; }