00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef STAR_ATTRIBUTE
00039 # define STAR_ATTRIBUTE
00040
00041 #include <set>
00042 #include <sstream>
00043 #include <vector>
00044
00045 #include "STOFFDebug.hxx"
00046 #include "STOFFEntry.hxx"
00047 #include "STOFFInputStream.hxx"
00048
00049 #include "StarItem.hxx"
00050
00051 namespace StarAttributeInternal
00052 {
00053 struct State;
00054 }
00055
00056 class StarItemPool;
00057 class StarObject;
00058 class StarState;
00059 class StarZone;
00060
00062 class StarAttribute
00063 {
00064 public:
00066 enum Type {
00067 ATTR_SPECIAL=-1,
00068 ATTR_CHR_CASEMAP = 1,
00069 ATTR_CHR_CHARSETCOLOR,
00070 ATTR_CHR_COLOR,
00071 ATTR_CHR_CONTOUR,
00072 ATTR_CHR_CROSSEDOUT,
00073 ATTR_CHR_ESCAPEMENT,
00074 ATTR_CHR_FONT,
00075 ATTR_CHR_FONTSIZE,
00076 ATTR_CHR_KERNING,
00077 ATTR_CHR_LANGUAGE,
00078 ATTR_CHR_POSTURE,
00079 ATTR_CHR_PROPORTIONALFONTSIZE,
00080 ATTR_CHR_SHADOWED,
00081 ATTR_CHR_UNDERLINE,
00082 ATTR_CHR_WEIGHT,
00083 ATTR_CHR_WORDLINEMODE,
00084 ATTR_CHR_AUTOKERN,
00085 ATTR_CHR_BLINK,
00086 ATTR_CHR_NOHYPHEN,
00087 ATTR_CHR_NOLINEBREAK,
00088 ATTR_CHR_BACKGROUND,
00089 ATTR_CHR_CJK_FONT,
00090 ATTR_CHR_CJK_FONTSIZE,
00091 ATTR_CHR_CJK_LANGUAGE,
00092 ATTR_CHR_CJK_POSTURE,
00093 ATTR_CHR_CJK_WEIGHT,
00094 ATTR_CHR_CTL_FONT,
00095 ATTR_CHR_CTL_FONTSIZE,
00096 ATTR_CHR_CTL_LANGUAGE,
00097 ATTR_CHR_CTL_POSTURE,
00098 ATTR_CHR_CTL_WEIGHT,
00099 ATTR_CHR_ROTATE,
00100 ATTR_CHR_EMPHASIS_MARK,
00101 ATTR_CHR_TWO_LINES,
00102 ATTR_CHR_SCALEW,
00103 ATTR_CHR_RELIEF,
00104 ATTR_CHR_DUMMY1,
00105
00106 ATTR_TXT_INETFMT,
00107 ATTR_TXT_DUMMY4,
00108 ATTR_TXT_REFMARK,
00109 ATTR_TXT_TOXMARK,
00110 ATTR_TXT_CHARFMT,
00111 ATTR_TXT_DUMMY5,
00112 ATTR_TXT_CJK_RUBY,
00113 ATTR_TXT_UNKNOWN_CONTAINER,
00114 ATTR_TXT_DUMMY6,
00115 ATTR_TXT_DUMMY7,
00116
00117 ATTR_TXT_FIELD,
00118 ATTR_TXT_FLYCNT,
00119 ATTR_TXT_FTN,
00120 ATTR_TXT_SOFTHYPH,
00121 ATTR_TXT_HARDBLANK,
00122 ATTR_TXT_DUMMY1,
00123 ATTR_TXT_DUMMY2,
00124
00125 ATTR_PARA_LINESPACING,
00126 ATTR_PARA_ADJUST,
00127 ATTR_PARA_SPLIT,
00128 ATTR_PARA_ORPHANS,
00129 ATTR_PARA_WIDOWS,
00130 ATTR_PARA_TABSTOP,
00131 ATTR_PARA_HYPHENZONE,
00132 ATTR_PARA_DROP,
00133 ATTR_PARA_REGISTER,
00134 ATTR_PARA_NUMRULE,
00135 ATTR_PARA_SCRIPTSPACE,
00136 ATTR_PARA_HANGINGPUNCTUATION,
00137 ATTR_PARA_FORBIDDEN_RULES,
00138 ATTR_PARA_VERTALIGN,
00139 ATTR_PARA_SNAPTOGRID,
00140 ATTR_PARA_CONNECT_BORDER,
00141 ATTR_PARA_DUMMY5,
00142 ATTR_PARA_DUMMY6,
00143 ATTR_PARA_DUMMY7,
00144 ATTR_PARA_DUMMY8,
00145
00146 ATTR_FRM_FILL_ORDER,
00147 ATTR_FRM_FRM_SIZE,
00148 ATTR_FRM_PAPER_BIN,
00149 ATTR_FRM_LR_SPACE,
00150 ATTR_FRM_UL_SPACE,
00151 ATTR_FRM_PAGEDESC,
00152 ATTR_FRM_BREAK,
00153 ATTR_FRM_CNTNT,
00154 ATTR_FRM_HEADER,
00155 ATTR_FRM_FOOTER,
00156 ATTR_FRM_PRINT,
00157 ATTR_FRM_OPAQUE,
00158 ATTR_FRM_PROTECT,
00159 ATTR_FRM_SURROUND,
00160 ATTR_FRM_VERT_ORIENT,
00161 ATTR_FRM_HORI_ORIENT,
00162 ATTR_FRM_ANCHOR,
00163 ATTR_FRM_BACKGROUND,
00164 ATTR_FRM_BOX,
00165 ATTR_FRM_SHADOW,
00166 ATTR_FRM_FRMMACRO,
00167 ATTR_FRM_COL,
00168 ATTR_FRM_KEEP,
00169 ATTR_FRM_URL,
00170 ATTR_FRM_EDIT_IN_READONLY,
00171 ATTR_FRM_LAYOUT_SPLIT,
00172 ATTR_FRM_CHAIN,
00173 ATTR_FRM_TEXTGRID,
00174 ATTR_FRM_LINENUMBER ,
00175 ATTR_FRM_FTN_AT_TXTEND,
00176 ATTR_FRM_END_AT_TXTEND,
00177 ATTR_FRM_COLUMNBALANCE,
00178 ATTR_FRM_FRAMEDIR,
00179 ATTR_FRM_HEADER_FOOTER_EAT_SPACING,
00180 ATTR_FRM_FRMATTR_DUMMY9,
00181
00182 ATTR_GRF_MIRRORGRF,
00183 ATTR_GRF_CROPGRF,
00184 ATTR_GRF_ROTATION,
00185 ATTR_GRF_LUMINANCE,
00186 ATTR_GRF_CONTRAST,
00187 ATTR_GRF_CHANNELR,
00188 ATTR_GRF_CHANNELG,
00189 ATTR_GRF_CHANNELB,
00190 ATTR_GRF_GAMMA,
00191 ATTR_GRF_INVERT,
00192 ATTR_GRF_TRANSPARENCY,
00193 ATTR_GRF_DRAWMODE,
00194 ATTR_GRF_DUMMY1,
00195 ATTR_GRF_DUMMY2,
00196 ATTR_GRF_DUMMY3,
00197 ATTR_GRF_DUMMY4,
00198 ATTR_GRF_DUMMY5,
00199
00200 ATTR_BOX_FORMAT,
00201 ATTR_BOX_FORMULA,
00202 ATTR_BOX_VALUE,
00203
00204
00205 ATTR_SC_USERDEF,
00206 ATTR_SC_HYPHENATE,
00207 ATTR_SC_HORJUSTIFY,
00208 ATTR_SC_INDENT,
00209 ATTR_SC_VERJUSTIFY,
00210 ATTR_SC_ORIENTATION,
00211 ATTR_SC_ROTATE_VALUE,
00212 ATTR_SC_ROTATE_MODE,
00213 ATTR_SC_VERTICAL_ASIAN,
00214 ATTR_SC_WRITINGDIR,
00215 ATTR_SC_LINEBREAK,
00216 ATTR_SC_MARGIN,
00217 ATTR_SC_MERGE,
00218 ATTR_SC_MERGE_FLAG,
00219 ATTR_SC_VALUE_FORMAT,
00220 ATTR_SC_LANGUAGE_FORMAT,
00221 ATTR_SC_BACKGROUND,
00222 ATTR_SC_PROTECTION,
00223 ATTR_SC_BORDER,
00224 ATTR_SC_BORDER_INNER,
00225 ATTR_SC_SHADOW,
00226 ATTR_SC_VALIDDATA,
00227 ATTR_SC_CONDITIONAL,
00228 ATTR_SC_PATTERN,
00229 ATTR_SC_PAGE,
00230 ATTR_SC_PAGE_PAPERTRAY,
00231 ATTR_SC_PAGE_SIZE,
00232 ATTR_SC_PAGE_MAXSIZE,
00233 ATTR_SC_PAGE_HORCENTER,
00234 ATTR_SC_PAGE_VERCENTER,
00235 ATTR_SC_PAGE_ON,
00236 ATTR_SC_PAGE_DYNAMIC,
00237 ATTR_SC_PAGE_SHARED,
00238 ATTR_SC_PAGE_NOTES,
00239 ATTR_SC_PAGE_GRID,
00240 ATTR_SC_PAGE_HEADERS,
00241 ATTR_SC_PAGE_CHARTS,
00242 ATTR_SC_PAGE_OBJECTS,
00243 ATTR_SC_PAGE_DRAWINGS,
00244 ATTR_SC_PAGE_TOPDOWN,
00245 ATTR_SC_PAGE_SCALE,
00246 ATTR_SC_PAGE_SCALETOPAGES,
00247 ATTR_SC_PAGE_FIRSTPAGENO,
00248 ATTR_SC_PAGE_PRINTAREA,
00249 ATTR_SC_PAGE_REPEATROW,
00250 ATTR_SC_PAGE_REPEATCOL,
00251 ATTR_SC_PAGE_PRINTTABLES,
00252 ATTR_SC_PAGE_HEADERLEFT,
00253 ATTR_SC_PAGE_FOOTERLEFT,
00254 ATTR_SC_PAGE_HEADERRIGHT,
00255 ATTR_SC_PAGE_FOOTERRIGHT,
00256 ATTR_SC_PAGE_HEADERSET,
00257 ATTR_SC_PAGE_FOOTERSET,
00258 ATTR_SC_PAGE_FORMULAS,
00259 ATTR_SC_PAGE_NULLVALS,
00260
00261 ATTR_EE_PARA_XMLATTRIBS,
00262 ATTR_EE_PARA_ASIANCJKSPACING,
00263 ATTR_EE_PARA_NUMBULLET,
00264 ATTR_EE_PARA_BULLETSTATE,
00265 ATTR_EE_PARA_OUTLLR_SPACE,
00266 ATTR_EE_PARA_OUTLLEVEL,
00267 ATTR_EE_PARA_BULLET,
00268 ATTR_EE_CHR_SCALEW,
00269 ATTR_EE_CHR_RUBI_DUMMY,
00270 ATTR_EE_CHR_XMLATTRIBS,
00271 ATTR_EE_FEATURE_TAB,
00272 ATTR_EE_FEATURE_LINEBR,
00273 ATTR_EE_FEATURE_FIELD,
00274
00275 ATTR_SCH_DATADESCR_DESCR,
00276 ATTR_SCH_DATADESCR_SHOW_SYM,
00277 ATTR_SCH_LEGEND_POS,
00278 ATTR_SCH_TEXT_ORIENT,
00279 ATTR_SCH_TEXT_ORDER,
00280
00281 ATTR_SCH_X_AXIS_AUTO_MIN,
00282 ATTR_SCH_X_AXIS_MIN,
00283 ATTR_SCH_X_AXIS_AUTO_MAX,
00284 ATTR_SCH_X_AXIS_MAX,
00285 ATTR_SCH_X_AXIS_AUTO_STEP_MAIN,
00286 ATTR_SCH_X_AXIS_STEP_MAIN,
00287 ATTR_SCH_X_AXIS_AUTO_STEP_HELP,
00288 ATTR_SCH_X_AXIS_STEP_HELP,
00289 ATTR_SCH_X_AXIS_LOGARITHM,
00290 ATTR_SCH_X_AXIS_AUTO_ORIGIN,
00291 ATTR_SCH_X_AXIS_ORIGIN,
00292 ATTR_SCH_Y_AXIS_AUTO_MIN,
00293 ATTR_SCH_Y_AXIS_MIN,
00294 ATTR_SCH_Y_AXIS_AUTO_MAX,
00295 ATTR_SCH_Y_AXIS_MAX,
00296 ATTR_SCH_Y_AXIS_AUTO_STEP_MAIN,
00297 ATTR_SCH_Y_AXIS_STEP_MAIN,
00298 ATTR_SCH_Y_AXIS_AUTO_STEP_HELP,
00299 ATTR_SCH_Y_AXIS_STEP_HELP,
00300 ATTR_SCH_Y_AXIS_LOGARITHM,
00301 ATTR_SCH_Y_AXIS_AUTO_ORIGIN,
00302 ATTR_SCH_Y_AXIS_ORIGIN,
00303 ATTR_SCH_Z_AXIS_AUTO_MIN,
00304 ATTR_SCH_Z_AXIS_MIN,
00305 ATTR_SCH_Z_AXIS_AUTO_MAX,
00306 ATTR_SCH_Z_AXIS_MAX,
00307 ATTR_SCH_Z_AXIS_AUTO_STEP_MAIN,
00308 ATTR_SCH_Z_AXIS_STEP_MAIN,
00309 ATTR_SCH_Z_AXIS_AUTO_STEP_HELP,
00310 ATTR_SCH_Z_AXIS_STEP_HELP,
00311 ATTR_SCH_Z_AXIS_LOGARITHM,
00312 ATTR_SCH_Z_AXIS_AUTO_ORIGIN,
00313 ATTR_SCH_Z_AXIS_ORIGIN,
00314
00315 ATTR_SCH_AXISTYPE,
00316 ATTR_SCH_DUMMY0,
00317 ATTR_SCH_DUMMY1,
00318 ATTR_SCH_DUMMY2,
00319 ATTR_SCH_DUMMY3,
00320 ATTR_SCH_DUMMY_END,
00321
00322 ATTR_SCH_STAT_AVERAGE,
00323 ATTR_SCH_STAT_KIND_ERROR,
00324 ATTR_SCH_STAT_PERCENT,
00325 ATTR_SCH_STAT_BIGERROR,
00326 ATTR_SCH_STAT_CONSTPLUS,
00327 ATTR_SCH_STAT_CONSTMINUS,
00328 ATTR_SCH_STAT_REGRESSTYPE,
00329 ATTR_SCH_STAT_INDICATE,
00330 ATTR_SCH_TEXT_DEGREES,
00331 ATTR_SCH_TEXT_OVERLAP,
00332 ATTR_SCH_TEXT_DUMMY0,
00333 ATTR_SCH_TEXT_DUMMY1,
00334 ATTR_SCH_TEXT_DUMMY2,
00335 ATTR_SCH_TEXT_DUMMY3,
00336
00337 ATTR_SCH_STYLE_DEEP,
00338 ATTR_SCH_STYLE_3D,
00339 ATTR_SCH_STYLE_VERTICAL,
00340 ATTR_SCH_STYLE_BASETYPE,
00341 ATTR_SCH_STYLE_LINES,
00342 ATTR_SCH_STYLE_PERCENT,
00343 ATTR_SCH_STYLE_STACKED,
00344 ATTR_SCH_STYLE_SPLINES,
00345 ATTR_SCH_STYLE_SYMBOL,
00346 ATTR_SCH_STYLE_SHAPE,
00347
00348 ATTR_SCH_AXIS,
00349 ATTR_SCH_AXIS_AUTO_MIN,
00350 ATTR_SCH_AXIS_MIN,
00351 ATTR_SCH_AXIS_AUTO_MAX,
00352 ATTR_SCH_AXIS_MAX,
00353 ATTR_SCH_AXIS_AUTO_STEP_MAIN,
00354 ATTR_SCH_AXIS_STEP_MAIN,
00355 ATTR_SCH_AXIS_AUTO_STEP_HELP,
00356 ATTR_SCH_AXIS_STEP_HELP,
00357 ATTR_SCH_AXIS_LOGARITHM,
00358 ATTR_SCH_AXIS_AUTO_ORIGIN,
00359 ATTR_SCH_AXIS_ORIGIN,
00360
00361 ATTR_SCH_AXIS_TICKS,
00362 ATTR_SCH_AXIS_NUMFMT,
00363 ATTR_SCH_AXIS_NUMFMTPERCENT,
00364 ATTR_SCH_AXIS_SHOWAXIS,
00365 ATTR_SCH_AXIS_SHOWDESCR,
00366 ATTR_SCH_AXIS_SHOWMAINGRID,
00367 ATTR_SCH_AXIS_SHOWHELPGRID,
00368 ATTR_SCH_AXIS_TOPDOWN,
00369 ATTR_SCH_AXIS_HELPTICKS,
00370
00371 ATTR_SCH_AXIS_DUMMY0,
00372 ATTR_SCH_AXIS_DUMMY1,
00373 ATTR_SCH_AXIS_DUMMY2,
00374 ATTR_SCH_AXIS_DUMMY3,
00375 ATTR_SCH_BAR_OVERLAP,
00376 ATTR_SCH_BAR_GAPWIDTH,
00377
00378 ATTR_SCH_SYMBOL_BRUSH,
00379 ATTR_SCH_STOCK_VOLUME,
00380 ATTR_SCH_STOCK_UPDOWN,
00381 ATTR_SCH_SYMBOL_SIZE,
00382 ATTR_SCH_USER_DEFINED_ATTR,
00383
00384 XATTR_LINESTYLE,
00385 XATTR_LINEDASH,
00386 XATTR_LINEWIDTH,
00387 XATTR_LINECOLOR,
00388 XATTR_LINESTART,
00389 XATTR_LINEEND,
00390 XATTR_LINESTARTWIDTH,
00391 XATTR_LINEENDWIDTH,
00392 XATTR_LINESTARTCENTER,
00393 XATTR_LINEENDCENTER,
00394 XATTR_LINETRANSPARENCE,
00395 XATTR_LINEJOINT,
00396 XATTR_LINERESERVED2,
00397 XATTR_LINERESERVED3,
00398 XATTR_LINERESERVED4,
00399 XATTR_LINERESERVED5,
00400 XATTR_LINERESERVED_LAST,
00401 XATTR_SET_LINE,
00402 XATTR_FILLSTYLE,
00403 XATTR_FILLCOLOR,
00404 XATTR_FILLGRADIENT,
00405 XATTR_FILLHATCH,
00406 XATTR_FILLBITMAP,
00407 XATTR_FILLTRANSPARENCE,
00408 XATTR_GRADIENTSTEPCOUNT,
00409 XATTR_FILLBMP_TILE,
00410 XATTR_FILLBMP_POS,
00411 XATTR_FILLBMP_SIZEX,
00412 XATTR_FILLBMP_SIZEY,
00413 XATTR_FILLFLOATTRANSPARENCE,
00414 XATTR_FILLBMP_SIZELOG,
00415 XATTR_FILLBMP_TILEOFFSETX,
00416 XATTR_FILLBMP_TILEOFFSETY,
00417 XATTR_FILLBMP_STRETCH,
00418 XATTR_FILLBMP_POSOFFSETX,
00419 XATTR_FILLBMP_POSOFFSETY,
00420 XATTR_FILLBACKGROUND,
00421 XATTR_FILLRESERVED2,
00422 XATTR_FILLRESERVED3,
00423 XATTR_FILLRESERVED4,
00424 XATTR_FILLRESERVED5,
00425 XATTR_FILLRESERVED6,
00426 XATTR_FILLRESERVED7,
00427 XATTR_FILLRESERVED8,
00428 XATTR_FILLRESERVED10,
00429 XATTR_FILLRESERVED11,
00430 XATTR_FILLRESERVED_LAST,
00431 XATTR_SET_FILL,
00432 XATTR_FORMTXTSTYLE,
00433 XATTR_FORMTXTADJUST,
00434 XATTR_FORMTXTDISTANCE,
00435 XATTR_FORMTXTSTART,
00436 XATTR_FORMTXTMIRROR,
00437 XATTR_FORMTXTOUTLINE,
00438 XATTR_FORMTXTSHADOW,
00439 XATTR_FORMTXTSHDWCOLOR,
00440 XATTR_FORMTXTSHDWXVAL,
00441 XATTR_FORMTXTSHDWYVAL,
00442 XATTR_FORMTXTSTDFORM,
00443 XATTR_FORMTXTHIDEFORM,
00444 XATTR_FORMTXTSHDWTRANSP,
00445 XATTR_FTRESERVED2,
00446 XATTR_FTRESERVED3,
00447 XATTR_FTRESERVED4,
00448 XATTR_FTRESERVED5,
00449 XATTR_FTRESERVED_LAST,
00450 XATTR_SET_TEXT,
00451
00452
00453 SDRATTR_SHADOW,
00454 SDRATTR_SHADOWCOLOR,
00455 SDRATTR_SHADOWXDIST,
00456 SDRATTR_SHADOWYDIST,
00457 SDRATTR_SHADOWTRANSPARENCE,
00458 SDRATTR_SHADOW3D,
00459 SDRATTR_SHADOWPERSP,
00460 SDRATTR_SHADOWRESERVE1,
00461 SDRATTR_SHADOWRESERVE2,
00462 SDRATTR_SHADOWRESERVE3,
00463 SDRATTR_SHADOWRESERVE4,
00464 SDRATTR_SHADOWRESERVE5,
00465 SDRATTR_SET_SHADOW,
00466
00467 SDRATTR_CAPTIONTYPE,
00468 SDRATTR_CAPTIONFIXEDANGLE,
00469 SDRATTR_CAPTIONANGLE,
00470 SDRATTR_CAPTIONGAP,
00471 SDRATTR_CAPTIONESCDIR,
00472 SDRATTR_CAPTIONESCISREL,
00473 SDRATTR_CAPTIONESCREL,
00474 SDRATTR_CAPTIONESCABS,
00475 SDRATTR_CAPTIONLINELEN,
00476 SDRATTR_CAPTIONFITLINELEN,
00477 SDRATTR_CAPTIONRESERVE1,
00478 SDRATTR_CAPTIONRESERVE2,
00479 SDRATTR_CAPTIONRESERVE3,
00480 SDRATTR_CAPTIONRESERVE4,
00481 SDRATTR_CAPTIONRESERVE5,
00482 SDRATTR_SET_CAPTION,
00483
00484 SDRATTR_SET_OUTLINER,
00485
00486 SDRATTR_ECKENRADIUS,
00487 SDRATTR_TEXT_MINFRAMEHEIGHT,
00488 SDRATTR_TEXT_AUTOGROWHEIGHT,
00489 SDRATTR_TEXT_FITTOSIZE,
00490 SDRATTR_TEXT_LEFTDIST,
00491 SDRATTR_TEXT_RIGHTDIST,
00492 SDRATTR_TEXT_UPPERDIST,
00493 SDRATTR_TEXT_LOWERDIST,
00494 SDRATTR_TEXT_VERTADJUST,
00495 SDRATTR_TEXT_MAXFRAMEHEIGHT,
00496 SDRATTR_TEXT_MINFRAMEWIDTH,
00497 SDRATTR_TEXT_MAXFRAMEWIDTH,
00498 SDRATTR_TEXT_AUTOGROWWIDTH,
00499 SDRATTR_TEXT_HORZADJUST,
00500 SDRATTR_TEXT_ANIKIND,
00501 SDRATTR_TEXT_ANIDIRECTION,
00502 SDRATTR_TEXT_ANISTARTINSIDE,
00503 SDRATTR_TEXT_ANISTOPINSIDE,
00504 SDRATTR_TEXT_ANICOUNT,
00505 SDRATTR_TEXT_ANIDELAY,
00506 SDRATTR_TEXT_ANIAMOUNT,
00507 SDRATTR_TEXT_CONTOURFRAME,
00508 SDRATTR_AUTOSHAPE_ADJUSTMENT,
00509 SDRATTR_XMLATTRIBUTES,
00510 SDRATTR_RESERVE15,
00511 SDRATTR_RESERVE16,
00512 SDRATTR_RESERVE17,
00513 SDRATTR_RESERVE18,
00514 SDRATTR_RESERVE19,
00515 SDRATTR_SET_MISC,
00516
00517 SDRATTR_EDGEKIND,
00518 SDRATTR_EDGENODE1HORZDIST,
00519 SDRATTR_EDGENODE1VERTDIST,
00520 SDRATTR_EDGENODE2HORZDIST,
00521 SDRATTR_EDGENODE2VERTDIST,
00522 SDRATTR_EDGENODE1GLUEDIST,
00523 SDRATTR_EDGENODE2GLUEDIST,
00524 SDRATTR_EDGELINEDELTAANZ,
00525 SDRATTR_EDGELINE1DELTA,
00526 SDRATTR_EDGELINE2DELTA,
00527 SDRATTR_EDGELINE3DELTA,
00528 SDRATTR_EDGERESERVE02,
00529 SDRATTR_EDGERESERVE03,
00530 SDRATTR_EDGERESERVE04,
00531 SDRATTR_EDGERESERVE05,
00532 SDRATTR_EDGERESERVE06,
00533 SDRATTR_EDGERESERVE07,
00534 SDRATTR_EDGERESERVE08,
00535 SDRATTR_EDGERESERVE09,
00536 SDRATTR_SET_EDGE,
00537
00538 SDRATTR_MEASUREKIND,
00539 SDRATTR_MEASURETEXTHPOS,
00540 SDRATTR_MEASURETEXTVPOS,
00541 SDRATTR_MEASURELINEDIST,
00542 SDRATTR_MEASUREHELPLINEOVERHANG,
00543 SDRATTR_MEASUREHELPLINEDIST,
00544 SDRATTR_MEASUREHELPLINE1LEN,
00545 SDRATTR_MEASUREHELPLINE2LEN,
00546 SDRATTR_MEASUREBELOWREFEDGE,
00547 SDRATTR_MEASURETEXTROTA90,
00548 SDRATTR_MEASURETEXTUPSIDEDOWN,
00549 SDRATTR_MEASUREOVERHANG,
00550 SDRATTR_MEASUREUNIT,
00551 SDRATTR_MEASURESCALE,
00552 SDRATTR_MEASURESHOWUNIT,
00553 SDRATTR_MEASUREFORMATSTRING,
00554 SDRATTR_MEASURETEXTAUTOANGLE,
00555 SDRATTR_MEASURETEXTAUTOANGLEVIEW,
00556 SDRATTR_MEASURETEXTISFIXEDANGLE,
00557 SDRATTR_MEASURETEXTFIXEDANGLE,
00558 SDRATTR_MEASUREDECIMALPLACES,
00559 SDRATTR_MEASURERESERVE05,
00560 SDRATTR_MEASURERESERVE06,
00561 SDRATTR_MEASURERESERVE07,
00562 SDRATTR_SET_MEASURE,
00563
00564 SDRATTR_CIRCKIND,
00565 SDRATTR_CIRCSTARTANGLE,
00566 SDRATTR_CIRCENDANGLE,
00567 SDRATTR_CIRCRESERVE0,
00568 SDRATTR_CIRCRESERVE1,
00569 SDRATTR_CIRCRESERVE2,
00570 SDRATTR_CIRCRESERVE3,
00571 SDRATTR_SET_CIRC,
00572
00573 SDRATTR_OBJMOVEPROTECT,
00574 SDRATTR_OBJSIZEPROTECT,
00575 SDRATTR_OBJPRINTABLE,
00576 SDRATTR_LAYERID,
00577 SDRATTR_LAYERNAME,
00578 SDRATTR_OBJECTNAME,
00579 SDRATTR_ALLPOSITIONX,
00580 SDRATTR_ALLPOSITIONY,
00581 SDRATTR_ALLSIZEWIDTH,
00582 SDRATTR_ALLSIZEHEIGHT,
00583 SDRATTR_ONEPOSITIONX,
00584 SDRATTR_ONEPOSITIONY,
00585 SDRATTR_ONESIZEWIDTH,
00586 SDRATTR_ONESIZEHEIGHT,
00587 SDRATTR_LOGICSIZEWIDTH,
00588 SDRATTR_LOGICSIZEHEIGHT,
00589 SDRATTR_ROTATEANGLE,
00590 SDRATTR_SHEARANGLE,
00591 SDRATTR_MOVEX,
00592 SDRATTR_MOVEY,
00593 SDRATTR_RESIZEXONE,
00594 SDRATTR_RESIZEYONE,
00595 SDRATTR_ROTATEONE,
00596 SDRATTR_HORZSHEARONE,
00597 SDRATTR_VERTSHEARONE,
00598 SDRATTR_RESIZEXALL,
00599 SDRATTR_RESIZEYALL,
00600 SDRATTR_ROTATEALL,
00601 SDRATTR_HORZSHEARALL,
00602 SDRATTR_VERTSHEARALL,
00603 SDRATTR_TRANSFORMREF1X,
00604 SDRATTR_TRANSFORMREF1Y,
00605 SDRATTR_TRANSFORMREF2X,
00606 SDRATTR_TRANSFORMREF2Y,
00607 SDRATTR_TEXTDIRECTION,
00608 SDRATTR_NOTPERSISTRESERVE2,
00609 SDRATTR_NOTPERSISTRESERVE3,
00610 SDRATTR_NOTPERSISTRESERVE4,
00611 SDRATTR_NOTPERSISTRESERVE5,
00612 SDRATTR_NOTPERSISTRESERVE6,
00613 SDRATTR_NOTPERSISTRESERVE7,
00614 SDRATTR_NOTPERSISTRESERVE8,
00615 SDRATTR_NOTPERSISTRESERVE9,
00616 SDRATTR_NOTPERSISTRESERVE10,
00617 SDRATTR_NOTPERSISTRESERVE11,
00618 SDRATTR_NOTPERSISTRESERVE12,
00619 SDRATTR_NOTPERSISTRESERVE13,
00620 SDRATTR_NOTPERSISTRESERVE14,
00621 SDRATTR_NOTPERSISTRESERVE15,
00622
00623 SDRATTR_GRAFRED,
00624 SDRATTR_GRAFGREEN,
00625 SDRATTR_GRAFBLUE,
00626 SDRATTR_GRAFLUMINANCE,
00627 SDRATTR_GRAFCONTRAST,
00628 SDRATTR_GRAFGAMMA,
00629 SDRATTR_GRAFTRANSPARENCE,
00630 SDRATTR_GRAFINVERT,
00631 SDRATTR_GRAFMODE,
00632 SDRATTR_GRAFCROP,
00633 SDRATTR_GRAFRESERVE3,
00634 SDRATTR_GRAFRESERVE4,
00635 SDRATTR_GRAFRESERVE5,
00636 SDRATTR_GRAFRESERVE6,
00637 SDRATTR_SET_GRAF,
00638
00639 SDRATTR_3DOBJ_PERCENT_DIAGONAL,
00640 SDRATTR_3DOBJ_BACKSCALE,
00641 SDRATTR_3DOBJ_DEPTH,
00642 SDRATTR_3DOBJ_HORZ_SEGS,
00643 SDRATTR_3DOBJ_VERT_SEGS,
00644 SDRATTR_3DOBJ_END_ANGLE,
00645 SDRATTR_3DOBJ_DOUBLE_SIDED,
00646 SDRATTR_3DOBJ_NORMALS_KIND,
00647 SDRATTR_3DOBJ_NORMALS_INVERT,
00648 SDRATTR_3DOBJ_TEXTURE_PROJ_X,
00649 SDRATTR_3DOBJ_TEXTURE_PROJ_Y,
00650 SDRATTR_3DOBJ_SHADOW_3D,
00651 SDRATTR_3DOBJ_MAT_COLOR,
00652 SDRATTR_3DOBJ_MAT_EMISSION,
00653 SDRATTR_3DOBJ_MAT_SPECULAR,
00654 SDRATTR_3DOBJ_MAT_SPECULAR_INTENSITY,
00655 SDRATTR_3DOBJ_TEXTURE_KIND,
00656 SDRATTR_3DOBJ_TEXTURE_MODE,
00657 SDRATTR_3DOBJ_TEXTURE_FILTER,
00658
00659 SDRATTR_3DOBJ_SMOOTH_NORMALS,
00660 SDRATTR_3DOBJ_SMOOTH_LIDS,
00661 SDRATTR_3DOBJ_CHARACTER_MODE,
00662 SDRATTR_3DOBJ_CLOSE_FRONT,
00663 SDRATTR_3DOBJ_CLOSE_BACK,
00664
00665 SDRATTR_3DOBJ_RESERVED_06,
00666 SDRATTR_3DOBJ_RESERVED_07,
00667 SDRATTR_3DOBJ_RESERVED_08,
00668 SDRATTR_3DOBJ_RESERVED_09,
00669 SDRATTR_3DOBJ_RESERVED_10,
00670 SDRATTR_3DOBJ_RESERVED_11,
00671 SDRATTR_3DOBJ_RESERVED_12,
00672 SDRATTR_3DOBJ_RESERVED_13,
00673 SDRATTR_3DOBJ_RESERVED_14,
00674 SDRATTR_3DOBJ_RESERVED_15,
00675 SDRATTR_3DOBJ_RESERVED_16,
00676 SDRATTR_3DOBJ_RESERVED_17,
00677 SDRATTR_3DOBJ_RESERVED_18,
00678 SDRATTR_3DOBJ_RESERVED_19,
00679 SDRATTR_3DOBJ_RESERVED_20,
00680
00681 SDRATTR_3DSCENE_PERSPECTIVE,
00682 SDRATTR_3DSCENE_DISTANCE,
00683 SDRATTR_3DSCENE_FOCAL_LENGTH,
00684 SDRATTR_3DSCENE_TWO_SIDED_LIGHTING,
00685 SDRATTR_3DSCENE_LIGHTCOLOR_1,
00686 SDRATTR_3DSCENE_LIGHTCOLOR_2,
00687 SDRATTR_3DSCENE_LIGHTCOLOR_3,
00688 SDRATTR_3DSCENE_LIGHTCOLOR_4,
00689 SDRATTR_3DSCENE_LIGHTCOLOR_5,
00690 SDRATTR_3DSCENE_LIGHTCOLOR_6,
00691 SDRATTR_3DSCENE_LIGHTCOLOR_7,
00692 SDRATTR_3DSCENE_LIGHTCOLOR_8,
00693 SDRATTR_3DSCENE_AMBIENTCOLOR,
00694 SDRATTR_3DSCENE_LIGHTON_1,
00695 SDRATTR_3DSCENE_LIGHTON_2,
00696 SDRATTR_3DSCENE_LIGHTON_3,
00697 SDRATTR_3DSCENE_LIGHTON_4,
00698 SDRATTR_3DSCENE_LIGHTON_5,
00699 SDRATTR_3DSCENE_LIGHTON_6,
00700 SDRATTR_3DSCENE_LIGHTON_7,
00701 SDRATTR_3DSCENE_LIGHTON_8,
00702 SDRATTR_3DSCENE_LIGHTDIRECTION_1,
00703 SDRATTR_3DSCENE_LIGHTDIRECTION_2,
00704 SDRATTR_3DSCENE_LIGHTDIRECTION_3,
00705 SDRATTR_3DSCENE_LIGHTDIRECTION_4,
00706 SDRATTR_3DSCENE_LIGHTDIRECTION_5,
00707 SDRATTR_3DSCENE_LIGHTDIRECTION_6,
00708 SDRATTR_3DSCENE_LIGHTDIRECTION_7,
00709 SDRATTR_3DSCENE_LIGHTDIRECTION_8,
00710 SDRATTR_3DSCENE_SHADOW_SLANT,
00711 SDRATTR_3DSCENE_SHADE_MODE,
00712 SDRATTR_3DSCENE_RESERVED_01,
00713 SDRATTR_3DSCENE_RESERVED_02,
00714 SDRATTR_3DSCENE_RESERVED_03,
00715 SDRATTR_3DSCENE_RESERVED_04,
00716 SDRATTR_3DSCENE_RESERVED_05,
00717 SDRATTR_3DSCENE_RESERVED_06,
00718 SDRATTR_3DSCENE_RESERVED_07,
00719 SDRATTR_3DSCENE_RESERVED_08,
00720 SDRATTR_3DSCENE_RESERVED_09,
00721 SDRATTR_3DSCENE_RESERVED_10,
00722 SDRATTR_3DSCENE_RESERVED_11,
00723 SDRATTR_3DSCENE_RESERVED_12,
00724 SDRATTR_3DSCENE_RESERVED_13,
00725 SDRATTR_3DSCENE_RESERVED_14,
00726 SDRATTR_3DSCENE_RESERVED_15,
00727 SDRATTR_3DSCENE_RESERVED_16,
00728 SDRATTR_3DSCENE_RESERVED_17,
00729 SDRATTR_3DSCENE_RESERVED_18,
00730 SDRATTR_3DSCENE_RESERVED_19,
00731 SDRATTR_3DSCENE_RESERVED_20
00732 };
00733
00735 virtual ~StarAttribute();
00737 Type getType() const
00738 {
00739 return m_type;
00740 }
00742 virtual shared_ptr<StarAttribute> create() const=0;
00744 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &document)=0;
00746 void addTo(StarState &state) const
00747 {
00748 std::set<StarAttribute const *> done;
00749 addTo(state, done);
00750 }
00752 bool send(STOFFListenerPtr listener, StarState &state) const
00753 {
00754 std::set<StarAttribute const *> done;
00755 return send(listener, state, done);
00756 }
00758 virtual void addTo(StarState &, std::set<StarAttribute const *> &) const
00759 {
00760 }
00762 virtual bool send(STOFFListenerPtr , StarState &, std::set<StarAttribute const *> &) const
00763 {
00764 return false;
00765 }
00767 std::string const &getDebugName() const
00768 {
00769 return m_debugName;
00770 }
00772 virtual void print(libstoff::DebugStream &o, std::set<StarAttribute const *> &done) const
00773 {
00774 if (done.find(this)!=done.end()) {
00775 o << m_debugName << ",";
00776 return;
00777 }
00778 done.insert(this);
00779 printData(o);
00780 }
00782 virtual void printData(libstoff::DebugStream &o) const
00783 {
00784 o << m_debugName << ",";
00785 }
00786 protected:
00788 StarAttribute(Type type, std::string const &debugName) : m_type(type), m_debugName(debugName)
00789 {
00790 }
00792 explicit StarAttribute(StarAttribute const &orig) : m_type(orig.m_type), m_debugName(orig.m_debugName)
00793 {
00794 }
00795
00796
00797
00798
00799
00801 Type m_type;
00803 std::string m_debugName;
00804
00805 private:
00806 StarAttribute &operator=(StarAttribute const &orig);
00807 };
00808
00810 class StarAttributeBool : public StarAttribute
00811 {
00812 public:
00814 StarAttributeBool(Type type, std::string const &debugName, bool value) : StarAttribute(type, debugName), m_value(value)
00815 {
00816 }
00818 virtual shared_ptr<StarAttribute> create() const
00819 {
00820 return shared_ptr<StarAttribute>(new StarAttributeBool(*this));
00821 }
00823 virtual bool read(StarZone &zone, int ver, long endPos, StarObject &object);
00825 virtual void printData(libstoff::DebugStream &o) const
00826 {
00827 o << m_debugName;
00828 if (m_value) o << "=true";
00829 o << ",";
00830 }
00831 protected:
00833 StarAttributeBool(StarAttributeBool const &orig) : StarAttribute(orig), m_value(orig.m_value)
00834 {
00835 }
00836
00837 bool m_value;
00838 };
00839
00841 class StarAttributeColor : public StarAttribute
00842 {
00843 public:
00845 StarAttributeColor(Type type, std::string const &debugName, STOFFColor const &value) : StarAttribute(type, debugName), m_value(value), m_defValue(value)
00846 {
00847 }
00849 virtual shared_ptr<StarAttribute> create() const
00850 {
00851 return shared_ptr<StarAttribute>(new StarAttributeColor(*this));
00852 }
00854 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &object);
00856 virtual void printData(libstoff::DebugStream &o) const
00857 {
00858 o << m_debugName << "[col=" << m_value << "],";
00859 }
00860 protected:
00862 StarAttributeColor(StarAttributeColor const &orig) : StarAttribute(orig), m_value(orig.m_value), m_defValue(orig.m_defValue)
00863 {
00864 }
00866 STOFFColor m_value;
00868 STOFFColor m_defValue;
00869 };
00870
00872 class StarAttributeDouble : public StarAttribute
00873 {
00874 public:
00876 StarAttributeDouble(Type type, std::string const &debugName, double value) : StarAttribute(type, debugName), m_value(value)
00877 {
00878 }
00880 virtual shared_ptr<StarAttribute> create() const
00881 {
00882 return shared_ptr<StarAttribute>(new StarAttributeDouble(*this));
00883 }
00885 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &object);
00886
00888 virtual void printData(libstoff::DebugStream &o) const
00889 {
00890 o << m_debugName;
00891 if (m_value<0 || m_value>0) o << "=" << m_value;
00892 o << ",";
00893 }
00894 protected:
00896 StarAttributeDouble(StarAttributeDouble const &orig) : StarAttribute(orig), m_value(orig.m_value)
00897 {
00898 }
00899
00900 double m_value;
00901 };
00902
00904 class StarAttributeInt : public StarAttribute
00905 {
00906 public:
00908 StarAttributeInt(Type type, std::string const &debugName, int intSize, int value) : StarAttribute(type, debugName), m_value(value), m_intSize(intSize)
00909 {
00910 if (intSize!=1 && intSize!=2 && intSize!=4) {
00911 STOFF_DEBUG_MSG(("StarAttributeInt: bad num size\n"));
00912 m_intSize=0;
00913 }
00914 }
00916 virtual shared_ptr<StarAttribute> create() const
00917 {
00918 return shared_ptr<StarAttribute>(new StarAttributeInt(*this));
00919 }
00921 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &object);
00923 virtual void printData(libstoff::DebugStream &o) const
00924 {
00925 o << m_debugName;
00926 if (m_value) o << "=" << m_value;
00927 o << ",";
00928 }
00929
00930 protected:
00932 StarAttributeInt(StarAttributeInt const &orig) : StarAttribute(orig), m_value(orig.m_value), m_intSize(orig.m_intSize)
00933 {
00934 }
00935
00936 int m_value;
00937
00938 int m_intSize;
00939 };
00940
00942 class StarAttributeUInt : public StarAttribute
00943 {
00944 public:
00946 StarAttributeUInt(Type type, std::string const &debugName, int intSize, unsigned int value) : StarAttribute(type, debugName), m_value(value), m_intSize(intSize)
00947 {
00948 if (intSize!=1 && intSize!=2 && intSize!=4) {
00949 STOFF_DEBUG_MSG(("StarAttributeUInt: bad num size\n"));
00950 m_intSize=0;
00951 }
00952 }
00954 virtual shared_ptr<StarAttribute> create() const
00955 {
00956 return shared_ptr<StarAttribute>(new StarAttributeUInt(*this));
00957 }
00959 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &object);
00961 virtual void printData(libstoff::DebugStream &o) const
00962 {
00963 o << m_debugName;
00964 if (m_value) o << "=" << m_value;
00965 o << ",";
00966 }
00967 protected:
00969 StarAttributeUInt(StarAttributeUInt const &orig) : StarAttribute(orig), m_value(orig.m_value), m_intSize(orig.m_intSize)
00970 {
00971 }
00972
00973 unsigned int m_value;
00974
00975 int m_intSize;
00976 };
00977
00979 class StarAttributeVec2i : public StarAttribute
00980 {
00981 public:
00983 StarAttributeVec2i(Type type, std::string const &debugName, int intSize, STOFFVec2i value=STOFFVec2i(0,0)) : StarAttribute(type, debugName), m_value(value), m_intSize(intSize)
00984 {
00985 if (intSize!=1 && intSize!=2 && intSize!=4) {
00986 STOFF_DEBUG_MSG(("StarAttributeVec2i: bad num size\n"));
00987 m_intSize=0;
00988 }
00989 }
00991 virtual shared_ptr<StarAttribute> create() const
00992 {
00993 return shared_ptr<StarAttribute>(new StarAttributeVec2i(*this));
00994 }
00996 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &object);
00998 virtual void printData(libstoff::DebugStream &o) const
00999 {
01000 o << m_debugName;
01001 if (m_value!=STOFFVec2i(0,0)) o << "=" << m_value;
01002 o << ",";
01003 }
01004
01005 protected:
01007 StarAttributeVec2i(StarAttributeVec2i const &orig) : StarAttribute(orig), m_value(orig.m_value), m_intSize(orig.m_intSize)
01008 {
01009 }
01010
01011 STOFFVec2i m_value;
01012
01013 int m_intSize;
01014 };
01015
01017 class StarAttributeItemSet : public StarAttribute
01018 {
01019 public:
01021 StarAttributeItemSet(Type type, std::string const &debugName, std::vector<STOFFVec2i> const &limits) :
01022 StarAttribute(type, debugName), m_limits(limits), m_itemSet()
01023 {
01024 }
01026 virtual shared_ptr<StarAttribute> create() const
01027 {
01028 return shared_ptr<StarAttribute>(new StarAttributeItemSet(*this));
01029 }
01031 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &object);
01033 virtual void print(libstoff::DebugStream &o, std::set<StarAttribute const *> &done) const;
01034
01035 protected:
01037 virtual void addTo(StarState &state, std::set<StarAttribute const *> &done) const;
01039 virtual bool send(STOFFListenerPtr listener, StarState &state, std::set<StarAttribute const *> &done) const;
01040
01042 StarAttributeItemSet(StarAttributeItemSet const &orig) : StarAttribute(orig), m_limits(orig.m_limits), m_itemSet()
01043 {
01044 }
01046 std::vector<STOFFVec2i> m_limits;
01048 StarItemSet m_itemSet;
01049 };
01050
01052 class StarAttributeVoid : public StarAttribute
01053 {
01054 public:
01056 StarAttributeVoid(Type type, std::string const &debugName) : StarAttribute(type, debugName)
01057 {
01058 }
01060 virtual shared_ptr<StarAttribute> create() const
01061 {
01062 return shared_ptr<StarAttribute>(new StarAttributeVoid(*this));
01063 }
01065 virtual bool read(StarZone &zone, int vers, long endPos, StarObject &object);
01066 };
01067
01073 class StarAttributeManager
01074 {
01075 public:
01077 StarAttributeManager();
01079 virtual ~StarAttributeManager();
01080
01081
01083 shared_ptr<StarAttribute> readAttribute(StarZone &zone, int which, int vers, long endPos, StarObject &document);
01085 shared_ptr<StarAttribute> getDefaultAttribute(int which);
01087 static shared_ptr<StarAttribute> getDummyAttribute(int type=-1);
01088
01089 protected:
01090
01091
01092
01093 private:
01095 shared_ptr<StarAttributeInternal::State> m_state;
01096 };
01097 #endif
01098