svgtopt/SVG/SVGImpl/src/SVGSchemaData.cpp
changeset 0 d46562c3d99d
equal deleted inserted replaced
-1:000000000000 0:d46562c3d99d
       
     1 /*
       
     2 * Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  SVG Implementation source file
       
    15  *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #include "SVGSchemaData.h"
       
    21 
       
    22 //ELEMENT LITERALS
       
    23 _LIT(KPATH, "path");
       
    24 _LIT(KSTOP, "stop");
       
    25 _LIT(KLINEARGRADIENT, "linearGradient");
       
    26 _LIT(KG, "g");
       
    27 _LIT(KRECT, "rect");
       
    28 _LIT(KPOLYGON, "polygon");
       
    29 _LIT(KSVG, "svg");
       
    30 _LIT(KRADIALGRADIENT, "radialGradient");
       
    31 _LIT(KCIRCLE, "circle");
       
    32 _LIT(KLINE, "line");
       
    33 _LIT(KPOLYLINE, "polyline");
       
    34 _LIT(KELLIPSE, "ellipse");
       
    35 _LIT(KDEFS, "defs");
       
    36 _LIT(KFOREIGNOBJECT, "foreignObject");
       
    37 _LIT(KALTGLYPH, "altGlyph");
       
    38 _LIT(KALTGLYPHDEF, "altGlyphDef");
       
    39 _LIT(KDESC, "desc");
       
    40 _LIT(KSCRIPT, "script");
       
    41 _LIT(KSWITCH, "switch");
       
    42 _LIT(KMETADATA, "metadata");
       
    43 _LIT(KTITLE, "title");
       
    44 _LIT(KFONTFACENAME, "font-face-name");
       
    45 _LIT(KFONTFACESRC, "font-face-src");
       
    46 _LIT(KFONTFACEURI, "font-face-uri");
       
    47 _LIT(KGLYPHREF, "glyphRef");
       
    48 _LIT(KVKERN, "vkern");
       
    49 _LIT(KVIEW, "view");
       
    50 _LIT(KHKERN, "hkern");
       
    51 _LIT(KA, "a");
       
    52 _LIT(KFONT, "font");
       
    53 _LIT(KFONTFACE, "font-face");
       
    54 _LIT(KGLYPH, "glyph");
       
    55 _LIT(KIMAGE, "image");
       
    56 _LIT(KMISSINGGLYPH, "missing-glyph");
       
    57 _LIT(KSTYLE, "style");
       
    58 _LIT(KTEXT, "text");
       
    59 _LIT(KUSE, "use");
       
    60 _LIT(KANIMATE, "animate");
       
    61 _LIT(KANIMATECOLOR, "animateColor");
       
    62 _LIT(KANIMATEMOTION, "animateMotion");
       
    63 _LIT(KANIMATETRANSFORM, "animateTransform");
       
    64 _LIT(KSET, "set");
       
    65 _LIT(KMPATH, "mpath");
       
    66 _LIT(KTEXTAREA, "textArea");
       
    67 _LIT(KDISCARD, "discard");
       
    68 _LIT(KSOLIDCOLOR, "solidColor");
       
    69 _LIT(KANIMATION, "animation");
       
    70 _LIT(KAUDIO, "audio");
       
    71 _LIT(KNOTFOUND, "NOT FOUND");
       
    72 
       
    73 //ATTRIBUTE LITERALS
       
    74 _LIT(KFILL, "fill");
       
    75 _LIT(KSOLIDCOLORATT, "solid-color");
       
    76 _LIT(KSTROKE, "stroke");
       
    77 _LIT(KFILLOPACITY, "fill-opacity");
       
    78 _LIT(KSOLIDOPACITY, "solid-opacity");
       
    79 _LIT(KSTROKEOPACITY, "stroke-opacity");
       
    80 _LIT(KOPACITY, "opacity");
       
    81 _LIT(KSTROKEWIDTH, "stroke-width");
       
    82 _LIT(KVISIBILITY, "visibility");
       
    83 _LIT(KFONTFAMILY, "font-family");
       
    84 _LIT(KFONTSIZE, "font-size");
       
    85 _LIT(KFONTSTYLE, "font-style");
       
    86 _LIT(KFONTWEIGHT, "font-weight");
       
    87 _LIT(KSTROKEDASHARRAY, "stroke-dasharray");
       
    88 _LIT(KDISPLAY, "display");
       
    89 _LIT(KFILLRULE, "fill-rule");
       
    90 _LIT(KSTROKELINECAP, "stroke-linecap");
       
    91 _LIT(KSTROKELINEJOIN, "stroke-linejoin");
       
    92 _LIT(KSTROKEDASHOFFSET, "stroke-dashoffset");
       
    93 _LIT(KSTROKEMITERLIMIT, "stroke-miterlimit");
       
    94 _LIT(KCOLOR, "color");
       
    95 _LIT(KTEXTANCHOR, "text-anchor");
       
    96 _LIT(KTEXTDECORATION, "text-decoration");
       
    97 _LIT(KLETTERSPACING, "letter-spacing");
       
    98 _LIT(KWORDSPACING, "word-spacing");
       
    99 _LIT(KCOLORINTERPOLATION, "color-interpolation");
       
   100 _LIT(KCOLORRENDERING, "color-rendering");
       
   101 _LIT(KVOLUME, "volume");
       
   102 _LIT(KAUDIOLEVEL, "audio-level");
       
   103 
       
   104 _LIT(KPAD, "pad");
       
   105 _LIT(KREFLECT, "reflect");
       
   106 _LIT(KREPEAT, "repeat");
       
   107 
       
   108 
       
   109 _LIT(KNORMAL, "normal");
       
   110 _LIT(KITALIC, "italic");
       
   111 _LIT(KOBLIQUE, "oblique");
       
   112 _LIT(KINHERIT, "inherit");
       
   113 
       
   114 _LIT(KBOLD, "bold");
       
   115 _LIT(KBOLDER, "bolder");
       
   116 _LIT(KLIGHTER, "lighter");
       
   117 _LIT(K100, "100");
       
   118 _LIT(K200, "200");
       
   119 _LIT(K300, "300");
       
   120 _LIT(K400, "400");
       
   121 _LIT(K500, "500");
       
   122 _LIT(K600, "600");
       
   123 _LIT(K700, "700");
       
   124 _LIT(K800, "800");
       
   125 _LIT(K900, "900");
       
   126 
       
   127 _LIT(KSTART, "start");
       
   128 _LIT(KMIDDLE, "middle");
       
   129 _LIT(KEND, "end");
       
   130 _LIT(KNONE, "none");
       
   131 _LIT(KUNDERLINE, "underline");
       
   132 _LIT(KOVERLINE, "overline");
       
   133 _LIT(KLINETHROUGH, "line-through");
       
   134 
       
   135 _LIT(KD, "d");
       
   136 _LIT(KOFFSET, "offset");
       
   137 _LIT(KGRADIENTUNITS, "gradientUnits");
       
   138 _LIT(KX1, "x1");
       
   139 _LIT(KY1, "y1");
       
   140 _LIT(KX2, "x2");
       
   141 _LIT(KY2, "y2");
       
   142 _LIT(KWIDTH, "width");
       
   143 _LIT(KHEIGHT, "height");
       
   144 _LIT(KGRADIENTTRANSFORM, "gradientTransform");
       
   145 _LIT(KX, "x");
       
   146 _LIT(KY, "y");
       
   147 _LIT(KPOINTS, "points");
       
   148 _LIT(KVIEWBOX, "viewBox");
       
   149 _LIT(KRX, "rx");
       
   150 _LIT(KRY, "ry");
       
   151 _LIT(KCX, "cx");
       
   152 _LIT(KCY, "cy");
       
   153 _LIT(KR, "r");
       
   154 _LIT(KFX, "fx");
       
   155 _LIT(KFY, "fy");
       
   156 _LIT(KPATHLENGTH, "pathLength");
       
   157 _LIT(KSPREADMETHOD, "spreadMethod");
       
   158 _LIT(KSTOPCOLOR, "stop-color");
       
   159 _LIT(KSTOPOPACITY, "stop-opacity");
       
   160 _LIT(KTEXTLENGTH, "textLength");
       
   161 _LIT(KHORIZADVX, "horiz-adv-x");
       
   162 _LIT(KHORIZORIGINX, "horiz-origin-x");
       
   163 _LIT(KHORIZORIGINY, "horiz-origin-y");
       
   164 _LIT(KASCENT, "ascent");
       
   165 _LIT(KDESCENT, "descent");
       
   166 _LIT(KALPHABETIC, "alphabetic");
       
   167 _LIT(KUNDERLINEPOSITION, "underline-position");
       
   168 _LIT(KUNDERLINETHICKNESS, "underline-thickness");
       
   169 _LIT(KOVERLINEPOSITION, "overline-position");
       
   170 _LIT(KOVERLINETHICKNESS, "overline-thickness");
       
   171 _LIT(KSTRIKETHROUGHPOSITION, "strikethrough-position");
       
   172 _LIT(KSTRIKETHROUGHTHICKNESS, "strikethrough-thickness");
       
   173 _LIT(KUNITSPEREM, "units-per-em");
       
   174 _LIT(KK, "k");
       
   175 _LIT(KG1, "g1");
       
   176 _LIT(KG2, "g2");
       
   177 _LIT(KU1, "u1");
       
   178 _LIT(KU2, "u2");
       
   179 _LIT(KROTATE, "rotate");
       
   180 _LIT(KCDATA, "cdata");
       
   181 _LIT(KUNICODE, "unicode");
       
   182 _LIT(KGLYPHNAME, "glyph-name");
       
   183 _LIT(KLANG, "lang");
       
   184 _LIT(KVERSION, "version");
       
   185 _LIT(KATTRIBUTENAME, "attributeName");
       
   186 _LIT(KTYPE, "type");
       
   187 _LIT(KTRANSFORM, "transform");
       
   188 _LIT(KFROM, "from");
       
   189 _LIT(KTO, "to");
       
   190 _LIT(KBY, "by");
       
   191 _LIT(KVALUES, "values");
       
   192 _LIT(KTARGET, "target");
       
   193 _LIT(KKEYSPLINES, "keySplines");
       
   194 _LIT(KKEYTIMES, "keyTimes");
       
   195 // Runtime Sync Attributes
       
   196 _LIT( KSYNCBEHAVIORDEFAULT, "syncBehaviorDefault" );
       
   197 _LIT( KSYNCTOLERANCEDEFAULT,"syncToleranceDefault" );
       
   198 _LIT( KSYNCBEHAVIOR, "syncBehavior" );
       
   199 _LIT( KSYNCTOLERANCE, "syncTolerance" );
       
   200 _LIT( KSYNCMASTER, "syncMaster" );
       
   201 _LIT( KINITIALVISIBILITY, "initialVisibility" );
       
   202 
       
   203 // ---------------------------------------------------------------------------
       
   204 //
       
   205 // ---------------------------------------------------------------------------
       
   206 void CSvgSchemaData::ConstructL()
       
   207     {
       
   208 
       
   209 
       
   210     }
       
   211 
       
   212 // ---------------------------------------------------------------------------
       
   213 //
       
   214 // ---------------------------------------------------------------------------
       
   215 CSvgSchemaData* CSvgSchemaData::NewL()
       
   216     {
       
   217     CSvgSchemaData* self = new ( ELeave ) CSvgSchemaData();
       
   218     CleanupStack::PushL( self );
       
   219     self->ConstructL();
       
   220     CleanupStack::Pop();
       
   221 
       
   222     return self;
       
   223     }
       
   224 
       
   225 // ---------------------------------------------------------------------------
       
   226 //
       
   227 // ---------------------------------------------------------------------------
       
   228 CSvgSchemaData* CSvgSchemaData::NewLC()
       
   229     {
       
   230     CSvgSchemaData* self = new ( ELeave ) CSvgSchemaData();
       
   231     CleanupStack::PushL( self );
       
   232     self->ConstructL();
       
   233 
       
   234     return self;
       
   235     }
       
   236 
       
   237 // ---------------------------------------------------------------------------
       
   238 //
       
   239 // ---------------------------------------------------------------------------
       
   240 CSvgSchemaData::~CSvgSchemaData()
       
   241     {
       
   242 
       
   243     }
       
   244 
       
   245 
       
   246 // ---------------------------------------------------------------------------
       
   247 //
       
   248 // ---------------------------------------------------------------------------
       
   249 CSvgSchemaData::CSvgSchemaData()
       
   250     {
       
   251     }
       
   252 
       
   253 
       
   254 /********************* Methods to generate SchemaData Literals ******************/
       
   255 
       
   256 // ---------------------------------------------------------------------------
       
   257 //
       
   258 // ---------------------------------------------------------------------------
       
   259 TInt CSvgSchemaData::GetSVGElementId(const TDesC& aElement)
       
   260 {
       
   261 	if (aElement == KPATH )
       
   262     	{
       
   263        	return KSvgPathElement;
       
   264      	}
       
   265     if (aElement == KSTOP )
       
   266         {
       
   267         return KSvgStopElement;
       
   268         }
       
   269     if (aElement == KLINEARGRADIENT )
       
   270         {
       
   271         return KSvgLinearGradientElement;
       
   272         }
       
   273     if (aElement == KG)
       
   274         {
       
   275         return KSvgGElement;
       
   276         }
       
   277     if (aElement == KRECT )
       
   278         {
       
   279         return KSvgRectElement;
       
   280         }
       
   281     if (aElement == KPOLYGON )
       
   282         {
       
   283         return KSvgPolygonElement;
       
   284         }
       
   285     if (aElement == KSVG)
       
   286         {
       
   287         return KSvgSvgElement;
       
   288         }
       
   289     if (aElement == KRADIALGRADIENT )
       
   290         {
       
   291         return KSvgRadialGradientElement;
       
   292         }
       
   293     if (aElement == KCIRCLE )
       
   294         {
       
   295         return KSvgCircleElement;
       
   296         }
       
   297     if (aElement == KLINE )
       
   298         {
       
   299         return KSvgLineElement;
       
   300         }
       
   301     if (aElement == KPOLYLINE )
       
   302         {
       
   303         return KSvgPolylineElement;
       
   304         }
       
   305     if (aElement == KELLIPSE )
       
   306         {
       
   307         return KSvgEllipseElement;
       
   308         }
       
   309     if (aElement == KDEFS)
       
   310         {
       
   311         return KSvgDefsElement;
       
   312         }
       
   313     if (aElement == KFOREIGNOBJECT)
       
   314         {
       
   315         return KSvgForeignObjectElement;
       
   316         }
       
   317     if (aElement == KALTGLYPH)
       
   318         {
       
   319         return KSvgAltglyphElement;
       
   320         }
       
   321     if (aElement == KALTGLYPHDEF )
       
   322         {
       
   323         return KSvgAltglyphdefElement;
       
   324         }
       
   325     if (aElement == KDESC )
       
   326         {
       
   327         return KSvgDescElement;
       
   328         }
       
   329     if (aElement == KSCRIPT )
       
   330         {
       
   331         return KSvgScriptElement ;
       
   332         }
       
   333     if (aElement == KSWITCH )
       
   334         {
       
   335         return KSvgSwitchElement;
       
   336         }
       
   337     if (aElement == KMETADATA)
       
   338         {
       
   339         return KSvgMetadataElement;
       
   340         }
       
   341     if (aElement == KTITLE)
       
   342         {
       
   343         return KSvgTitleElement;
       
   344         }
       
   345     if (aElement == KFONTFACENAME)
       
   346         {
       
   347         return KSvgFontfacenameElement;
       
   348         }
       
   349     if (aElement == KFONTFACESRC)
       
   350         {
       
   351         return KSvgFontfacesrcElement;
       
   352         }
       
   353     if (aElement == KFONTFACEURI)
       
   354         {
       
   355         return KSvgFontfaceuriElement;
       
   356         }
       
   357     if (aElement == KGLYPHREF)
       
   358         {
       
   359         return KSvgGlyphrefElement;
       
   360         }
       
   361     if (aElement == KVKERN)
       
   362         {
       
   363         return KSvgVkernElement;
       
   364         }
       
   365     if (aElement == KVIEW )
       
   366         {
       
   367         return KSvgViewElement;
       
   368         }
       
   369     if (aElement == KHKERN )
       
   370         {
       
   371         return KSvgHkernElement;
       
   372         }
       
   373     if (aElement == KA )
       
   374         {
       
   375         return KSvgAElement;
       
   376         }
       
   377     if (aElement == KFONT )
       
   378         {
       
   379         return KSvgFontElement;
       
   380         }
       
   381     if (aElement == KFONTFACE )
       
   382         {
       
   383         return KSvgFontfaceElement;
       
   384         }
       
   385     if (aElement == KGLYPH )
       
   386         {
       
   387         return KSvgGlyphElement;
       
   388         }
       
   389     if (aElement == KIMAGE )
       
   390         {
       
   391         return KSvgImageElement;
       
   392         }
       
   393     if (aElement == KMISSINGGLYPH )
       
   394         {
       
   395         return KSvgMissingglyphElement;
       
   396         }
       
   397     if (aElement == KSTYLE )
       
   398         {
       
   399         return KSvgStyleElement;
       
   400         }
       
   401     if (aElement == KTEXT )
       
   402         {
       
   403         return KSvgTextElement;
       
   404         }
       
   405     if (aElement == KUSE )
       
   406         {
       
   407         return KSvgUseElement;
       
   408         }
       
   409     if (aElement == KANIMATE )
       
   410         {
       
   411         return KSvgAnimateElement;
       
   412         }
       
   413     if (aElement == KANIMATECOLOR )
       
   414         {
       
   415         return KSvgAnimateColorElement;
       
   416         }
       
   417     if (aElement == KANIMATEMOTION )
       
   418         {
       
   419         return KSvgAnimateMotionElement;
       
   420         }
       
   421     if (aElement == KANIMATETRANSFORM )
       
   422         {
       
   423         return KSvgAnimateTransformElement;
       
   424         }
       
   425     if (aElement == KSET )
       
   426         {
       
   427         return KSvgSetElement;
       
   428         }
       
   429     if (aElement == KMPATH )
       
   430         {
       
   431         return KSvgMpathElement;
       
   432         }
       
   433     if (aElement == KTEXTAREA )
       
   434         {
       
   435         return KSvgTextAreaElement;
       
   436         }
       
   437     if (aElement == KDISCARD )
       
   438         {
       
   439         return KSvgDiscardElement;
       
   440         }
       
   441      if (aElement == KSOLIDCOLOR )
       
   442         {
       
   443         return KSvgSolidColorElement;
       
   444         }
       
   445    /* if (aElement == KANIMATION )
       
   446         {
       
   447         return KSvgAnimationElement;
       
   448         }
       
   449         */
       
   450     if (aElement == KAUDIO )
       
   451         {
       
   452         return KSvgAudioElement;
       
   453         }
       
   454 //#ifdef RD_SVGT_MEDIAANIMATION_SUPPORT
       
   455     if (aElement == KANIMATION )
       
   456         {
       
   457         return KSvgMediaAnimationElement;
       
   458         }
       
   459 //#endif
       
   460     else
       
   461         {
       
   462         return KErrNotFound;
       
   463         }
       
   464 
       
   465 }
       
   466 
       
   467 
       
   468 // ---------------------------------------------------------------------------
       
   469 //
       
   470 // ---------------------------------------------------------------------------
       
   471 TInt CSvgSchemaData::GetPresentationAttributeId(const TDesC& aElement)
       
   472 {
       
   473     if ( (aElement == KFILL ) || (aElement == KSOLIDCOLORATT ) )
       
   474         {
       
   475         return KCSS_ATTR_FILL;
       
   476         }
       
   477     if (aElement == KSTROKE )
       
   478         {
       
   479         return KCSS_ATTR_STROKE;
       
   480         }
       
   481     if ( (aElement == KFILLOPACITY) || (aElement == KSOLIDOPACITY) )
       
   482         {
       
   483         return KCSS_ATTR_FILL_OPACITY;
       
   484         }
       
   485     if (aElement == KSTROKEOPACITY )
       
   486         {
       
   487         return KCSS_ATTR_STROKE_OPACITY;
       
   488         }
       
   489     if (aElement == KOPACITY )
       
   490         {
       
   491         return KCSS_ATTR_GROUP_OPACITY;
       
   492         }
       
   493     if (aElement == KSTROKEWIDTH )
       
   494         {
       
   495         return KCSS_ATTR_STROKEWIDTH;
       
   496         }
       
   497     if (aElement == KVISIBILITY )
       
   498         {
       
   499         return KCSS_ATTR_VISIBILITY;
       
   500         }
       
   501     if (aElement == KFONTFAMILY )
       
   502         {
       
   503         return KCSS_ATTR_FONTFAMILY;
       
   504         }
       
   505     if (aElement == KFONTSIZE )
       
   506         {
       
   507         return KCSS_ATTR_FONTSIZE;
       
   508         }
       
   509     if (aElement == KFONTSTYLE )
       
   510         {
       
   511         return KCSS_ATTR_FONTSTYLE;
       
   512         }
       
   513     if (aElement == KFONTWEIGHT )
       
   514         {
       
   515         return KCSS_ATTR_FONTWEIGHT;
       
   516         }
       
   517     if (aElement == KSTROKEDASHARRAY )
       
   518         {
       
   519         return KCSS_ATTR_STROKE_DASHARRAY;
       
   520         }
       
   521     if (aElement == KDISPLAY )
       
   522         {
       
   523         return KCSS_ATTR_DISPLAY;
       
   524         }
       
   525     if (aElement == KFILLRULE )
       
   526         {
       
   527         return KCSS_ATTR_FILLRULE;
       
   528         }
       
   529     if (aElement == KSTROKELINECAP )
       
   530         {
       
   531         return KCSS_ATTR_STROKE_LINECAP;
       
   532         }
       
   533     if (aElement == KSTROKELINEJOIN )
       
   534         {
       
   535         return KCSS_ATTR_STROKE_LINEJOIN;
       
   536         }
       
   537     if (aElement == KSTROKEDASHOFFSET )
       
   538         {
       
   539         return KCSS_ATTR_STROKE_DASHOFFSET;
       
   540         }
       
   541     if (aElement == KSTROKEMITERLIMIT )
       
   542         {
       
   543         return KCSS_ATTR_STROKE_MITERLIMIT;
       
   544         }
       
   545     if (aElement == KCOLOR )
       
   546         {
       
   547         return KCSS_ATTR_COLOR;
       
   548         }
       
   549     if (aElement == KTEXTANCHOR )
       
   550         {
       
   551         return KCSS_ATTR_TEXTANCHOR;
       
   552         }
       
   553     if (aElement == KTEXTDECORATION )
       
   554         {
       
   555         return KCSS_ATTR_TEXTDECORATION;
       
   556         }
       
   557     if (aElement == KLETTERSPACING )
       
   558         {
       
   559         return KCSS_ATTR_LETTERSPACING;
       
   560         }
       
   561     if (aElement == KWORDSPACING )
       
   562         {
       
   563         return KCSS_ATTR_WORDSPACING;
       
   564         }
       
   565     if (aElement == KCOLORINTERPOLATION )
       
   566         {
       
   567         return KCSS_ATTR_COLORINTERPOLATION;
       
   568         }
       
   569     if (aElement == KCOLORRENDERING )
       
   570         {
       
   571         return KCSS_ATTR_COLORRENDERING;
       
   572         }
       
   573     else
       
   574         {
       
   575         return KErrNotFound;
       
   576         }
       
   577 
       
   578 }
       
   579 
       
   580 TInt CSvgSchemaData::FindSpreadMethod(const TDesC& aElement)
       
   581 {
       
   582     if(aElement == KPAD )
       
   583         {
       
   584         return 0;
       
   585         }
       
   586     if(aElement == KREFLECT )
       
   587         {
       
   588         return 1;
       
   589         }
       
   590     if(aElement == KREPEAT )
       
   591         {
       
   592         return 2;
       
   593         }
       
   594     else
       
   595         {
       
   596         return KErrNotFound;
       
   597         }
       
   598 }
       
   599 
       
   600 
       
   601 // ---------------------------------------------------------------------------
       
   602 //
       
   603 // ---------------------------------------------------------------------------
       
   604 TInt CSvgSchemaData::FindFontStyle(const TDesC& aElement)
       
   605 {
       
   606     if(aElement == KNORMAL )
       
   607         {
       
   608         return 0;
       
   609         }
       
   610     if(aElement == KITALIC )
       
   611         {
       
   612         return 1;
       
   613         }
       
   614     if(aElement == KOBLIQUE )
       
   615         {
       
   616         return 2;
       
   617         }
       
   618     if(aElement == KINHERIT )
       
   619         {
       
   620         return 3;
       
   621         }
       
   622     else
       
   623         {
       
   624         return KErrNotFound;
       
   625         }
       
   626 }
       
   627 
       
   628 
       
   629 // ---------------------------------------------------------------------------
       
   630 //
       
   631 // ---------------------------------------------------------------------------
       
   632 TInt CSvgSchemaData::FindFontWeightEnum(const TDesC& aElement)
       
   633 {
       
   634     if(aElement == KNORMAL )
       
   635         {
       
   636         return 0;
       
   637         }
       
   638     if (aElement == KBOLD )
       
   639         {
       
   640         return 1;
       
   641         }
       
   642     if (aElement == KBOLDER )
       
   643         {
       
   644         return 2;
       
   645         }
       
   646     if (aElement == KLIGHTER )
       
   647         {
       
   648         return 3;
       
   649         }
       
   650     if (aElement == K100 )
       
   651         {
       
   652         return 4;
       
   653         }
       
   654     if (aElement == K200 )
       
   655         {
       
   656         return 5;
       
   657         }
       
   658     if (aElement == K300 )
       
   659         {
       
   660         return 6;
       
   661         }
       
   662     if (aElement == K400 )
       
   663         {
       
   664         return 7;
       
   665         }
       
   666     if (aElement == K500 )
       
   667         {
       
   668         return 8;
       
   669         }
       
   670     if (aElement == K600 )
       
   671         {
       
   672         return 9;
       
   673         }
       
   674     if (aElement == K700 )
       
   675         {
       
   676         return 10;
       
   677         }
       
   678     if (aElement == K800 )
       
   679         {
       
   680         return 11;
       
   681         }
       
   682     if (aElement == K900 )
       
   683         {
       
   684         return  12;
       
   685         }
       
   686     if (aElement == KINHERIT )
       
   687         {
       
   688         return 13;
       
   689         }
       
   690     else
       
   691         {
       
   692         return KErrNotFound;
       
   693         }
       
   694 }
       
   695 
       
   696 
       
   697 // ---------------------------------------------------------------------------
       
   698 //
       
   699 // ---------------------------------------------------------------------------
       
   700 TInt CSvgSchemaData::FindTextAnchorEnum(const TDesC& aElement)
       
   701 {
       
   702     if(aElement == KSTART )
       
   703         {
       
   704         return 0;
       
   705         }
       
   706     if (aElement == KMIDDLE )
       
   707         {
       
   708         return 1;
       
   709         }
       
   710     if (aElement == KEND )
       
   711         {
       
   712         return 2;
       
   713         }
       
   714     else
       
   715         {
       
   716         return -1;
       
   717         }
       
   718 
       
   719 }
       
   720 
       
   721 
       
   722 
       
   723 // ---------------------------------------------------------------------------
       
   724 //
       
   725 // ---------------------------------------------------------------------------
       
   726 TInt CSvgSchemaData::FindTextDecorationEnum(const TDesC& aElement)
       
   727 {
       
   728     if (aElement == KNONE )
       
   729         {
       
   730         return 0;
       
   731         }
       
   732     if (aElement == KUNDERLINE )
       
   733         {
       
   734         return 1;
       
   735         }
       
   736     if (aElement == KOVERLINE )
       
   737         {
       
   738         return 2;
       
   739         }
       
   740     if (aElement == KLINETHROUGH )
       
   741         {
       
   742         return 3;
       
   743         }
       
   744 
       
   745     //Inherit & Blink is not supported currently
       
   746     else
       
   747         {
       
   748         return -1;
       
   749         }
       
   750 
       
   751 }
       
   752 
       
   753 TUint16 CSvgSchemaData::GetSVGTAttributeId(const TDesC& aAttrName)
       
   754 {
       
   755     if( aAttrName == KD )
       
   756         {
       
   757         return KAtrD;
       
   758         }
       
   759     if(aAttrName == KOFFSET )
       
   760         {
       
   761          return KAtrOffset;
       
   762         }
       
   763     if( aAttrName == KSTYLE )
       
   764         {
       
   765         return KAtrStyle;
       
   766         }
       
   767     if(aAttrName == KGRADIENTUNITS )
       
   768         {
       
   769         return KAtrGradientUnits;
       
   770         }
       
   771     if( aAttrName == KX1 )
       
   772         {
       
   773         return KAtrX1;
       
   774         }
       
   775     if( aAttrName == KY1 )
       
   776         {
       
   777         return KAtrY1;
       
   778         }
       
   779     if( aAttrName == KX2 )
       
   780         {
       
   781         return KAtrX2;
       
   782         }
       
   783     if( aAttrName == KY2 )
       
   784         {
       
   785         return KAtrY2;
       
   786         }
       
   787     if( aAttrName == KWIDTH )
       
   788         {
       
   789         return KAtrWidth;
       
   790         }
       
   791     if( aAttrName == KHEIGHT )
       
   792         {
       
   793         return KAtrHeight;
       
   794         }
       
   795     if( aAttrName == KGRADIENTTRANSFORM )
       
   796         {
       
   797         return KAtrGradientTransform;
       
   798         }
       
   799     if( aAttrName == KX )
       
   800         {
       
   801         return KAtrX;
       
   802         }
       
   803     if( aAttrName == KY )
       
   804         {
       
   805         return KAtrY;
       
   806         }
       
   807     if( aAttrName == KPOINTS )
       
   808         {
       
   809         return KAtrPoints;
       
   810         }
       
   811 	if (aAttrName == KVIEWBOX )
       
   812         {
       
   813         return KAtrViewBox;
       
   814         }
       
   815     if( aAttrName == KRX )
       
   816         {
       
   817         return KAtrRx;
       
   818         }
       
   819     if( aAttrName == KRY )
       
   820         {
       
   821         return KAtrRy;
       
   822         }
       
   823     if( aAttrName == KCX )
       
   824         {
       
   825         return KAtrCx;
       
   826         }
       
   827     if( aAttrName == KCY )
       
   828         {
       
   829         return KAtrCy;
       
   830         }
       
   831     if( aAttrName == KR )
       
   832         {
       
   833         return KAtrR;
       
   834         }
       
   835     if(aAttrName == KFX )
       
   836         {
       
   837         return KAtrFx;
       
   838         }
       
   839     if(aAttrName == KFY )
       
   840         {
       
   841         return KAtrFy;
       
   842         }
       
   843     if( aAttrName == KPATHLENGTH )
       
   844         {
       
   845         return KAtrPathLength;
       
   846         }
       
   847     if( aAttrName == KSTROKEWIDTH )
       
   848         {
       
   849         return KAtrStrokeWidth;
       
   850         }
       
   851     if(aAttrName == KSPREADMETHOD )
       
   852         {
       
   853         return KAtrSpreadMethods;
       
   854         }
       
   855     if(aAttrName == KSTOPCOLOR )
       
   856         {
       
   857         return KAtrStopColor;
       
   858         }
       
   859     if(aAttrName == KSTOPOPACITY )
       
   860         {
       
   861         return KAtrStopOpacity;
       
   862         }
       
   863     if( aAttrName == KTEXTLENGTH )
       
   864         {
       
   865         return KAtrTextLength;
       
   866         }
       
   867     if( aAttrName == KHORIZADVX )
       
   868         {
       
   869         return KAtrHorizAdvX;
       
   870         }
       
   871     if( aAttrName == KHORIZORIGINX )
       
   872         {
       
   873         return KAtrHorizOriginX;
       
   874         }
       
   875     if( aAttrName == KHORIZORIGINY )
       
   876         {
       
   877         return KAtrHorizOriginY;
       
   878         }
       
   879     if( aAttrName == KASCENT )
       
   880         {
       
   881         return KAtrAscent;
       
   882         }
       
   883     if( aAttrName == KDESCENT )
       
   884         {
       
   885         return KAtrDescent;
       
   886         }
       
   887     if( aAttrName == KALPHABETIC )
       
   888         {
       
   889         return KAtrAlphabetic;
       
   890         }
       
   891     if( aAttrName == KUNDERLINEPOSITION )
       
   892         {
       
   893         return KAtrUnderlinePosition;
       
   894         }
       
   895     if( aAttrName == KUNDERLINETHICKNESS )
       
   896         {
       
   897         return KAtrUnderlineThickness;
       
   898         }
       
   899     if( aAttrName == KOVERLINEPOSITION )
       
   900         {
       
   901         return KAtrOverlinePosition;
       
   902         }
       
   903     if( aAttrName == KOVERLINETHICKNESS )
       
   904         {
       
   905         return KAtrOverlineThickness;
       
   906         }
       
   907     if( aAttrName == KSTRIKETHROUGHPOSITION )
       
   908         {
       
   909         return KAtrStrikethroughPosition;
       
   910         }
       
   911     if( aAttrName == KSTRIKETHROUGHTHICKNESS )
       
   912         {
       
   913         return KAtrStrikethroughThickness;
       
   914         }
       
   915     if( aAttrName == KUNITSPEREM )
       
   916         {
       
   917         return KAtrUnitsPerEm;
       
   918         }
       
   919     if( aAttrName == KWORDSPACING )
       
   920         {
       
   921         return KAtrWordSpacing;
       
   922         }
       
   923     if( aAttrName == KLETTERSPACING )
       
   924         {
       
   925         return KAtrLetterSpacing;
       
   926         }
       
   927     if( aAttrName == KK )
       
   928         {
       
   929         return KAtrK;
       
   930         }
       
   931     if( aAttrName == KG1 )
       
   932         {
       
   933         return KAtrG1;
       
   934         }
       
   935     if( aAttrName == KG2 )
       
   936         {
       
   937         return KAtrG2;
       
   938         }
       
   939     if( aAttrName == KU1 )
       
   940         {
       
   941         return KAtrU1;
       
   942         }
       
   943     if( aAttrName == KU2 )
       
   944         {
       
   945         return KAtrU2;
       
   946         }
       
   947     if( aAttrName == KTEXTDECORATION )
       
   948         {
       
   949         return KAtrTextDecoration;
       
   950         }
       
   951     if( aAttrName == KROTATE )
       
   952         {
       
   953         return KAtrRotate;
       
   954         }
       
   955     if( aAttrName == KCDATA )
       
   956         {
       
   957         return KAtrCdata;
       
   958         }
       
   959     if( aAttrName == KUNICODE )
       
   960         {
       
   961         return KAtrUnicode;
       
   962         }
       
   963     if( aAttrName == KGLYPHNAME )
       
   964         {
       
   965         return KAtrGlyphName;
       
   966         }
       
   967     if( aAttrName == KLANG )
       
   968         {
       
   969         return KAtrLang;
       
   970         }
       
   971     if( aAttrName == KVERSION )
       
   972         {
       
   973         return KAtrVersion;
       
   974         }
       
   975     if( aAttrName == KATTRIBUTENAME )
       
   976         {
       
   977         return KAtrAttributeName;
       
   978         }
       
   979     if( aAttrName == KTYPE )
       
   980         {
       
   981         return KAtrType;
       
   982         }
       
   983     if( aAttrName == KTRANSFORM )
       
   984         {
       
   985         return KAtrTransform;
       
   986         }
       
   987     if( aAttrName == KFROM )
       
   988         {
       
   989         return KAtrFrom;
       
   990         }
       
   991     if( aAttrName == KTO )
       
   992         {
       
   993         return KAtrTo;
       
   994         }
       
   995     if( aAttrName == KBY )
       
   996         {
       
   997         return KAtrBy;
       
   998         }
       
   999     if (aAttrName == KVALUES )
       
  1000         {
       
  1001         return KAtrValues;
       
  1002         }
       
  1003     if (aAttrName == KKEYSPLINES)
       
  1004         {
       
  1005     	return KAtrKeySplines;
       
  1006         }
       
  1007     if (aAttrName == KKEYTIMES)
       
  1008        {
       
  1009        return KAtrKeyTimes;	
       
  1010        }
       
  1011 	if (aAttrName == KTARGET )
       
  1012 	    {
       
  1013 		return KAtrTarget;
       
  1014 	    }
       
  1015 	if (aAttrName == KSOLIDOPACITY )
       
  1016 	    {
       
  1017 		return KAtrSolidOpacity;
       
  1018 	    }
       
  1019     if ( aAttrName == KSYNCBEHAVIORDEFAULT )
       
  1020         {
       
  1021         return KAtrSyncBehaviorDefault;
       
  1022         }
       
  1023     if ( aAttrName == KSYNCTOLERANCEDEFAULT )    
       
  1024         {
       
  1025         return KAtrSyncToleranceDefault;
       
  1026         }
       
  1027     if ( aAttrName == KSYNCBEHAVIOR )
       
  1028         {
       
  1029         return KAtrSyncBehavior;
       
  1030         }
       
  1031     if ( aAttrName == KSYNCTOLERANCE )
       
  1032         {
       
  1033         return KAtrSyncTolerance;
       
  1034         }        
       
  1035     if ( aAttrName == KSYNCMASTER )
       
  1036         {
       
  1037         return KAtrSyncMaster;
       
  1038         }
       
  1039     if ( aAttrName == KINITIALVISIBILITY )
       
  1040         {
       
  1041         return KAtrInitialVisibility;
       
  1042         }    
       
  1043     if ( aAttrName == KVOLUME )
       
  1044         {
       
  1045         return KAtrVolume;
       
  1046         } 
       
  1047     if ( aAttrName == KAUDIOLEVEL )
       
  1048         {
       
  1049         return KAtrAudioLevel;
       
  1050         }    
       
  1051     else
       
  1052         {
       
  1053         return (TUint16)KErrNotFound;
       
  1054         }
       
  1055 }
       
  1056 
       
  1057 
       
  1058 
       
  1059 
       
  1060 // ---------------------------------------------------------------------------
       
  1061 //
       
  1062 // ---------------------------------------------------------------------------
       
  1063 
       
  1064 void CSvgSchemaData::GetSVGElementName(const TUint8 aElement, TDes& aElemName)
       
  1065 {
       
  1066     if (aElement == KSvgPathElement )
       
  1067         {
       
  1068         aElemName.Copy( KPATH );
       
  1069         return ;
       
  1070 
       
  1071         }
       
  1072     if (aElement == KSvgStopElement )
       
  1073         {
       
  1074         aElemName.Copy( KSTOP );
       
  1075         return ;
       
  1076 
       
  1077         }
       
  1078     if (aElement == KSvgLinearGradientElement )
       
  1079         {
       
  1080         aElemName.Copy( KLINEARGRADIENT );
       
  1081         return ;
       
  1082 
       
  1083         }
       
  1084     if (aElement == KSvgGElement)
       
  1085         {
       
  1086         aElemName.Copy( KG );
       
  1087         return ;
       
  1088 
       
  1089         }
       
  1090     if (aElement == KSvgRectElement )
       
  1091         {
       
  1092         aElemName.Copy( KRECT );
       
  1093         return ;
       
  1094 
       
  1095         }
       
  1096     if (aElement == KSvgPolygonElement)
       
  1097         {
       
  1098         aElemName.Copy( KPOLYGON );
       
  1099         return ;
       
  1100 
       
  1101         }
       
  1102     if (aElement == KSvgSvgElement)
       
  1103         {
       
  1104         aElemName.Copy( KSVG );
       
  1105         return ;
       
  1106         }
       
  1107     if (aElement == KSvgRadialGradientElement )
       
  1108         {
       
  1109         aElemName.Copy( KRADIALGRADIENT );
       
  1110         return ;
       
  1111 
       
  1112         }
       
  1113     if (aElement == KSvgCircleElement )
       
  1114         {
       
  1115         aElemName.Copy( KCIRCLE );
       
  1116         return ;
       
  1117 
       
  1118         }
       
  1119     if (aElement == KSvgLineElement )
       
  1120         {
       
  1121         aElemName.Copy( KLINE );
       
  1122         return ;
       
  1123 
       
  1124         }
       
  1125     if (aElement == KSvgPolylineElement )
       
  1126         {
       
  1127         aElemName.Copy( KPOLYLINE );
       
  1128         return ;
       
  1129 
       
  1130         }
       
  1131     if (aElement == KSvgEllipseElement )
       
  1132         {
       
  1133         aElemName.Copy( KELLIPSE );
       
  1134         return ;
       
  1135 
       
  1136         }
       
  1137     if (aElement == KSvgDefsElement)
       
  1138         {
       
  1139         aElemName.Copy( KDEFS );
       
  1140         return ;
       
  1141 
       
  1142         }
       
  1143     if (aElement == KSvgForeignObjectElement)
       
  1144         {
       
  1145         aElemName.Copy( KFOREIGNOBJECT );
       
  1146         return ;
       
  1147 
       
  1148         }
       
  1149     if (aElement == KSvgScriptElement)
       
  1150         {
       
  1151         aElemName.Copy( KSCRIPT );
       
  1152         return ;
       
  1153 
       
  1154         }
       
  1155     if (aElement == KSvgSwitchElement )
       
  1156         {
       
  1157         aElemName.Copy( KSWITCH );
       
  1158         return ;
       
  1159 
       
  1160         }
       
  1161     if (aElement == KSvgDescElement)
       
  1162         {
       
  1163         aElemName.Copy( KDESC );
       
  1164         return ;
       
  1165 
       
  1166         }
       
  1167     if (aElement == KSvgAltglyphElement)
       
  1168         {
       
  1169         aElemName.Copy( KALTGLYPH );
       
  1170         return ;
       
  1171 
       
  1172         }
       
  1173     if (aElement == KSvgAltglyphdefElement)
       
  1174         {
       
  1175         aElemName.Copy( KALTGLYPHDEF );
       
  1176         return ;
       
  1177 
       
  1178         }
       
  1179     if (aElement == KSvgMetadataElement)
       
  1180         {
       
  1181         aElemName.Copy( KMETADATA );
       
  1182         return ;
       
  1183 
       
  1184         }
       
  1185     if (aElement == KSvgTitleElement)
       
  1186         {
       
  1187         aElemName.Copy( KTITLE );
       
  1188         return ;
       
  1189 
       
  1190         }
       
  1191     if (aElement == KSvgFontfacenameElement)
       
  1192         {
       
  1193         aElemName.Copy( KFONTFACENAME );
       
  1194         return ;
       
  1195 
       
  1196         }
       
  1197     if (aElement == KSvgFontfacesrcElement)
       
  1198         {
       
  1199         aElemName.Copy( KFONTFACESRC );
       
  1200         return ;
       
  1201         }
       
  1202     if (aElement == KSvgFontfaceuriElement)
       
  1203         {
       
  1204         aElemName.Copy( KFONTFACEURI );
       
  1205         return ;
       
  1206 
       
  1207         }
       
  1208     if (aElement == KSvgGlyphrefElement)
       
  1209         {
       
  1210         aElemName.Copy( KGLYPHREF );
       
  1211         return ;
       
  1212 
       
  1213         }
       
  1214     if (aElement == KSvgVkernElement)
       
  1215         {
       
  1216         aElemName.Copy( KVKERN );
       
  1217         return ;
       
  1218 
       
  1219         }
       
  1220     if (aElement == KSvgViewElement)
       
  1221         {
       
  1222         aElemName.Copy( KVIEW );
       
  1223         return ;
       
  1224 
       
  1225         }
       
  1226     if (aElement == KSvgHkernElement )
       
  1227         {
       
  1228         aElemName.Copy( KHKERN );
       
  1229         return ;
       
  1230 
       
  1231         }
       
  1232     if (aElement == KSvgAElement )
       
  1233         {
       
  1234         aElemName.Copy( KA );
       
  1235         return ;
       
  1236 
       
  1237         }
       
  1238     if (aElement == KSvgFontElement)
       
  1239         {
       
  1240         aElemName.Copy( KFONT );
       
  1241         return ;
       
  1242 
       
  1243         }
       
  1244     if (aElement == KSvgFontfaceElement)
       
  1245         {
       
  1246         aElemName.Copy( KFONTFACE );
       
  1247         return ;
       
  1248 
       
  1249         }
       
  1250     if (aElement == KSvgGlyphElement)
       
  1251         {
       
  1252         aElemName.Copy( KGLYPH );
       
  1253         return ;
       
  1254 
       
  1255         }
       
  1256     if (aElement == KSvgImageElement )
       
  1257         {
       
  1258         aElemName.Copy( KIMAGE );
       
  1259         return ;
       
  1260 
       
  1261         }
       
  1262     if (aElement == KSvgMissingglyphElement )
       
  1263         {
       
  1264         aElemName.Copy( KMISSINGGLYPH );
       
  1265         return ;
       
  1266 
       
  1267         }
       
  1268     if (aElement == KSvgStyleElement)
       
  1269         {
       
  1270         aElemName.Copy( KSTYLE );
       
  1271         return ;
       
  1272 
       
  1273         }
       
  1274     if (aElement == KSvgTextElement)
       
  1275         {
       
  1276         aElemName.Copy( KTEXT );
       
  1277         return ;
       
  1278 
       
  1279         }
       
  1280     if (aElement == KSvgUseElement)
       
  1281         {
       
  1282         aElemName.Copy( KUSE );
       
  1283         return ;
       
  1284 
       
  1285         }
       
  1286     if (aElement == KSvgAnimateElement )
       
  1287         {
       
  1288         aElemName.Copy( KANIMATE );
       
  1289         return ;
       
  1290 
       
  1291         }
       
  1292     if (aElement == KSvgAnimateColorElement )
       
  1293         {
       
  1294         aElemName.Copy( KANIMATECOLOR );
       
  1295         return ;
       
  1296 
       
  1297         }
       
  1298     if (aElement == KSvgAnimateMotionElement )
       
  1299         {
       
  1300         aElemName.Copy( KANIMATEMOTION );
       
  1301         return ;
       
  1302 
       
  1303         }
       
  1304     if (aElement == KSvgAnimateTransformElement )
       
  1305         {
       
  1306         aElemName.Copy( KANIMATETRANSFORM );
       
  1307         return ;
       
  1308 
       
  1309         }
       
  1310     if (aElement == KSvgSetElement )
       
  1311         {
       
  1312         aElemName.Copy( KSET );
       
  1313         return ;
       
  1314 
       
  1315         }
       
  1316     if (aElement == KSvgMpathElement )
       
  1317         {
       
  1318         aElemName.Copy( KMPATH );
       
  1319         return ;
       
  1320 
       
  1321         }
       
  1322    if (aElement == KSvgTextAreaElement )
       
  1323         {
       
  1324         aElemName.Copy( KTEXTAREA );
       
  1325         return ;
       
  1326 
       
  1327         }
       
  1328     if (aElement == KSvgDiscardElement )
       
  1329         {
       
  1330         aElemName.Copy( KDISCARD );
       
  1331         return ;
       
  1332         }
       
  1333 /*    if (aElement == KSvgAnimationElement )
       
  1334         {
       
  1335         aElemName.Copy( KANIMATION );
       
  1336         return ;
       
  1337         }*/
       
  1338      if (aElement == KSvgSolidColorElement )
       
  1339         {
       
  1340         aElemName.Copy( KSOLIDCOLOR );
       
  1341         return ;
       
  1342         }
       
  1343      if (aElement == KSvgAudioElement )
       
  1344         {
       
  1345         aElemName.Copy( KAUDIO );
       
  1346         return ;
       
  1347         }
       
  1348     else
       
  1349         {
       
  1350         aElemName.Copy( KNOTFOUND );
       
  1351         return ;
       
  1352 
       
  1353         }
       
  1354 }
       
  1355 
       
  1356 TAttributeType CSvgSchemaData::GetAttributeType(const TDesC& aAttrName)
       
  1357     {
       
  1358     if(aAttrName == KFILL )
       
  1359         {
       
  1360         return EString;
       
  1361         }
       
  1362     if( aAttrName == KD )
       
  1363         {
       
  1364         return EString;
       
  1365         }
       
  1366     if(aAttrName == KOFFSET )
       
  1367         {
       
  1368          return EFloat;
       
  1369         }
       
  1370     if( aAttrName == KSTYLE )
       
  1371         {
       
  1372         return EUndefinedType;
       
  1373         }
       
  1374     if(aAttrName == KGRADIENTUNITS )
       
  1375         {
       
  1376         return EUndefinedType;
       
  1377         }
       
  1378     if( aAttrName == KX1 )
       
  1379         {
       
  1380         return EFloat;
       
  1381         }
       
  1382     if( aAttrName == KY1 )
       
  1383         {
       
  1384         return EFloat;
       
  1385         }
       
  1386     if( aAttrName == KX2 )
       
  1387         {
       
  1388         return EFloat;
       
  1389         }
       
  1390     if( aAttrName == KY2 )
       
  1391         {
       
  1392         return EFloat;
       
  1393         }
       
  1394     if( aAttrName == KWIDTH )
       
  1395         {
       
  1396         return EFloat;
       
  1397         }
       
  1398     if( aAttrName == KHEIGHT )
       
  1399         {
       
  1400         return EFloat;
       
  1401         }
       
  1402     if(aAttrName == KFILLOPACITY )
       
  1403         {
       
  1404         return EFloat;
       
  1405         }
       
  1406     if( aAttrName == KGRADIENTTRANSFORM )
       
  1407         {
       
  1408         return EString;
       
  1409         }
       
  1410     if( aAttrName == KX )
       
  1411         {
       
  1412         return EFloat;
       
  1413         }
       
  1414     if( aAttrName == KY )
       
  1415         {
       
  1416         return EFloat;
       
  1417         }
       
  1418     if( aAttrName == KPOINTS )
       
  1419         {
       
  1420         return EString;
       
  1421         }
       
  1422     if (aAttrName == KVIEWBOX )
       
  1423         {
       
  1424         return EString;
       
  1425         }
       
  1426     if( aAttrName == KRX )
       
  1427         {
       
  1428         return EFloat;
       
  1429         }
       
  1430     if( aAttrName == KRY )
       
  1431         {
       
  1432         return EFloat;
       
  1433         }
       
  1434     if( aAttrName == KCX )
       
  1435         {
       
  1436         return EFloat;
       
  1437         }
       
  1438     if( aAttrName == KCY )
       
  1439         {
       
  1440         return EFloat;
       
  1441         }
       
  1442     if( aAttrName == KR )
       
  1443         {
       
  1444         return EFloat;
       
  1445         }
       
  1446     if(aAttrName == KFX )
       
  1447         {
       
  1448         return EFloat;
       
  1449         }
       
  1450     if(aAttrName == KFY )
       
  1451         {
       
  1452         return EFloat;
       
  1453         }
       
  1454     if( aAttrName == KPATHLENGTH )
       
  1455         {
       
  1456         return EFloat;
       
  1457         }
       
  1458     if( aAttrName == KSTROKEWIDTH )
       
  1459         {
       
  1460         return EFloat;
       
  1461         }
       
  1462     if(aAttrName == KSTROKE )
       
  1463         {
       
  1464         return EInteger;
       
  1465         }
       
  1466     if(aAttrName == KSPREADMETHOD )
       
  1467         {
       
  1468         return EUndefinedType;
       
  1469         }
       
  1470     if(aAttrName == KSTOPCOLOR )
       
  1471         {
       
  1472         return EUndefinedType;
       
  1473         }
       
  1474     if(aAttrName == KSTOPOPACITY )
       
  1475         {
       
  1476         return EFloat;
       
  1477         }
       
  1478     if( aAttrName == KTEXTLENGTH )
       
  1479         {
       
  1480         return EFloat;
       
  1481         }
       
  1482     if( aAttrName == KHORIZADVX )
       
  1483         {
       
  1484         return EFloat;
       
  1485         }
       
  1486     if( aAttrName == KHORIZORIGINX )
       
  1487         {
       
  1488         return EFloat;
       
  1489         }
       
  1490     if( aAttrName == KHORIZORIGINY )
       
  1491         {
       
  1492         return EFloat;
       
  1493         }
       
  1494     if( aAttrName == KASCENT )
       
  1495         {
       
  1496         return EFloat;
       
  1497         }
       
  1498     if( aAttrName == KDESCENT )
       
  1499         {
       
  1500         return EFloat;
       
  1501         }
       
  1502     if( aAttrName == KALPHABETIC )
       
  1503         {
       
  1504         return EUndefinedType;
       
  1505         }
       
  1506     if( aAttrName == KUNDERLINEPOSITION )
       
  1507         {
       
  1508         return EFloat;
       
  1509         }
       
  1510     if( aAttrName == KUNDERLINETHICKNESS )
       
  1511         {
       
  1512         return EFloat;
       
  1513         }
       
  1514     if( aAttrName == KOVERLINEPOSITION )
       
  1515         {
       
  1516         return EFloat;
       
  1517         }
       
  1518     if( aAttrName == KOVERLINETHICKNESS )
       
  1519         {
       
  1520         return EFloat;
       
  1521         }
       
  1522     if( aAttrName == KSTRIKETHROUGHPOSITION )
       
  1523         {
       
  1524         return EFloat;
       
  1525         }
       
  1526     if( aAttrName == KSTRIKETHROUGHTHICKNESS )
       
  1527         {
       
  1528         return EFloat;
       
  1529         }
       
  1530     if( aAttrName == KUNITSPEREM )
       
  1531         {
       
  1532         return EFloat;
       
  1533         }
       
  1534     if( aAttrName == KWORDSPACING )
       
  1535         {
       
  1536         return EFloat;
       
  1537         }
       
  1538     if( aAttrName == KLETTERSPACING )
       
  1539         {
       
  1540         return EFloat;
       
  1541         }
       
  1542     if( aAttrName == KK )
       
  1543         {
       
  1544         return EFloat;
       
  1545         }
       
  1546     if( aAttrName == KG1 )
       
  1547         {
       
  1548         return EString;
       
  1549         }
       
  1550     if( aAttrName == KG2 )
       
  1551         {
       
  1552         return EString;
       
  1553         }
       
  1554     if( aAttrName == KU1 )
       
  1555         {
       
  1556         return EString;
       
  1557         }
       
  1558     if( aAttrName == KU2 )
       
  1559         {
       
  1560         return EString;
       
  1561         }
       
  1562     if( aAttrName == KTEXTDECORATION )
       
  1563         {
       
  1564         return EUndefinedType;
       
  1565         }
       
  1566     if( aAttrName == KROTATE )
       
  1567         {
       
  1568         return EUndefinedType;
       
  1569         }
       
  1570     if( aAttrName == KCDATA )
       
  1571         {
       
  1572         return EString;
       
  1573         }
       
  1574     if( aAttrName == KUNICODE )
       
  1575         {
       
  1576         return EString;
       
  1577         }
       
  1578     if( aAttrName == KGLYPHNAME )
       
  1579         {
       
  1580         return EString;
       
  1581         }
       
  1582     if( aAttrName == KLANG )
       
  1583         {
       
  1584         return EString;
       
  1585         }
       
  1586     if( aAttrName == KVERSION )
       
  1587         {
       
  1588         return EString;
       
  1589         }
       
  1590     if( aAttrName == KATTRIBUTENAME )
       
  1591         {
       
  1592         return EString;
       
  1593         }
       
  1594     if( aAttrName == KTYPE )
       
  1595         {
       
  1596         return EUndefinedType;
       
  1597         }
       
  1598     if( aAttrName == KTRANSFORM )
       
  1599         {
       
  1600         return EString;
       
  1601         }
       
  1602     if( aAttrName == KFROM )
       
  1603         {
       
  1604         return EFloat;
       
  1605         }
       
  1606     if( aAttrName == KTO )
       
  1607         {
       
  1608         return EFloat;
       
  1609         }
       
  1610     if( aAttrName == KBY )
       
  1611         {
       
  1612         return EUndefinedType;
       
  1613         }
       
  1614     if (aAttrName == KVALUES )
       
  1615         {
       
  1616         return EString;
       
  1617         }
       
  1618     if (aAttrName == KSTROKEDASHARRAY )
       
  1619         {
       
  1620         return EString;
       
  1621         }
       
  1622     if (aAttrName == KSTROKEDASHOFFSET )
       
  1623         {
       
  1624         return EFloat;
       
  1625         }
       
  1626     if (aAttrName == KTARGET )
       
  1627     	{
       
  1628     	return EString;
       
  1629     	}
       
  1630     if(aAttrName == KSOLIDOPACITY )
       
  1631         {
       
  1632         return EFloat;
       
  1633         }
       
  1634     if ( aAttrName == KSYNCBEHAVIORDEFAULT )
       
  1635         {
       
  1636         return EString;
       
  1637         }
       
  1638     if ( aAttrName == KSYNCTOLERANCEDEFAULT )    
       
  1639         {
       
  1640         return EString;
       
  1641         }
       
  1642     if ( aAttrName == KSYNCBEHAVIOR )
       
  1643         {
       
  1644         return EString;
       
  1645         }
       
  1646     if ( aAttrName == KSYNCTOLERANCE )
       
  1647         {
       
  1648         return EString;
       
  1649         }        
       
  1650     if ( aAttrName == KSYNCMASTER )
       
  1651         {
       
  1652         return EInteger;
       
  1653         }
       
  1654     if ( aAttrName == KINITIALVISIBILITY )
       
  1655         {
       
  1656         return EString;
       
  1657         }    
       
  1658     else
       
  1659         {
       
  1660         return EUndefinedType;
       
  1661         }
       
  1662     }