You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
63 lines
1.5 KiB
// name : RtfHtmlElementPath.cs
|
|
// project : RTF Framelet
|
|
// created : Jani Giannoudis - 2008.06.09
|
|
// language : c#
|
|
// environment: .NET 2.0
|
|
// copyright : (c) 2004-2013 by Jani Giannoudis, Switzerland
|
|
|
|
using System.Collections;
|
|
using System.Text;
|
|
using System.Web.UI;
|
|
|
|
namespace Itenso.Rtf.Converter.Html
|
|
{
|
|
public class RtfHtmlElementPath
|
|
{
|
|
// Members
|
|
private readonly Stack _elements = new Stack();
|
|
|
|
public int Count => _elements.Count;
|
|
// Count
|
|
|
|
public HtmlTextWriterTag Current => (HtmlTextWriterTag) _elements.Peek();
|
|
// Current
|
|
|
|
public bool IsCurrent(HtmlTextWriterTag tag)
|
|
{
|
|
return Current == tag;
|
|
} // IsCurrent
|
|
|
|
public bool Contains(HtmlTextWriterTag tag)
|
|
{
|
|
return _elements.Contains(tag);
|
|
} // Contains
|
|
|
|
public void Push(HtmlTextWriterTag tag)
|
|
{
|
|
_elements.Push(tag);
|
|
} // Push
|
|
|
|
public void Pop()
|
|
{
|
|
_elements.Pop();
|
|
} // Pop
|
|
|
|
public override string ToString()
|
|
{
|
|
if (_elements.Count == 0)
|
|
return base.ToString();
|
|
|
|
var sb = new StringBuilder();
|
|
var first = true;
|
|
foreach (var element in _elements)
|
|
{
|
|
if (!first)
|
|
sb.Insert(0, " > ");
|
|
sb.Insert(0, element.ToString());
|
|
first = false;
|
|
}
|
|
|
|
return sb.ToString();
|
|
} // ToString
|
|
}
|
|
} |