public override bool SetKerning(int char1, int char2, int kern)
{
String first = GlyphList.UnicodeToName((int)char1);
if (first == null)
return false;
String second = GlyphList.UnicodeToName((int)char2);
if (second == null)
return false;
Object[] obj;
KernPairs.TryGetValue(first, out obj);
if (obj == null) {
obj = new Object[]{second, kern};
KernPairs[first] = obj;
return true;
}
for (int k = 0; k < obj.Length; k += 2) {
if (second.Equals(obj[k])) {
obj[k + 1] = kern;
return true;
}
}
int size = obj.Length;
Object[] obj2 = new Object[size + 2];
Array.Copy(obj, 0, obj2, 0, size);
obj2[size] = second;
obj2[size + 1] = kern;
KernPairs[first] = obj2;
return true;
}