diff options
author | obo <obo@openoffice.org> | 2010-06-09 08:49:31 +0200 |
---|---|---|
committer | obo <obo@openoffice.org> | 2010-06-09 08:49:31 +0200 |
commit | 88a9312b1c37e10255ba70b313b35ebb5cd84449 (patch) | |
tree | 64e95715a836a27e8d293fd86e31a4234662e44c /oox/source/dump | |
parent | ad928560a6ae81a6c5ae8968e2bc7a5994e19759 (diff) | |
parent | 515244a75e8c196f06864f9c30e3348995d0cba4 (diff) |
CWS-TOOLING: integrate CWS chartpositioning
Diffstat (limited to 'oox/source/dump')
-rw-r--r-- | oox/source/dump/biffdumper.cxx | 130 | ||||
-rw-r--r-- | oox/source/dump/biffdumper.ini | 149 |
2 files changed, 250 insertions, 29 deletions
diff --git a/oox/source/dump/biffdumper.cxx b/oox/source/dump/biffdumper.cxx index ea1944d935a4..d59164413acd 100644 --- a/oox/source/dump/biffdumper.cxx +++ b/oox/source/dump/biffdumper.cxx @@ -1697,7 +1697,7 @@ void WorkbookStreamObject::implDumpRecordBody() case BIFF_ID_CHAXESSET: dumpDec< sal_uInt16 >( "axesset-id", "CHAXESSET-ID" ); - dumpRect< sal_Int32 >( "position", (eBiff <= BIFF4) ? "CONV-TWIP-TO-CM" : "" ); + dumpRect< sal_Int32 >( "inner-plotarea-pos", (eBiff <= BIFF4) ? "CONV-TWIP-TO-CM" : "" ); break; case BIFF_ID_CHAXIS: @@ -1728,11 +1728,6 @@ void WorkbookStreamObject::implDumpRecordBody() dumpHex< sal_uInt16 >( "flags", "CHCHART3D-FLAGS" ); break; - case BIFF_ID_CHECKCOMPAT: - dumpFrHeader( true, true ); - dumpBool< sal_uInt32 >( "check-compatibility" ); - break; - case BIFF_ID_CHDATAFORMAT: dumpDec< sal_Int16 >( "point-idx", "CHDATAFORMAT-POINTIDX" ); dumpDec< sal_Int16 >( "series-idx" ); @@ -1740,6 +1735,11 @@ void WorkbookStreamObject::implDumpRecordBody() if( eBiff >= BIFF5 ) dumpHex< sal_uInt16 >( "flags", "CHDATAFORMAT-FLAGS" ); break; + case BIFF_ID_CHECKCOMPAT: + dumpFrHeader( true, true ); + dumpBool< sal_uInt32 >( "check-compatibility" ); + break; + case BIFF_ID_CHESCHERFORMAT: dumpEmbeddedDff(); break; @@ -1750,9 +1750,9 @@ void WorkbookStreamObject::implDumpRecordBody() break; case BIFF_ID_CHFRAMEPOS: - dumpDec< sal_uInt16 >( "object-type", "CHFRAMEPOS-OBJTYPE" ); - dumpDec< sal_uInt16 >( "size-mode", "CHFRAMEPOS-SIZEMODE" ); - dumpRect< sal_Int32 >( "position", (eBiff <= BIFF4) ? "CONV-TWIP-TO-CM" : "" ); + dumpDec< sal_uInt16 >( "tl-mode", "CHFRAMEPOS-POSMODE" ); + dumpDec< sal_uInt16 >( "br-mode", "CHFRAMEPOS-POSMODE" ); + dumpRectWithGaps< sal_Int16 >( "position", 2 ); break; case BIFF_ID_CHFRBLOCKBEGIN: @@ -1770,6 +1770,25 @@ void WorkbookStreamObject::implDumpRecordBody() dumpUnused( 6 ); break; + case BIFF_ID_CHFRCATEGORYPROPS: + dumpFrHeader( true, false ); + dumpDec< sal_uInt16 >( "label-offset", "CONV-PERCENT" ); + dumpDec< sal_uInt16 >( "alignment", "CHFRCATEGORYPROPS-ALIGN" ); + dumpHex< sal_uInt16 >( "flags", "CHFRCATEGORYPROPS-FLAGS" ); + break; + + case BIFF_ID_CHFREXTPROPS: + { + dumpFrHeader( true, true ); + dumpDec< sal_uInt32 >( "data-size" ); + dumpDec< sal_uInt8 >( "version" ); + dumpUnused( 1 ); + dumpDec< sal_uInt16 >( "parent", "CHFREXTPROPS-PARENT" ); + dumpChFrExtProps(); + dumpUnused( 4 ); + } + break; + case BIFF_ID_CHFRINFO: { dumpFrHeader( true, false ); @@ -1788,6 +1807,45 @@ void WorkbookStreamObject::implDumpRecordBody() dumpUniString( "separator", BIFF_STR_SMARTFLAGS ); break; + case BIFF_ID_CHFRLAYOUT: + dumpFrHeader( true, true ); + dumpHex< sal_uInt32 >( "checksum" ); + dumpHex< sal_uInt16 >( "flags", "CHFRLAYOUT-FLAGS" ); + dumpDec< sal_uInt16 >( "mode-x", "CHFRLAYOUT-MODE" ); + dumpDec< sal_uInt16 >( "mode-y", "CHFRLAYOUT-MODE" ); + dumpDec< sal_uInt16 >( "mode-w", "CHFRLAYOUT-MODE" ); + dumpDec< sal_uInt16 >( "mode-h", "CHFRLAYOUT-MODE" ); + dumpRect< double >( "position" ); + dumpUnused( 2 ); + break; + + case BIFF_ID_CHFRPLOTAREALAYOUT: + dumpFrHeader( true, true ); + dumpHex< sal_uInt32 >( "checksum" ); + dumpHex< sal_uInt16 >( "flags", "CHFRPLOTAREALAYOUT-FLAGS" ); + dumpRect< sal_Int16 >( "position" ); + dumpDec< sal_uInt16 >( "mode-x", "CHFRLAYOUT-MODE" ); + dumpDec< sal_uInt16 >( "mode-y", "CHFRLAYOUT-MODE" ); + dumpDec< sal_uInt16 >( "mode-w", "CHFRLAYOUT-MODE" ); + dumpDec< sal_uInt16 >( "mode-h", "CHFRLAYOUT-MODE" ); + dumpRect< double >( "position" ); + dumpUnused( 2 ); + break; + + case BIFF_ID_CHFRSHAPEPROPS: + dumpFrHeader( true, true ); + dumpDec< sal_uInt16 >( "context" ); + dumpUnused( 2 ); + dumpHex< sal_uInt32 >( "checksum" ); + dumpDec< sal_uInt32 >( "xml-size" ); + break; + + case BIFF_ID_CHFRTEXTPROPS: + dumpFrHeader( true, true ); + dumpHex< sal_uInt32 >( "checksum" ); + dumpDec< sal_uInt32 >( "xml-size" ); + break; + case BIFF_ID_CHFRUNITPROPS: dumpFrHeader( true, false ); dumpDec< sal_Int16 >( "preset", "CHFRUNITPROPS-PRESET" ); @@ -1941,9 +1999,9 @@ void WorkbookStreamObject::implDumpRecordBody() dumpDec< sal_uInt16 >( "fill-mode", "CHTEXT-FILLMODE" ); dumpColorABGR(); dumpRect< sal_Int32 >( "position", (eBiff <= BIFF4) ? "CONV-TWIP-TO-CM" : "" ); - dumpHex< sal_uInt16 >( "flags", "CHTEXT-FLAGS" ); + dumpHex< sal_uInt16 >( "flags-1", "CHTEXT-FLAGS1" ); if( eBiff == BIFF8 ) dumpColorIdx(); - if( eBiff == BIFF8 ) dumpDec< sal_uInt16 >( "placement", "CHTEXT-PLACEMENT" ); + if( eBiff == BIFF8 ) dumpHex< sal_uInt16 >( "flags-2", "CHTEXT-FLAGS2" ); if( eBiff == BIFF8 ) dumpDec< sal_uInt16 >( "rotation", "TEXTROTATION" ); break; @@ -4116,6 +4174,56 @@ void WorkbookStreamObject::dumpObjRecPictFmla( sal_uInt16 nFmlaSize ) } } +void WorkbookStreamObject::dumpChFrExtProps() +{ + BiffInputStream& rStrm = getBiffStream(); + bool bValid = true; + while( bValid && (rStrm.getRemaining() > 4) ) + { + ChFrExtPropInfo aInfo = dumpChFrExtPropHeader(); + IndentGuard aIndGuard( out() ); + switch( aInfo.first ) + { + case 0: // start + case 1: // end + break; + case 2: // bool + dumpBoolean( "value" ); + dumpUnused( 1 ); + break; + case 3: // double + dumpUnused( 4 ); + dumpDec< double >( "value", aInfo.second ); + break; + case 4: // int32 + dumpDec< sal_Int32 >( "value", aInfo.second ); + break; + case 5: // string + dumpUnicodeArray( "value", rStrm.readInt32() ); + break; + case 6: // uint16 + dumpDec< sal_uInt16 >( "value", aInfo.second ); + break; + case 7: // blob + dumpBinary( "value", rStrm.readuInt32() ); + break; + default: + bValid = false; + } + } +} + +WorkbookStreamObject::ChFrExtPropInfo WorkbookStreamObject::dumpChFrExtPropHeader() +{ + MultiItemsGuard aMultiGuard( out() ); + ChFrExtPropInfo aInfo; + aInfo.first = dumpDec< sal_uInt8 >( "datatype", "CHFREXTPROPS-TYPE" ); + dumpUnused( 1 ); + sal_uInt16 nTag = dumpDec< sal_uInt16 >( "tag", "CHFREXTPROPS-TAG" ); + aInfo.second = cfg().getName( "CHFREXTPROPS-TAG-NAMELIST", nTag ); + return aInfo; +} + // ============================================================================ PivotCacheStreamObject::PivotCacheStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, BiffType eBiff, const ::rtl::OUString& rSysFileName ) diff --git a/oox/source/dump/biffdumper.ini b/oox/source/dump/biffdumper.ini index 16c3fb883149..2d1f4bdf7897 100644 --- a/oox/source/dump/biffdumper.ini +++ b/oox/source/dump/biffdumper.ini @@ -293,7 +293,7 @@ end multilist=RECORD-NAMES-BIFF3 include=RECORD-NAMES-BIFF2 # worksheet records - exclude=0x0006,0x0008,0x0009,0x000B,0x0018,0x0020,0x0021,0x0023,0x0024,0x0025,0x0031,0x0036,0x0037,0x003E,0x0043,0x0044,0x0045 + exclude=0x0006,0x0008,0x0009,0x000B,0x0018,0x0020,0x0023,0x0024,0x0025,0x0031,0x0036,0x0037,0x003E,0x0043,0x0044,0x0045 0x0050=,,,,,,BUILTINFMTCOUNT, 0x0058=TOOLBAR,XCT,CRN,FILESHARING,WRITEACCESS,OBJ,UNCALCED,SAFERECALC 0x0060=TEMPLATE,INTL,,OBJECTPROTECT,,,, @@ -383,16 +383,17 @@ multilist=RECORD-NAMES-BIFF8 0x01B0=CFHEADER,CFRULE,DATAVALIDATIONS,,,DCONBINAME,TXO,REFRESHALL 0x01B8=HYPERLINK,NLRDELNAME,CODENAME,PCDFSQLTYPE,PROT4REVPASS,VBAPROJECTEMPTY,DATAVALIDATION, 0x01C0=XL9FILE,RECALCID,INTCACHEDDATA,,,,, + # future records 0x0800=SCREENTIP,,,WEBQRYSETTINGS,WEBQRYTABLES,,, - 0x0850=CHFRINFO,CHFRWRAPPER,CHFRBLOCKBEGIN,CHFRBLOCKEND,,,,CHFRUNITPROPS + 0x0850=CHFRINFO,CHFRWRAPPER,CHFRBLOCKBEGIN,CHFRBLOCKEND,,,CHFRCATEGORYPROPS,CHFRUNITPROPS 0x0858=CHPIVOTREF,CHPIVOTFLAGS,,,,,, 0x0860=,,SHEETEXT,BOOKEXT,,,,SHAREDFEATHEAD 0x0868=,,,CHFRLABELPROPS,,,, 0x0878=,,CFRULE12,CFRULEEXT,XFCRC,XFEXT,, 0x0888=,,,PAGELAYOUTVIEW,CHECKCOMPAT,DXF,TABLESTYLES, 0x0890=,,STYLEEXT,,,,THEME, - 0x0898=,,MTHREADSETTINGS,COMPRESSPICS,HEADERFOOTER,,, - 0x08A0=,,,FORCEFULLCALC,,,, + 0x0898=,,MTHREADSETTINGS,COMPRESSPICS,HEADERFOOTER,CHFRLAYOUT,CHFREXTPROPS,CHFREXTPROPSCONT + 0x08A0=,,,FORCEFULLCALC,CHFRSHAPEPROPS,CHFRTEXTPROPS,,CHFRPLOTAREALAYOUT # chart records 0x1058=,,,,,,,CH3DDATAFORMAT 0x1060=CHFONTBASE,CHPIEEXT,CHLABELRANGE2,CHDATATABLE,CHPLOTGROWTH,CHSERINDEX,CHESCHERFORMAT,CHPIEEXTSETT @@ -829,16 +830,104 @@ end # CHFRAMEPOS ----------------------------------------------------------------- -shortlist=CHFRAMEPOS-OBJTYPE,2,any,,,legend -shortlist=CHFRAMEPOS-SIZEMODE,1,manual,auto +shortlist=CHFRAMEPOS-POSMODE,0,rel-points,abssize-points,parent-dependent,offset-plotarea-size,,chartsize # CHFRBLOCKBEGIN, CHFRBLOCKEND ----------------------------------------------- shortlist=CHFRBLOCK-TYPE,0,axes-set,,text,,axis,type-group,data-table,frame,,legend,legend-exception,,series,chart,data-format,drop-bar +# CHFRCATEGORYPROPS ---------------------------------------------------------- + +shortlist=CHFRCATEGORYPROPS-ALIGN,1,top-left,center,bottom-right + +flagslist=CHFRCATEGORYPROPS-FLAGS + ignore=0xFFFE + 0x0001=auto-label-frequency +end + +# CHFREXTPROPS --------------------------------------------------------------- + +constlist=CHFREXTPROPS-PARENT + 0x0001=log-scaling + 0x0002=style + 0x0004=category-scaling + 0x0005=chart-props + 0x000F=legend + 0x0013=marker + 0x0016=plot-area + 0x0019=chart-title + 0x0037=3d-props +end + +constlist=CHFREXTPROPS-TYPE + 0=start + 1=end + 2=bool + 3=double + 4=int32 + 5=string + 6=uint16 + 7=blob +end + +constlist=CHFREXTPROPS-TAG + 0x0000=log-base + 0x0003=style + 0x001E=chart-formatting + 0x0020=text-formatting + 0x0022=symbol-type + 0x002E=no-multi-level + 0x002F=overlay + 0x0033=theme-override + 0x0034=color-mapping-override + 0x0035=backwall-thickness + 0x0036=floor-thickness + 0x004D=perspective + 0x004E=rotation-x + 0x004F=rotation-y + 0x0050=right-angled-axes-off + 0x0052=tick-mark-skip + 0x0051=tick-label-skip + 0x0053=major-unit + 0x0054=minor-unit + 0x0055=max + 0x0056=min + 0x0059=side-wall + 0x005B=show-data-labels-over-max + 0x005C=tick-label-pos + 0x005E=pie-combination + 0x005F=basetime-unit + 0x0064=format-code + 0x0065=height-percent + 0x0066=display-blanks-as + 0x006A=major-unit-type + 0x006B=minor-unit-type + 0x0076=edit-language +end + +constlist=CHFREXTPROPS-TAG-NAMELIST + default= + 0x0022=CHFREXTPROPS-SYMBOLTYPE + 0x0035=CONV-PERCENT + 0x0036=CONV-PERCENT + 0x004E=CONV-DEG + 0x004F=CONV-DEG + 0x005C=CHFREXTPROPS-TICKLABELPOS + 0x005F=CHFREXTPROPS-TIMEUNIT + 0x0065=CONV-PERCENT + 0x0066=CHFREXTPROPS-DISPBLANKSAS + 0x006A=CHFREXTPROPS-TIMEUNIT + 0x006B=CHFREXTPROPS-TIMEUNIT +end + +shortlist=CHFREXTPROPS-DISPBLANKSAS,0x0067,gap,,spanned +shortlist=CHFREXTPROPS-SYMBOLTYPE,0x0023,none,diamond,square,triangle,x,star,dot,dash,circle,plus +shortlist=CHFREXTPROPS-TICKLABELPOS,0x005D,center +shortlist=CHFREXTPROPS-TIMEUNIT,0x0060,days,months,years + # CHFRINFO ------------------------------------------------------------------- -shortlist=CHFRINFO-APPVERSION,9,excel-2000,excel-xp-2003,excel-2007 +shortlist=CHFRINFO-APPVERSION,9,excel-2000,excel-xp-2003,,excel-2007 # CHFRLABELPROPS ------------------------------------------------------------- @@ -850,6 +939,26 @@ flagslist=CHFRLABELPROPS-FLAGS 0x0010=show-bubble end +# CHFRLAYOUT ----------------------------------------------------------------- + +combilist=CHFRLAYOUT-FLAGS + 0x001E=uint8,dec,legend-pos,CHFRLAYOUT-LEGENDPOS +end + +shortlist=CHFRLAYOUT-LEGENDPOS,0,bottom,top-right,top,right,left + +shortlist=CHFRLAYOUT-MODE,0,auto,factor,egde + +# CHFRPLOTAREALAYOUT --------------------------------------------------------- + +flagslist=CHFRPLOTAREALAYOUT-FLAGS + 0x0001=!outer!inner +end + +shortlist=CHFRLAYOUT-LEGENDPOS,0,bottom,top-right,top,right,left + +shortlist=CHFRLAYOUT-MODE,0,auto,factor,egde + # CHFRUNITPROPS -------------------------------------------------------------- shortlist=CHFRUNITPROPS-PRESET,-1,manual,none,hundred,thousand,10000,100000,million,10-million,100-million,billion,trillion @@ -881,7 +990,7 @@ end # CHLEGEND ------------------------------------------------------------------- -shortlist=CHLEGEND-DOCKPOS,0,bottom,top-left,top,right,left,,,manual +shortlist=CHLEGEND-DOCKPOS,0,bottom,top-right,top,right,left,,,manual shortlist=CHLEGEND-SPACING,0,close,medium,open flagslist=CHLEGEND-FLAGS @@ -909,6 +1018,7 @@ shortlist=CHLINEFORMAT-LINEWEIGHT,-1,hair,thin,medium,thick flagslist=CHLINEFORMAT-FLAGS 0x0001=auto 0x0004=axis-enabled + 0x0008=system-color end # CHMARKERFORMAT ------------------------------------------------------------- @@ -1040,7 +1150,7 @@ shortlist=CHTEXT-HORALIGN,1,left,center,right,block,distribute shortlist=CHTEXT-VERALIGN,1,top,center,bottom,block,distribute shortlist=CHTEXT-FILLMODE,1,transparent,opaque -flagslist=CHTEXT-FLAGS-BIFF2 +flagslist=CHTEXT-FLAGS1-BIFF2 0x0001=auto-color 0x0002=show-symbol 0x0004=show-value @@ -1051,28 +1161,31 @@ flagslist=CHTEXT-FLAGS-BIFF2 0x0080=auto-fill end -combilist=CHTEXT-FLAGS-BIFF3 - include=CHTEXT-FLAGS-BIFF2 +combilist=CHTEXT-FLAGS1-BIFF3 + include=CHTEXT-FLAGS1-BIFF2 0x0700=uint8,dec,orientation,TEXTORIENTATION end -combilist=CHTEXT-FLAGS-BIFF5 - include=CHTEXT-FLAGS-BIFF3 +combilist=CHTEXT-FLAGS1-BIFF5 + include=CHTEXT-FLAGS1-BIFF3 0x0800=show-categ-percent 0x1000=show-percent end -combilist=CHTEXT-FLAGS-BIFF8 - include=CHTEXT-FLAGS-BIFF5 +combilist=CHTEXT-FLAGS1-BIFF8 + include=CHTEXT-FLAGS1-BIFF5 0x2000=show-bubble-size 0x4000=show-categ end -multilist=CHTEXT-PLACEMENT - default= - 0=context,outside,inside,center,axis,above,below,left,right,auto,manual +combilist=CHTEXT-FLAGS2 + ignore=0x3FF0 + 0x000F=uint8,dec,placement,CHTEXT-PLACEMENT + 0xC000=uint8,dec,text-dir,XF-TEXTDIRECTION end +shortlist=CHTEXT-PLACEMENT,0,context,outside,inside,center,axis,above,below,left,right,auto,manual + # CHTICK --------------------------------------------------------------------- shortlist=CHTICK-TYPE,0,none,inside,outside,both |