using System;
namespace iTextSharp.text
{
/**
*
* A special-version of LIST
whitch use zapfdingbats-numbers (1..10).
*
* @see com.lowagie.text.List
* @version 2003-06-22
* @author Michael Niedermair
*/
public class ZapfDingbatsNumberList : List {
/**
* which type
*/
protected int type;
/**
* Creates a ZapdDingbatsNumberList
* @param type the type of list
* @param symbolIndent indent
*/
public ZapfDingbatsNumberList(int type) : base(true) {
this.type = type;
float fontsize = symbol.Font.Size;
symbol.Font = FontFactory.GetFont(FontFactory.ZAPFDINGBATS, fontsize, Font.NORMAL);
postSymbol = " ";
}
/**
* Creates a ZapdDingbatsNumberList
* @param type the type of list
* @param symbolIndent indent
*/
public ZapfDingbatsNumberList(int type, int symbolIndent) : base(true, symbolIndent) {
this.type = type;
float fontsize = symbol.Font.Size;
symbol.Font = FontFactory.GetFont(FontFactory.ZAPFDINGBATS, fontsize, Font.NORMAL);
postSymbol = " ";
}
/**
* get the type
*
* @return char-number
*/
public int NumberType {
get {
return type;
}
set {
type = value;
}
}
/**
* Adds an Object
to the List
.
*
* @param o the object to add.
* @return true if adding the object succeeded
*/
public override bool Add(Object o) {
if (o is ListItem) {
ListItem item = (ListItem) o;
Chunk chunk = new Chunk(preSymbol, symbol.Font);
switch (type ) {
case 0:
chunk.Append(((char)(first + list.Count + 171)).ToString());
break;
case 1:
chunk.Append(((char)(first + list.Count + 181)).ToString());
break;
case 2:
chunk.Append(((char)(first + list.Count + 191)).ToString());
break;
default:
chunk.Append(((char)(first + list.Count + 201)).ToString());
break;
}
chunk.Append(postSymbol);
item.ListSymbol = chunk;
item.SetIndentationLeft(symbolIndent, autoindent);
item.IndentationRight = 0;
list.Add(item);
return true;
} else if (o is List) {
List nested = (List) o;
nested.IndentationLeft = nested.IndentationLeft + symbolIndent;
first--;
list.Add(nested);
return true;
} else if (o is String) {
return this.Add(new ListItem((string) o));
}
return false;
}
}
}