コード例 #1
0
        /// <summary>
        /// Always called after parsing is done (full or incremental)
        /// </summary>
        public override void UpdateCachedChildren()
        {
            _declarations.Clear();
            _directives.Clear();

            int childCount = Children.Count;

            for (int i = 0; i < childCount; i++)
            {
                ParseItem child = Children[i];
                if (child is Declaration)
                {
                    if (_declarations == _emptyDeclarations)
                    {
                        _declarations = new SortedRangeList <Declaration>();
                    }

                    _declarations.Add((Declaration)child);
                }
                else if (child is AtDirective)
                {
                    if (_directives == _emptyDirectives)
                    {
                        _directives = new SortedRangeList <AtDirective>();
                    }

                    _directives.Add((AtDirective)child);
                }
            }

            base.UpdateCachedChildren();

            // tell the stylesheet to update in case we have new CustomProperties
            StyleSheet?.UpdateCachedChildren();
        }
コード例 #2
0
        public void SortedRangeListChangeStampTest()
        {
            SortedRangeList <TestRange> list = new SortedRangeList <TestRange>();

            int stamp = list.ChangeStamp;

            list.ForceUpdateChangeStamp();
            Assert.AreNotEqual(stamp, list.ChangeStamp);
            stamp = list.ChangeStamp;

            list.Clear();
            Assert.AreEqual(stamp, list.ChangeStamp);

            list.Add(new TestRange(5, 1));
            list.Add(new TestRange(6, 1));
            Assert.AreNotEqual(stamp, list.ChangeStamp);
            stamp = list.ChangeStamp;

            list.IndexOf(list[0]);
            Assert.AreEqual(stamp, list.ChangeStamp);

            list.Remove(list[0]);
            Assert.AreNotEqual(stamp, list.ChangeStamp);
            stamp = list.ChangeStamp;

            list.Clear();
            Assert.AreNotEqual(stamp, list.ChangeStamp);
        }
コード例 #3
0
 public SelectorErrorTag(SortedRangeList <Selector> range, string text)
 {
     _range = range;
     Flags  = WESettings.Instance.Css.ValidationLocation.ToCssErrorFlags();
     Text   = text;
 }
コード例 #4
0
 public ImportDirective()
 {
     MediaQueries = new SortedRangeList <MediaQuery>();
     FileNames    = new SortedRangeList <ParseItem>();
 }
コード例 #5
0
 public KeyFramesRuleSet()
 {
     Selectors = new SortedRangeList <KeyFramesSelector>();
 }
コード例 #6
0
 public Selector()
 {
     Context         = CssClassifierContextCache.FromTypeEnum(CssClassifierContextType.Selector);
     SimpleSelectors = new SortedRangeList <SimpleSelector>();
 }
コード例 #7
0
 public SelectorErrorTag(SortedRangeList<Selector> range)
 {
     _range = range;
     Flags = WESettings.Instance.Css.ValidationLocation.ToCssErrorFlags();
 }
コード例 #8
0
 internal UnknownDirectiveBlock()
 {
     RuleSets = new SortedRangeList <RuleSet>();
 }
コード例 #9
0
 public SelectorErrorTag(SortedRangeList <Selector> range, string errorMessage)
 {
     _range        = range;
     _errorMessage = errorMessage;
     Flags         = GetLocation();
 }
コード例 #10
0
 public KeyFramesBlock()
 {
     KeyFrames = new SortedRangeList <KeyFramesRuleSet>();
 }
コード例 #11
0
 public MediaQuery()
 {
     Expressions = new SortedRangeList <MediaExpression>();
     Context     = CssClassifierContextCache.FromTypeEnum(CssClassifierContextType.MediaQuery);
 }
コード例 #12
0
 public StyleSheet()
 {
     RuleSets         = new SortedRangeList <RuleSet>();
     CustomProperties = new SortedRangeList <Declaration>();
 }
コード例 #13
0
 public RuleBlock()
 {
     _declarations = _emptyDeclarations;
     _directives   = _emptyDirectives;
 }
コード例 #14
0
 public SelectorErrorTag(SortedRangeList<Selector> range, string errorMessage)
 {
     _range = range;
     _errorMessage = errorMessage;
     Flags = GetLocation();
 }
コード例 #15
0
 public RuleSet()
 {
     Selectors = new SortedRangeList <Selector>();
 }
コード例 #16
0
 internal PageDirectiveBlock()
 {
     Margins = new SortedRangeList <MarginDirective>();
 }
コード例 #17
0
 public MediaDirective()
 {
     MediaQueries = new SortedRangeList <MediaQuery>();
 }