internal static dfMarkupString Obtain(string text)
 {
     if (objectPool.Count > 0)
     {
         dfMarkupString str = objectPool.Dequeue();
         str.Text         = dfMarkupEntity.Replace(text);
         str.isWhitespace = whitespacePattern.IsMatch(str.Text);
         return(str);
     }
     return(new dfMarkupString(text));
 }
Exemple #2
0
    internal static dfMarkupString Obtain(string text)
    {
        if (dfMarkupString.objectPool.Count <= 0)
        {
            return(new dfMarkupString(text));
        }
        dfMarkupString _dfMarkupString = dfMarkupString.objectPool.Dequeue();

        _dfMarkupString.Text         = dfMarkupEntity.Replace(text);
        _dfMarkupString.isWhitespace = dfMarkupString.whitespacePattern.IsMatch(_dfMarkupString.Text);
        return(_dfMarkupString);
    }
Exemple #3
0
 protected override void _PerformLayoutImpl(dfMarkupBox container, dfMarkupStyle style)
 {
     style = base.applyTextStyleAttributes(style);
     for (int i = 0; i < base.ChildNodes.Count; i++)
     {
         dfMarkupElement element = base.ChildNodes[i];
         if (element is dfMarkupString)
         {
             dfMarkupString str = element as dfMarkupString;
             if (str.Text == "\n")
             {
                 if (style.PreserveWhitespace)
                 {
                     container.AddLineBreak();
                 }
                 continue;
             }
         }
         element.PerformLayout(container, style);
     }
 }
    private dfList <dfMarkupElement> parseMarkup(string source)
    {
        //@Profiler.BeginSample( "Parse markup: Tokenize" );

        var tokens = new Queue <dfMarkupElement>();

        var matches = TAG_PATTERN.Matches(source);

        var index = 0;

        for (int i = 0; i < matches.Count; i++)
        {
            var match = matches[i];

            if (match.Index > index)
            {
                var text        = source.Substring(index, match.Index - index);
                var textElement = new dfMarkupString(text);

                tokens.Enqueue(textElement);
            }

            index = match.Index + match.Length;

            tokens.Enqueue(parseTag(match));
        }

        if (index < source.Length)
        {
            var text        = source.Substring(index);
            var textElement = new dfMarkupString(text);
            tokens.Enqueue(textElement);
        }

        //@Profiler.EndSample();

        return(processTokens(tokens));
    }
Exemple #5
0
    private dfList <dfMarkupElement> parseMarkup(string source)
    {
        Queue <dfMarkupElement> tokens = new Queue <dfMarkupElement>();
        MatchCollection         matchs = TAG_PATTERN.Matches(source);
        int startIndex = 0;

        for (int i = 0; i < matchs.Count; i++)
        {
            Match tag = matchs[i];
            if (tag.Index > startIndex)
            {
                dfMarkupString item = new dfMarkupString(source.Substring(startIndex, tag.Index - startIndex));
                tokens.Enqueue(item);
            }
            startIndex = tag.Index + tag.Length;
            tokens.Enqueue(this.parseTag(tag));
        }
        if (startIndex < source.Length)
        {
            dfMarkupString str4 = new dfMarkupString(source.Substring(startIndex));
            tokens.Enqueue(str4);
        }
        return(this.processTokens(tokens));
    }
    private dfList<dfMarkupElement> parseMarkup( string source )
    {
        //@Profiler.BeginSample( "Parse markup: Tokenize" );

        var tokens = new Queue<dfMarkupElement>();

        var matches = TAG_PATTERN.Matches( source );

        var index = 0;
        for( int i = 0; i < matches.Count; i++ )
        {

            var match = matches[ i ];

            if( match.Index > index )
            {

                var text = source.Substring( index, match.Index - index );
                var textElement = new dfMarkupString( text );

                tokens.Enqueue( textElement );

            }

            index = match.Index + match.Length;

            tokens.Enqueue( parseTag( match ) );

        }

        if( index < source.Length )
        {
            var text = source.Substring( index );
            var textElement = new dfMarkupString( text );
            tokens.Enqueue( textElement );
        }

        //@Profiler.EndSample();

        return processTokens( tokens );
    }