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)); }
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); }
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)); }
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 ); }