private void ExecuteIDrawable(XmlElement element, Collection<IDrawable> drawables)
{
switch(element.Name[0])
{
case 'a':
{
switch(element.Name[1])
{
case 'f':
{
ExecuteDrawableAffine(element, drawables);
return;
}
case 'l':
{
ExecuteDrawableAlpha(element, drawables);
return;
}
case 'r':
{
ExecuteDrawableArc(element, drawables);
return;
}
}
break;
}
case 'b':
{
switch(element.Name[1])
{
case 'e':
{
ExecuteDrawableBezier(element, drawables);
return;
}
case 'o':
{
ExecuteDrawableBorderColor(element, drawables);
return;
}
}
break;
}
case 'c':
{
switch(element.Name[1])
{
case 'i':
{
ExecuteDrawableCircle(element, drawables);
return;
}
case 'l':
{
switch(element.Name[4])
{
case 'P':
{
ExecuteDrawableClipPath(element, drawables);
return;
}
case 'R':
{
ExecuteDrawableClipRule(element, drawables);
return;
}
case 'U':
{
ExecuteDrawableClipUnits(element, drawables);
return;
}
}
break;
}
case 'o':
{
switch(element.Name[2])
{
case 'l':
{
ExecuteDrawableColor(element, drawables);
return;
}
case 'm':
{
ExecuteDrawableComposite(element, drawables);
return;
}
}
break;
}
}
break;
}
case 'd':
{
ExecuteDrawableDensity(element, drawables);
return;
}
case 'e':
{
ExecuteDrawableEllipse(element, drawables);
return;
}
case 'f':
{
switch(element.Name[1])
{
case 'i':
{
switch(element.Name[4])
{
case 'C':
{
ExecuteDrawableFillColor(element, drawables);
return;
}
case 'O':
{
ExecuteDrawableFillOpacity(element, drawables);
return;
}
case 'P':
{
ExecuteDrawableFillPatternUrl(element, drawables);
return;
}
case 'R':
{
ExecuteDrawableFillRule(element, drawables);
return;
}
}
break;
}
case 'o':
{
if (element.Name.Length == 4)
{
ExecuteDrawableFont(element, drawables);
return;
}
if (element.Name.Length == 13)
{
ExecuteDrawableFontPointSize(element, drawables);
return;
}
break;
}
}
break;
}
case 'g':
{
ExecuteDrawableGravity(element, drawables);
return;
}
case 'l':
{
ExecuteDrawableLine(element, drawables);
return;
}
case 'p':
{
switch(element.Name[1])
{
case 'a':
{
ExecuteDrawablePath(element, drawables);
return;
}
case 'o':
{
switch(element.Name[2])
{
case 'i':
{
ExecuteDrawablePoint(element, drawables);
return;
}
case 'l':
{
switch(element.Name[4])
{
case 'g':
{
ExecuteDrawablePolygon(element, drawables);
return;
}
case 'l':
{
ExecuteDrawablePolyline(element, drawables);
return;
}
}
break;
}
}
break;
}
case 'u':
{
switch(element.Name[4])
{
case 'C':
{
ExecuteDrawablePushClipPath(element, drawables);
return;
}
case 'P':
{
ExecuteDrawablePushPattern(element, drawables);
return;
}
}
break;
}
}
break;
}
case 'r':
{
switch(element.Name[1])
{
case 'e':
{
ExecuteDrawableRectangle(element, drawables);
return;
}
case 'o':
{
switch(element.Name[2])
{
case 't':
{
ExecuteDrawableRotation(element, drawables);
return;
}
case 'u':
{
ExecuteDrawableRoundRectangle(element, drawables);
return;
}
}
break;
}
}
break;
}
case 's':
{
switch(element.Name[1])
{
case 'c':
{
ExecuteDrawableScaling(element, drawables);
return;
}
case 'k':
{
switch(element.Name[4])
{
case 'X':
{
ExecuteDrawableSkewX(element, drawables);
return;
}
case 'Y':
{
ExecuteDrawableSkewY(element, drawables);
return;
}
}
break;
}
case 't':
{
switch(element.Name[6])
{
case 'A':
{
ExecuteDrawableStrokeAntialias(element, drawables);
return;
}
case 'C':
{
ExecuteDrawableStrokeColor(element, drawables);
return;
}
case 'D':
{
switch(element.Name[10])
{
case 'A':
{
ExecuteDrawableStrokeDashArray(element, drawables);
return;
}
case 'O':
{
ExecuteDrawableStrokeDashOffset(element, drawables);
return;
}
}
break;
}
case 'L':
{
switch(element.Name[10])
{
case 'C':
{
ExecuteDrawableStrokeLineCap(element, drawables);
return;
}
case 'J':
{
ExecuteDrawableStrokeLineJoin(element, drawables);
return;
}
}
break;
}
case 'M':
{
ExecuteDrawableStrokeMiterLimit(element, drawables);
return;
}
case 'O':
{
ExecuteDrawableStrokeOpacity(element, drawables);
return;
}
case 'P':
{
ExecuteDrawableStrokePatternUrl(element, drawables);
return;
}
case 'W':
{
ExecuteDrawableStrokeWidth(element, drawables);
return;
}
}
break;
}
}
break;
}
case 't':
{
switch(element.Name[1])
{
case 'e':
{
if (element.Name.Length == 4)
{
ExecuteDrawableText(element, drawables);
return;
}
switch(element.Name[4])
{
case 'A':
{
switch(element.Name[5])
{
case 'l':
{
ExecuteDrawableTextAlignment(element, drawables);
return;
}
case 'n':
{
ExecuteDrawableTextAntialias(element, drawables);
return;
}
}
break;
}
case 'D':
{
switch(element.Name[5])
{
case 'e':
{
ExecuteDrawableTextDecoration(element, drawables);
return;
}
case 'i':
{
ExecuteDrawableTextDirection(element, drawables);
return;
}
}
break;
}
case 'E':
{
ExecuteDrawableTextEncoding(element, drawables);
return;
}
case 'I':
{
switch(element.Name[9])
{
case 'l':
{
ExecuteDrawableTextInterlineSpacing(element, drawables);
return;
}
case 'w':
{
ExecuteDrawableTextInterwordSpacing(element, drawables);
return;
}
}
break;
}
case 'K':
{
ExecuteDrawableTextKerning(element, drawables);
return;
}
case 'U':
{
ExecuteDrawableTextUnderColor(element, drawables);
return;
}
}
break;
}
case 'r':
{
ExecuteDrawableTranslation(element, drawables);
return;
}
}
break;
}
case 'v':
{
ExecuteDrawableViewbox(element, drawables);
return;
}
}
throw new NotSupportedException(element.Name);
}
private void ExecuteDrawableAffine(XmlElement element, Collection<IDrawable> drawables)