sw/source/filter/ww8/sprmids.hxx | 165 +++ sw/source/filter/ww8/ww8par6.cxx | 1837 +++++++++++++++------------------------ 2 files changed, 906 insertions(+), 1096 deletions(-)
New commits: commit 42dafb5c7bd218f4d368fbd1113fa4a0fcd7f0cb Author: Mike Kaganski <mike.kagan...@collabora.com> Date: Wed Nov 29 13:01:05 2017 +0300 ww8: use sprm names instead of numbers Added sprms for Word 6 binary format; removed obsolete comments. Change-Id: Iac88f8df9397f81586e39c1cf152c762be8f9aed Reviewed-on: https://gerrit.libreoffice.org/45474 Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Tested-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sw/source/filter/ww8/sprmids.hxx b/sw/source/filter/ww8/sprmids.hxx index 6a97a405249f..09cddb24a960 100644 --- a/sw/source/filter/ww8/sprmids.hxx +++ b/sw/source/filter/ww8/sprmids.hxx @@ -73,6 +73,171 @@ const sal_uInt16 LN_TSetShd80 = 0x7627; const sal_uInt16 LN_TSetShdOdd80 = 0x7628; const sal_uInt16 LN_TDiagLine = 0xd62a; +namespace v6 +{ +// Microsoft Word for Windows 6.0 Binary File Format + // Parameter size +const sal_uInt16 sprmPIstd = 2; // short +const sal_uInt16 sprmPIstdPermute = 3; // variable +const sal_uInt16 sprmPIncLv1 = 4; // byte +const sal_uInt16 sprmPJc = 5; // byte +const sal_uInt16 sprmPFSideBySide = 6; // byte +const sal_uInt16 sprmPFKeep = 7; // byte +const sal_uInt16 sprmPFKeepFollow = 8; // byte +const sal_uInt16 sprmPPageBreakBefore = 9; // byte +const sal_uInt16 sprmPBrcl = 10; // byte +const sal_uInt16 sprmPBrcp = 11; // byte +const sal_uInt16 sprmPAnld = 12; // variable +const sal_uInt16 sprmPNLvlAnm = 13; // byte +const sal_uInt16 sprmPFNoLineNumb = 14; // byte +const sal_uInt16 sprmPChgTabsPapx = 15; // variable +const sal_uInt16 sprmPDxaRight = 16; // word +const sal_uInt16 sprmPDxaLeft = 17; // word +const sal_uInt16 sprmPNest = 18; // word +const sal_uInt16 sprmPDxaLeft1 = 19; // word +const sal_uInt16 sprmPDyaLine = 20; // long +const sal_uInt16 sprmPDyaBefore = 21; // word +const sal_uInt16 sprmPDyaAfter = 22; // word +const sal_uInt16 sprmPChgTabs = 23; // variable +const sal_uInt16 sprmPFInTable = 24; // byte +const sal_uInt16 sprmPTtp = 25; // byte +const sal_uInt16 sprmPDxaAbs = 26; // word +const sal_uInt16 sprmPDyaAbs = 27; // word +const sal_uInt16 sprmPDxaWidth = 28; // word +const sal_uInt16 sprmPPc = 29; // byte +const sal_uInt16 sprmPBrcTop10 = 30; // word +const sal_uInt16 sprmPBrcLeft10 = 31; // word +const sal_uInt16 sprmPBrcBottom10 = 32; // word +const sal_uInt16 sprmPBrcRight10 = 33; // word +const sal_uInt16 sprmPBrcBetween10 = 34; // word +const sal_uInt16 sprmPBrcBar10 = 35; // word +const sal_uInt16 sprmPFromText10 = 36; // word +const sal_uInt16 sprmPWr = 37; // byte +const sal_uInt16 sprmPBrcTop = 38; // word +const sal_uInt16 sprmPBrcLeft = 39; // word +const sal_uInt16 sprmPBrcBottom = 40; // word +const sal_uInt16 sprmPBrcRight = 41; // word +const sal_uInt16 sprmPBrcBetween = 42; // word +const sal_uInt16 sprmPBrcBar = 43; // word +const sal_uInt16 sprmPFNoAutoHyph = 44; // byte +const sal_uInt16 sprmPWHeightAbs = 45; // word +const sal_uInt16 sprmPDcs = 46; // short +const sal_uInt16 sprmPShd = 47; // word +const sal_uInt16 sprmPDyaFromText = 48; // word +const sal_uInt16 sprmPDxaFromText = 49; // word +const sal_uInt16 sprmPFLocked = 50; // byte +const sal_uInt16 sprmPFWidowControl = 51; // byte +const sal_uInt16 sprmPRuler = 52; +const sal_uInt16 sprmCFStrikeRM = 65; // bit +const sal_uInt16 sprmCFRMark = 66; // bit +const sal_uInt16 sprmCFFldVanish = 67; // bit +const sal_uInt16 sprmCPicLocation = 68; // variable +const sal_uInt16 sprmCIbstRMark = 69; // short +const sal_uInt16 sprmCDttmRMark = 70; // long +const sal_uInt16 sprmCFData = 71; // bit +const sal_uInt16 sprmCRMReason = 72; // short +const sal_uInt16 sprmCChse = 73; // 3 bytes +const sal_uInt16 sprmCSymbol = 74; // variable +const sal_uInt16 sprmCFOle2 = 75; // bit +const sal_uInt16 sprmCIstd = 80; // short +const sal_uInt16 sprmCIstdPermute = 81; // variable +const sal_uInt16 sprmCDefault = 82; // variable +const sal_uInt16 sprmCPlain = 83; // 0 +const sal_uInt16 sprmCFBold = 85; // byte +const sal_uInt16 sprmCFItalic = 86; // byte +const sal_uInt16 sprmCFStrike = 87; // byte +const sal_uInt16 sprmCFOutline = 88; // byte +const sal_uInt16 sprmCFShadow = 89; // byte +const sal_uInt16 sprmCFSmallCaps = 90; // byte +const sal_uInt16 sprmCFCaps = 91; // byte +const sal_uInt16 sprmCFVanish = 92; // byte +const sal_uInt16 sprmCFtc = 93; // word +const sal_uInt16 sprmCKul = 94; // byte +const sal_uInt16 sprmCSizePos = 95; // 3 bytes +const sal_uInt16 sprmCDxaSpace = 96; // word +const sal_uInt16 sprmCLid = 97; // word +const sal_uInt16 sprmCIco = 98; // byte +const sal_uInt16 sprmCHps = 99; // byte +const sal_uInt16 sprmCHpsInc = 100; // byte +const sal_uInt16 sprmCHpsPos = 101; // byte +const sal_uInt16 sprmCHpsPosAdj = 102; // byte +const sal_uInt16 sprmCMajority = 103; // variable +const sal_uInt16 sprmCIss = 104; // byte +const sal_uInt16 sprmCHpsNew50 = 105; // variable +const sal_uInt16 sprmCHpsInc1 = 106; // variable +const sal_uInt16 sprmCHpsKern = 107; // short +const sal_uInt16 sprmCMajority50 = 108; // variable +const sal_uInt16 sprmCHpsMul = 109; // short +const sal_uInt16 sprmCCondHyhen = 110; // short +const sal_uInt16 sprmCFSpec = 117; // bit +const sal_uInt16 sprmCFObj = 118; // bit +const sal_uInt16 sprmPicBrcl = 119; // byte +const sal_uInt16 sprmPicScale = 120; // length +const sal_uInt16 sprmPicBrcTop = 121; // word +const sal_uInt16 sprmPicBrcLeft = 122; // word +const sal_uInt16 sprmPicBrcBottom = 123; // word +const sal_uInt16 sprmPicBrcRight = 124; // word +const sal_uInt16 sprmSScnsPgn = 131; // byte +const sal_uInt16 sprmSiHeadingPgn = 132; // byte +const sal_uInt16 sprmSOlstAnm = 133; // variable +const sal_uInt16 sprmSDxaColWidth = 136; // 3 bytes +const sal_uInt16 sprmSDxaColSpacing = 137; // 3 bytes +const sal_uInt16 sprmSFEvenlySpaced = 138; // byte +const sal_uInt16 sprmSFProtected = 139; // byte +const sal_uInt16 sprmSDmBinFirst = 140; // word +const sal_uInt16 sprmSDmBinOther = 141; // word +const sal_uInt16 sprmSBkc = 142; // byte +const sal_uInt16 sprmSFTitlePage = 143; // byte +const sal_uInt16 sprmSCcolumns = 144; // word +const sal_uInt16 sprmSDxaColumns = 145; // word +const sal_uInt16 sprmSFAutoPgn = 146; // byte +const sal_uInt16 sprmSNfcPgn = 147; // byte +const sal_uInt16 sprmSDyaPgn = 148; // short +const sal_uInt16 sprmSDxaPgn = 149; // short +const sal_uInt16 sprmSFPgnRestart = 150; // byte +const sal_uInt16 sprmSFEndnote = 151; // byte +const sal_uInt16 sprmSLnc = 152; // byte +const sal_uInt16 sprmSGprfIhdt = 153; // byte +const sal_uInt16 sprmSNLnnMod = 154; // word +const sal_uInt16 sprmSDxaLnn = 155; // word +const sal_uInt16 sprmSDyaHdrTop = 156; // word +const sal_uInt16 sprmSDyaHdrBottom = 157; // word +const sal_uInt16 sprmSLBetween = 158; // byte +const sal_uInt16 sprmSVjc = 159; // byte +const sal_uInt16 sprmSLnnMin = 160; // word +const sal_uInt16 sprmSPgnStart = 161; // word +const sal_uInt16 sprmSBOrientation = 162; // byte +const sal_uInt16 sprmSBCustomize = 163; +const sal_uInt16 sprmSXaPage = 164; // word +const sal_uInt16 sprmSYaPage = 165; // word +const sal_uInt16 sprmSDxaLeft = 166; // word +const sal_uInt16 sprmSDxaRight = 167; // word +const sal_uInt16 sprmSDyaTop = 168; // word +const sal_uInt16 sprmSDyaBottom = 169; // word +const sal_uInt16 sprmSDzaGutter = 170; // word +const sal_uInt16 sprmSDMPaperReq = 171; // word +const sal_uInt16 sprmTJc = 182; // word (low +const sal_uInt16 sprmTDxaLeft = 183; // word +const sal_uInt16 sprmTDxaGapHalf = 184; // word +const sal_uInt16 sprmTFCantSplit = 185; // byte +const sal_uInt16 sprmTTableHeader = 186; // byte +const sal_uInt16 sprmTTableBorders = 187; // 12 bytes +const sal_uInt16 sprmTDefTable10 = 188; // variable +const sal_uInt16 sprmTDyaRowHeight = 189; // word +const sal_uInt16 sprmTDefTable = 190; +const sal_uInt16 sprmTDefTableShd = 191; +const sal_uInt16 sprmTTlp = 192; // 4 bytes +const sal_uInt16 sprmTSetBrc = 193; // 5 bytes +const sal_uInt16 sprmTInsert = 194; // 4 bytes +const sal_uInt16 sprmTDelete = 195; // word +const sal_uInt16 sprmTDxaCol = 196; // 4 bytes +const sal_uInt16 sprmTMerge = 197; // word +const sal_uInt16 sprmTSplit = 198; // word +const sal_uInt16 sprmTSetBrc10 = 199; // 5 bytes +const sal_uInt16 sprmTSetShd = 200; // 4 bytes +const sal_uInt16 sprmMax = 208; +} + // [MS-DOC] - v20170112 Section 2.2.5.1 enum class sgc { diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 3678807b542f..c33b07057738 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -856,22 +856,22 @@ void wwSectionManager::CreateSep(const long nTextPos) static const sal_uInt16 aVer67Ids0[] = { - /*sprmSBkc*/ 142, - /*sprmSFTitlePage*/ 143, - /*sprmSNfcPgn*/ 147, - /*sprmSCcolumns*/ 144, - /*sprmSDxaColumns*/ 145, - /*sprmSLBetween*/ 158 + NS_sprm::v6::sprmSBkc, + NS_sprm::v6::sprmSFTitlePage, + NS_sprm::v6::sprmSNfcPgn, + NS_sprm::v6::sprmSCcolumns, + NS_sprm::v6::sprmSDxaColumns, + NS_sprm::v6::sprmSLBetween }; static const sal_uInt16 aVer8Ids0[] = { - /*sprmSBkc*/ 0x3009, - /*sprmSFTitlePage*/ 0x300A, - /*sprmSNfcPgn*/ 0x300E, - /*sprmSCcolumns*/ 0x500B, - /*sprmSDxaColumns*/ 0x900C, - /*sprmSLBetween*/ 0x3019 + NS_sprm::sprmSBkc, + NS_sprm::sprmSFTitlePage, + NS_sprm::sprmSNfcPgn, + NS_sprm::sprmSCcolumns, + NS_sprm::sprmSDxaColumns, + NS_sprm::sprmSLBetween }; const sal_uInt16* pIds = eVer <= ww::eWW2 ? aVer2Ids0 : eVer <= ww::eWW7 ? aVer67Ids0 : aVer8Ids0; @@ -899,10 +899,10 @@ void wwSectionManager::CreateSep(const long nTextPos) if (aNewSection.maSep.nfcPgn > 4) aNewSection.maSep.nfcPgn = 0; - aNewSection.maSep.fUnlocked = eVer > ww::eWW2 ? ReadBSprm(pSep, (eVer <= ww::eWW7 ? 139 : 0x3006), 0 ) : 0; + aNewSection.maSep.fUnlocked = eVer > ww::eWW2 ? ReadBSprm(pSep, (eVer <= ww::eWW7 ? NS_sprm::v6::sprmSFProtected : NS_sprm::sprmSFProtected), 0 ) : 0; // sprmSFBiDi - aNewSection.maSep.fBiDi = eVer >= ww::eWW8 ? ReadBSprm(pSep, 0x3228, 0) : 0; + aNewSection.maSep.fBiDi = eVer >= ww::eWW8 ? ReadBSprm(pSep, NS_sprm::sprmSFBiDi, 0) : 0; // Reading section property sprmSCcolumns - one less than the number of columns in the section. // It must be less than MAX_NO_OF_SEP_COLUMNS according the WW8 specification. @@ -923,15 +923,15 @@ void wwSectionManager::CreateSep(const long nTextPos) { // sprmSFEvenlySpaced aNewSection.maSep.fEvenlySpaced = - sal_uInt8(ReadBSprm(pSep, (eVer <= ww::eWW7 ? 138 : 0x3005), 1) != 0); + sal_uInt8(ReadBSprm(pSep, (eVer <= ww::eWW7 ? NS_sprm::v6::sprmSFEvenlySpaced : NS_sprm::sprmSFEvenlySpaced), 1) != 0); if (aNewSection.maSep.ccolM1 > 0 && !aNewSection.maSep.fEvenlySpaced) { int nColumnDataIdx = 0; aNewSection.maSep.rgdxaColumnWidthSpacing[nColumnDataIdx] = 0; - const sal_uInt16 nColumnWidthSprmId = ( eVer <= ww::eWW7 ? 136 : 0xF203 ); - const sal_uInt16 nColumnSpacingSprmId = ( eVer <= ww::eWW7 ? 137 : 0xF204 ); + const sal_uInt16 nColumnWidthSprmId = ( eVer <= ww::eWW7 ? NS_sprm::v6::sprmSDxaColWidth : NS_sprm::sprmSDxaColWidth); + const sal_uInt16 nColumnSpacingSprmId = ( eVer <= ww::eWW7 ? NS_sprm::v6::sprmSDxaColSpacing : NS_sprm::sprmSDxaColSpacing); const sal_uInt8 nColumnCount = static_cast< sal_uInt8 >(aNewSection.maSep.ccolM1 + 1); for ( sal_uInt8 nColumn = 0; nColumn < nColumnCount; ++nColumn ) { @@ -977,30 +977,30 @@ void wwSectionManager::CreateSep(const long nTextPos) static const sal_uInt16 aVer67Ids1[] = { - /*sprmSBOrientation*/ 162, - /*sprmSXaPage*/ 164, - /*sprmSYaPage*/ 165, - /*sprmSDxaLeft*/ 166, - /*sprmSDxaRight*/ 167, - /*sprmSDzaGutter*/ 170, - /*sprmSFPgnRestart*/ 150, - /*sprmSPgnStart*/ 161, - /*sprmSDmBinFirst*/ 140, - /*sprmSDmBinOther*/ 141 + NS_sprm::v6::sprmSBOrientation, + NS_sprm::v6::sprmSXaPage, + NS_sprm::v6::sprmSYaPage, + NS_sprm::v6::sprmSDxaLeft, + NS_sprm::v6::sprmSDxaRight, + NS_sprm::v6::sprmSDzaGutter, + NS_sprm::v6::sprmSFPgnRestart, + NS_sprm::v6::sprmSPgnStart, + NS_sprm::v6::sprmSDmBinFirst, + NS_sprm::v6::sprmSDmBinOther }; static const sal_uInt16 aVer8Ids1[] = { - /*sprmSBOrientation*/ 0x301d, - /*sprmSXaPage*/ 0xB01F, - /*sprmSYaPage*/ 0xB020, - /*sprmSDxaLeft*/ 0xB021, - /*sprmSDxaRight*/ 0xB022, - /*sprmSDzaGutter*/ 0xB025, - /*sprmSFPgnRestart*/ 0x3011, - /*sprmSPgnStart97*/ 0x501C, - /*sprmSDmBinFirst*/ 0x5007, - /*sprmSDmBinOther*/ 0x5008 + NS_sprm::sprmSBOrientation, + NS_sprm::sprmSXaPage, + NS_sprm::sprmSYaPage, + NS_sprm::sprmSDxaLeft, + NS_sprm::sprmSDxaRight, + NS_sprm::sprmSDzaGutter, + NS_sprm::sprmSFPgnRestart, + NS_sprm::sprmSPgnStart97, + NS_sprm::sprmSDmBinFirst, + NS_sprm::sprmSDmBinOther }; pIds = eVer <= ww::eWW2 ? aVer2Ids1 : eVer <= ww::eWW7 ? aVer67Ids1 : aVer8Ids1; @@ -1031,7 +1031,7 @@ void wwSectionManager::CreateSep(const long nTextPos) aNewSection.maSep.dzaGutter = ReadUSprm( pSep, pIds[5], 0); - aNewSection.maSep.fRTLGutter = static_cast< sal_uInt8 >(eVer >= ww::eWW8 ? ReadUSprm( pSep, 0x322A, 0 ) : 0); + aNewSection.maSep.fRTLGutter = static_cast< sal_uInt8 >(eVer >= ww::eWW8 ? ReadUSprm( pSep, NS_sprm::sprmSFRTLGutter, 0 ) : 0); // Page Number Restarts - sprmSFPgnRestart aNewSection.maSep.fPgnRestart = ReadBSprm(pSep, pIds[6], 0); @@ -1042,11 +1042,11 @@ void wwSectionManager::CreateSep(const long nTextPos) if (eVer >= ww::eWW6) { - aRes = pSep->HasSprm(eVer <= ww::eWW7 ? 132 : 0x3001); + aRes = pSep->HasSprm(eVer <= ww::eWW7 ? NS_sprm::v6::sprmSiHeadingPgn : NS_sprm::sprmSiHeadingPgn); if (aRes.pSprm && aRes.nRemainingData >= 1) aNewSection.maSep.iHeadingPgn = *aRes.pSprm; - aRes = pSep->HasSprm(eVer <= ww::eWW7 ? 131 : 0x3000); + aRes = pSep->HasSprm(eVer <= ww::eWW7 ? NS_sprm::v6::sprmSScnsPgn : NS_sprm::sprmScnsPgn); if (aRes.pSprm && aRes.nRemainingData >= 1) aNewSection.maSep.cnsPgn = *aRes.pSprm; } @@ -1078,25 +1078,25 @@ void wwSectionManager::CreateSep(const long nTextPos) static const sal_uInt16 aVer67Ids2[] = { - /*sprmSDyaTop*/ 168, - /*sprmSDyaBottom*/ 169, - /*sprmSDyaHdrTop*/ 156, - /*sprmSDyaHdrBottom*/ 157, - /*sprmSNLnnMod*/ 154, - /*sprmSLnc*/ 152, - /*sprmSDxaLnn*/ 155, - /*sprmSLnnMin*/ 160 + NS_sprm::v6::sprmSDyaTop, + NS_sprm::v6::sprmSDyaBottom, + NS_sprm::v6::sprmSDyaHdrTop, + NS_sprm::v6::sprmSDyaHdrBottom, + NS_sprm::v6::sprmSNLnnMod, + NS_sprm::v6::sprmSLnc, + NS_sprm::v6::sprmSDxaLnn, + NS_sprm::v6::sprmSLnnMin }; static const sal_uInt16 aVer8Ids2[] = { - /*sprmSDyaTop*/ 0x9023, - /*sprmSDyaBottom*/ 0x9024, - /*sprmSDyaHdrTop*/ 0xB017, - /*sprmSDyaHdrBottom*/ 0xB018, - /*sprmSNLnnMod*/ 0x5015, - /*sprmSLnc*/ 0x3013, - /*sprmSDxaLnn*/ 0x9016, - /*sprmSLnnMin*/ 0x501B + NS_sprm::sprmSDyaTop, + NS_sprm::sprmSDyaBottom, + NS_sprm::sprmSDyaHdrTop, + NS_sprm::sprmSDyaHdrBottom, + NS_sprm::sprmSNLnnMod, + NS_sprm::sprmSLnc, + NS_sprm::sprmSDxaLnn, + NS_sprm::sprmSLnnMin }; pIds = eVer <= ww::eWW2 ? aVer2Ids2 : eVer <= ww::eWW7 ? aVer67Ids2 : aVer8Ids2; @@ -1108,15 +1108,15 @@ void wwSectionManager::CreateSep(const long nTextPos) if (eVer >= ww::eWW8) { - aNewSection.maSep.wTextFlow = ReadUSprm(pSep, 0x5033, 0); - aNewSection.maSep.clm = ReadUSprm( pSep, 0x5032, 0 ); - aNewSection.maSep.dyaLinePitch = ReadUSprm(pSep, 0x9031, 360); - aRes = pSep->HasSprm(0x7030); + aNewSection.maSep.wTextFlow = ReadUSprm(pSep, NS_sprm::sprmSTextFlow, 0); + aNewSection.maSep.clm = ReadUSprm( pSep, NS_sprm::sprmSClm, 0 ); + aNewSection.maSep.dyaLinePitch = ReadUSprm(pSep, NS_sprm::sprmSDyaLinePitch, 360); + aRes = pSep->HasSprm(NS_sprm::sprmSDxtCharSpace); if (aRes.pSprm && aRes.nRemainingData >= 4) aNewSection.maSep.dxtCharSpace = SVBT32ToUInt32(aRes.pSprm); //sprmSPgbProp - sal_uInt16 pgbProp = ReadSprm( pSep, 0x522F, 0 ); + sal_uInt16 pgbProp = ReadSprm( pSep, NS_sprm::sprmSPgbProp, 0 ); aNewSection.maSep.pgbApplyTo = pgbProp & 0x0007; aNewSection.maSep.pgbPageDepth = (pgbProp & 0x0018) >> 3; aNewSection.maSep.pgbOffsetFrom = (pgbProp & 0x00E0) >> 5; @@ -1291,13 +1291,29 @@ static sal_uInt8 lcl_ReadBorders(bool bVer67, WW8_BRCVer9* brc, WW8PLCFx_Cp_FKP* else { - static const sal_uInt16 aVer67Ids[5] = { 38, 39, 40, 41, 42 }; - - static const sal_uInt16 aVer8Ids[5] = - { 0x6424, 0x6425, 0x6426, 0x6427, 0x6428 }; - - static const sal_uInt16 aVer9Ids[5] = - { 0xC64E, 0xC64F, 0xC650, 0xC651, 0xC652 }; + static const sal_uInt16 aVer67Ids[5] = { + NS_sprm::v6::sprmPBrcTop, + NS_sprm::v6::sprmPBrcLeft, + NS_sprm::v6::sprmPBrcBottom, + NS_sprm::v6::sprmPBrcRight, + NS_sprm::v6::sprmPBrcBetween + }; + + static const sal_uInt16 aVer8Ids[5] = { + NS_sprm::sprmPBrcTop80, + NS_sprm::sprmPBrcLeft80, + NS_sprm::sprmPBrcBottom80, + NS_sprm::sprmPBrcRight80, + NS_sprm::sprmPBrcBetween80 + }; + + static const sal_uInt16 aVer9Ids[5] = { + NS_sprm::sprmPBrcTop, + NS_sprm::sprmPBrcLeft, + NS_sprm::sprmPBrcBottom, + NS_sprm::sprmPBrcRight, + NS_sprm::sprmPBrcBetween + }; if( pPap ) { @@ -1539,7 +1555,7 @@ inline bool SetValSprm( sal_Int16* pVar, const WW8RStyle* pStyle, sal_uInt16 nId } /* -#i1930 revealed that sprm 0x360D as used in tables can affect the frame +#i1930 revealed that sprm 0x360D (sprmTPc) as used in tables can affect the frame around the table. Its full structure is not fully understood as yet. */ void WW8FlyPara::ApplyTabPos(const WW8_TablePos *pTabPos) @@ -1606,7 +1622,7 @@ void WW8FlyPara::Read(sal_uInt8 nOrigSp29, WW8PLCFx_Cp_FKP* pPap) SetValSprm( &nUpMgn, pPap, 48 ); // U-border //sprmPDyaFromText SetValSprm( &nLoMgn, pPap, 48 ); // D-border //sprmPDyaFromText - SprmResult aS = pPap->HasSprm(37); //sprmPWr + SprmResult aS = pPap->HasSprm(NS_sprm::v6::sprmPWr); if (aS.pSprm && aS.nRemainingData >= 1) nSp37 = *aS.pSprm; } @@ -1675,7 +1691,7 @@ void WW8FlyPara::ReadFull(sal_uInt8 nOrigSp29, SwWW8ImplReader* pIo) // in APO ? //sprmPPc - SprmResult aS = pPap->HasSprm( bVer67 ? 29 : 0x261B ); + SprmResult aS = pPap->HasSprm( bVer67 ? NS_sprm::v6::sprmPPc : NS_sprm::sprmPPc); // no -> graphics Apo if (!aS.pSprm || aS.nRemainingData < 1) @@ -1713,33 +1729,33 @@ void WW8FlyPara::Read(sal_uInt8 nOrigSp29, WW8RStyle const * pStyle) { if (bVer67) { - SetValSprm( &nSp26, pStyle, 26 ); // X-position + SetValSprm( &nSp26, pStyle, NS_sprm::v6::sprmPDxaAbs ); // X-position //set in me or in parent style - mbVertSet |= SetValSprm(&nSp27, pStyle, 27); // Y-position - SetValSprm( &nSp45, pStyle, 45 ); // height - SetValSprm( &nSp28, pStyle, 28 ); // width - SetValSprm( &nLeMgn, pStyle, 49 ); // L-border - SetValSprm( &nRiMgn, pStyle, 49 ); // R-border - SetValSprm( &nUpMgn, pStyle, 48 ); // U-border - SetValSprm( &nLoMgn, pStyle, 48 ); // D-border - - SprmResult aS = pStyle->HasParaSprm( 37 ); // wrapping + mbVertSet |= SetValSprm(&nSp27, pStyle, NS_sprm::v6::sprmPDyaAbs); // Y-position + SetValSprm( &nSp45, pStyle, NS_sprm::v6::sprmPWHeightAbs ); // height + SetValSprm( &nSp28, pStyle, NS_sprm::v6::sprmPDxaWidth ); // width + SetValSprm( &nLeMgn, pStyle, NS_sprm::v6::sprmPDxaFromText ); // L-border + SetValSprm( &nRiMgn, pStyle, NS_sprm::v6::sprmPDxaFromText ); // R-border + SetValSprm( &nUpMgn, pStyle, NS_sprm::v6::sprmPDyaFromText ); // U-border + SetValSprm( &nLoMgn, pStyle, NS_sprm::v6::sprmPDyaFromText ); // D-border + + SprmResult aS = pStyle->HasParaSprm( NS_sprm::v6::sprmPWr ); // wrapping if (aS.pSprm && aS.nRemainingData >= 1) nSp37 = *aS.pSprm; } else { - SetValSprm( &nSp26, pStyle, 0x8418 ); // X-position + SetValSprm( &nSp26, pStyle, NS_sprm::sprmPDxaAbs ); // X-position //set in me or in parent style - mbVertSet |= SetValSprm(&nSp27, pStyle, 0x8419); // Y-position - SetValSprm( &nSp45, pStyle, 0x442B ); // height - SetValSprm( &nSp28, pStyle, 0x841A ); // width - SetValSprm( &nLeMgn, pStyle, 0x842F ); // L-border - SetValSprm( &nRiMgn, pStyle, 0x842F ); // R-border - SetValSprm( &nUpMgn, pStyle, 0x842E ); // U-border - SetValSprm( &nLoMgn, pStyle, 0x842E ); // D-border - - SprmResult aS = pStyle->HasParaSprm( 0x2423 ); // wrapping + mbVertSet |= SetValSprm(&nSp27, pStyle, NS_sprm::sprmPDyaAbs); // Y-position + SetValSprm( &nSp45, pStyle, NS_sprm::sprmPWHeightAbs ); // height + SetValSprm( &nSp28, pStyle, NS_sprm::sprmPDxaWidth ); // width + SetValSprm( &nLeMgn, pStyle, NS_sprm::sprmPDxaFromText ); // L-border + SetValSprm( &nRiMgn, pStyle, NS_sprm::sprmPDxaFromText ); // R-border + SetValSprm( &nUpMgn, pStyle, NS_sprm::sprmPDyaFromText ); // U-border + SetValSprm( &nLoMgn, pStyle, NS_sprm::sprmPDyaFromText ); // D-border + + SprmResult aS = pStyle->HasParaSprm( NS_sprm::sprmPWr ); // wrapping if (aS.pSprm && aS.nRemainingData >= 1) nSp37 = *aS.pSprm; } @@ -1808,7 +1824,7 @@ bAutoWidth(false), bToggelPos(false) { //#i119466 mapping "Around" wrap setting to "Parallel" for table - const bool bIsTable = rIo.m_xPlcxMan->HasParaSprm(0x2416).pSprm; + const bool bIsTable = rIo.m_xPlcxMan->HasParaSprm(NS_sprm::sprmPFInTable).pSprm; if (bIsTable && rWW.nSp37 == 2) eSurround = css::text::WrapTextMode_PARALLEL; @@ -2317,9 +2333,9 @@ bool SwWW8ImplReader::IsDropCap() { SprmResult aDCS; if (m_bVer67) - aDCS = pPap->HasSprm(46); + aDCS = pPap->HasSprm(NS_sprm::v6::sprmPDcs); else - aDCS = m_xPlcxMan->GetPapPLCF()->HasSprm(0x442C); + aDCS = m_xPlcxMan->GetPapPLCF()->HasSprm(NS_sprm::sprmPDcs); if (aDCS.pSprm && aDCS.nRemainingData >= 2) { /* @@ -2860,7 +2876,7 @@ void SwWW8ImplReader::Read_BoldUsw( sal_uInt16 nId, const sal_uInt8* pData, shor sal_uInt8 nI; // the attribute number for "double strike-through" breaks rank - if (0x2A53 == nId) + if (NS_sprm::sprmCFDStrike == nId) nI = nContigiousWestern; // The out of sequence western id else { @@ -2868,9 +2884,9 @@ void SwWW8ImplReader::Read_BoldUsw( sal_uInt16 nId, const sal_uInt8* pData, shor if (eVersion <= ww::eWW2) nI = static_cast< sal_uInt8 >(nId - 60); else if (eVersion < ww::eWW8) - nI = static_cast< sal_uInt8 >(nId - 85); + nI = static_cast< sal_uInt8 >(nId - NS_sprm::v6::sprmCFBold); else - nI = static_cast< sal_uInt8 >(nId - 0x0835); + nI = static_cast< sal_uInt8 >(nId - NS_sprm::sprmCFBold); } sal_uInt16 nMask = 1 << nI; @@ -2899,7 +2915,7 @@ void SwWW8ImplReader::Read_BoldUsw( sal_uInt16 nId, const sal_uInt8* pData, shor if (m_xPlcxMan && eVersion > ww::eWW2) { SprmResult aCharIstd = - m_xPlcxMan->GetChpPLCF()->HasSprm(m_bVer67 ? 80 : 0x4A30); + m_xPlcxMan->GetChpPLCF()->HasSprm(m_bVer67 ? NS_sprm::v6::sprmCIstd : NS_sprm::sprmCIstd); if (aCharIstd.pSprm && aCharIstd.nRemainingData >= 2) pSI = GetStyle(SVBT16ToShort(aCharIstd.pSprm)); } @@ -3047,7 +3063,7 @@ void SwWW8ImplReader::Read_BoldBiDiUsw(sal_uInt16 nId, const sal_uInt8* pData, else if (eVersion < ww::eWW8) nI = static_cast< sal_uInt8 >(nId - 111); else - nI = static_cast< sal_uInt8 >(nId - 0x085C); + nI = static_cast< sal_uInt8 >(nId - NS_sprm::sprmCFBoldBi); OSL_ENSURE(nI <= 1, "not happening"); if (nI > 1) @@ -3066,7 +3082,7 @@ void SwWW8ImplReader::Read_BoldBiDiUsw(sal_uInt16 nId, const sal_uInt8* pData, if (m_xPlcxMan) { SprmResult aCharIstd = - m_xPlcxMan->GetChpPLCF()->HasSprm(m_bVer67 ? 80 : 0x4A30); + m_xPlcxMan->GetChpPLCF()->HasSprm(m_bVer67 ? NS_sprm::v6::sprmCIstd : NS_sprm::sprmCIstd); if (aCharIstd.pSprm && aCharIstd.nRemainingData >= 2) pSI = GetStyle(SVBT16ToShort(aCharIstd.pSprm)); } @@ -3717,18 +3733,18 @@ void SwWW8ImplReader::Read_FontCode( sal_uInt16 nId, const sal_uInt8* pData, sho { // (see sprmCSymbol) is valid! switch( nId ) { - case 113: //WW7 - case 0x4A51: //"Other" font, override with BiDi if it exists - case 0x4A5E: //BiDi Font + case 113: //WW7 + case NS_sprm::sprmCRgFtc2: //"Other" font, override with BiDi if it exists + case NS_sprm::sprmCFtcBi: //BiDi Font nId = RES_CHRATR_CTL_FONT; break; - case 93: //WW6 - case 111: //WW7 - case 0x4A4f: + case NS_sprm::v6::sprmCFtc: //WW6 + case 111: //WW7 + case NS_sprm::sprmCRgFtc0: nId = RES_CHRATR_FONT; break; - case 112: //WW7 - case 0x4A50: + case 112: //WW7 + case NS_sprm::sprmCRgFtc1: nId = RES_CHRATR_CJK_FONT; break; default: @@ -3763,14 +3779,14 @@ void SwWW8ImplReader::Read_FontSize( sal_uInt16 nId, const sal_uInt8* pData, sho { switch( nId ) { - case 74: - case 99: - case 0x4a43: + case 74: // WW2 + case NS_sprm::v6::sprmCHps: + case NS_sprm::sprmCHps: nId = RES_CHRATR_FONTSIZE; break; case 85: //WW2 case 116: //WW7 - case 0x4a61: + case NS_sprm::sprmCHpsBi: nId = RES_CHRATR_CTL_FONTSIZE; break; default: @@ -3839,18 +3855,18 @@ void SwWW8ImplReader::Read_Language( sal_uInt16 nId, const sal_uInt8* pData, sho { switch( nId ) { - case 97: - case 0x486D: //sprmCRgLid0_80 - case 0x4873: //Methinks, uncertain + case NS_sprm::v6::sprmCLid: + case NS_sprm::sprmCRgLid0_80: + case NS_sprm::sprmCRgLid0: nId = RES_CHRATR_LANGUAGE; break; - case 0x486E: //sprmCRgLid1_80 - case 0x4874: //Methinks, uncertain + case NS_sprm::sprmCRgLid1_80: + case NS_sprm::sprmCRgLid1: nId = RES_CHRATR_CJK_LANGUAGE; break; - case 83: - case 114: - case 0x485F: + case 83: // WW2 + case 114: // WW7 + case NS_sprm::sprmCLidBi: nId = RES_CHRATR_CTL_LANGUAGE; break; default: @@ -3924,7 +3940,7 @@ void SwWW8ImplReader::Read_FontKern( sal_uInt16, const sal_uInt8* pData, short n void SwWW8ImplReader::Read_CharShadow( sal_uInt16, const sal_uInt8* pData, short nLen ) { //Has newer colour variant, ignore this old variant - if (!m_bVer67 && m_xPlcxMan && m_xPlcxMan->GetChpPLCF()->HasSprm(0xCA71).pSprm) + if (!m_bVer67 && m_xPlcxMan && m_xPlcxMan->GetChpPLCF()->HasSprm(NS_sprm::sprmCShd).pSprm) return; if (nLen < 2) @@ -4011,9 +4027,9 @@ bool lcl_HasExplicitLeft(const WW8PLCFMan *pPlcxMan, bool bVer67) if (pPap) { if (bVer67) - return pPap->HasSprm(17).pSprm; + return pPap->HasSprm(NS_sprm::v6::sprmPDxaLeft).pSprm; else - return (pPap->HasSprm(0x840F).pSprm || pPap->HasSprm(0x845E).pSprm); + return (pPap->HasSprm(NS_sprm::sprmPDxaLeft80).pSprm || pPap->HasSprm(NS_sprm::sprmPDxaLeft).pSprm); } return false; } @@ -4067,18 +4083,18 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe switch (nId) { //Left becomes after; - case 17: - nId = 16; + case NS_sprm::v6::sprmPDxaLeft: + nId = NS_sprm::v6::sprmPDxaRight; break; - case 0x840F: - nId = 0x840E; + case NS_sprm::sprmPDxaLeft80: + nId = NS_sprm::sprmPDxaRight80; break; //Right becomes before; - case 16: - nId = 17; + case NS_sprm::v6::sprmPDxaRight: + nId = NS_sprm::v6::sprmPDxaLeft; break; - case 0x840E: - nId = 0x840F; + case NS_sprm::sprmPDxaRight80: + nId = NS_sprm::sprmPDxaLeft80; break; } } @@ -4089,9 +4105,9 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe switch (nId) { //sprmPDxaLeft - case 17: - case 0x840F: - case 0x845E: + case NS_sprm::v6::sprmPDxaLeft: + case NS_sprm::sprmPDxaLeft80: + case NS_sprm::sprmPDxaLeft: aLR.SetTextLeft( nPara ); if (m_pAktColl && m_nAktColl < m_vColl.size()) { @@ -4100,9 +4116,9 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe bLeftIndentSet = true; // #i105414# break; //sprmPDxaLeft1 - case 19: - case 0x8411: - case 0x8460: + case NS_sprm::v6::sprmPDxaLeft1: + case NS_sprm::sprmPDxaLeft180: + case NS_sprm::sprmPDxaLeft1: /* As part of an attempt to break my spirit ww 8+ formats can contain ww 7- lists. If they do and the list is part of the style, then @@ -4116,7 +4132,7 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe */ if (m_xPlcxMan && m_nAktColl < m_vColl.size() && m_vColl[m_nAktColl].m_bHasBrokenWW6List) { - SprmResult aIsZeroed = m_xPlcxMan->GetPapPLCF()->HasSprm(0x460B); + SprmResult aIsZeroed = m_xPlcxMan->GetPapPLCF()->HasSprm(NS_sprm::sprmPIlfo); if (aIsZeroed.pSprm && aIsZeroed.nRemainingData >= 1 && *aIsZeroed.pSprm == 0) { const SvxLRSpaceItem &rLR = @@ -4153,9 +4169,9 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe bFirstLinOfstSet = true; // #i103711# break; //sprmPDxaRight - case 16: - case 0x840E: - case 0x845D: + case NS_sprm::v6::sprmPDxaRight: + case NS_sprm::sprmPDxaRight80: + case NS_sprm::sprmPDxaRight: aLR.SetRight( nPara ); break; default: @@ -4323,13 +4339,13 @@ void SwWW8ImplReader::Read_UL( sal_uInt16 nId, const sal_uInt8* pData, short nLe switch( nId ) { //sprmPDyaBefore - case 21: - case 0xA413: + case NS_sprm::v6::sprmPDyaBefore: + case NS_sprm::sprmPDyaBefore: aUL.SetUpper( nPara ); break; //sprmPDyaAfter - case 22: - case 0xA414: + case NS_sprm::v6::sprmPDyaAfter: + case NS_sprm::sprmPDyaAfter: aUL.SetLower( nPara ); break; default: @@ -4410,7 +4426,7 @@ bool SwWW8ImplReader::IsRightToLeft() bool bRTL = false; SprmResult aDir; if (m_xPlcxMan) - aDir = m_xPlcxMan->GetPapPLCF()->HasSprm(0x2441); + aDir = m_xPlcxMan->GetPapPLCF()->HasSprm(NS_sprm::sprmPFBiDi); if (aDir.pSprm && aDir.nRemainingData >= 1) bRTL = *aDir.pSprm != 0; else @@ -4434,7 +4450,7 @@ void SwWW8ImplReader::Read_RTLJustify( sal_uInt16, const sal_uInt8* pData, short //If we are in a ltr paragraph this is the same as normal Justify, //If we are in a rtl paragraph the meaning is reversed. if (!IsRightToLeft()) - Read_Justify(0x2403 /*dummy*/, pData, nLen); + Read_Justify(NS_sprm::sprmPJc80 /*dummy*/, pData, nLen); else { SvxAdjust eAdjust(SvxAdjust::Right); @@ -4470,13 +4486,13 @@ void SwWW8ImplReader::Read_BoolItem( sal_uInt16 nId, const sal_uInt8* pData, sho { switch( nId ) { - case 0x2433: + case NS_sprm::sprmPFKinsoku: nId = RES_PARATR_FORBIDDEN_RULES; break; - case 0x2435: + case NS_sprm::sprmPFOverflowPunct: nId = RES_PARATR_HANGINGPUNCTUATION; break; - case 0x2437: + case NS_sprm::sprmPFAutoSpaceDE: nId = RES_PARATR_SCRIPTSPACE; break; default: @@ -4508,7 +4524,7 @@ void SwWW8ImplReader::Read_Emphasis( sal_uInt16, const sal_uInt8* pData, short n //one is ignored SprmResult aLang; if (m_xPlcxMan) - aLang = m_xPlcxMan->GetChpPLCF()->HasSprm(0x486E); + aLang = m_xPlcxMan->GetChpPLCF()->HasSprm(NS_sprm::sprmCRgLid1_80); if (aLang.pSprm && aLang.nRemainingData >= 2) nLang = LanguageType(SVBT16ToShort(aLang.pSprm)); @@ -4581,8 +4597,8 @@ void SwWW8ImplReader::Read_Relief( sal_uInt16 nId, const sal_uInt8* pData, short const SvxCharReliefItem* pOld = static_cast<const SvxCharReliefItem*>( GetFormatAttr( RES_CHRATR_RELIEF )); - FontRelief nNewValue = 0x854 == nId ? FontRelief::Engraved - : ( 0x858 == nId ? FontRelief::Embossed + FontRelief nNewValue = NS_sprm::sprmCFImprint == nId ? FontRelief::Engraved + : ( NS_sprm::sprmCFEmboss == nId ? FontRelief::Embossed : FontRelief::NONE ); if( pOld->GetValue() == nNewValue ) { @@ -4752,7 +4768,7 @@ void SwWW8Shade::SetShade(ColorData nFore, ColorData nBack, sal_uInt16 nIndex) void SwWW8ImplReader::Read_Shade( sal_uInt16, const sal_uInt8* pData, short nLen ) { - if (!m_bVer67 && m_xPlcxMan && m_xPlcxMan->GetPapPLCF()->HasSprm(0xC64D).pSprm) + if (!m_bVer67 && m_xPlcxMan && m_xPlcxMan->GetPapPLCF()->HasSprm(NS_sprm::sprmPShd).pSprm) return; if (nLen < 2) @@ -4903,7 +4919,7 @@ void SwWW8ImplReader::Read_Border(sal_uInt16 , const sal_uInt8*, short nLen) void SwWW8ImplReader::Read_CharBorder(sal_uInt16 nId, const sal_uInt8* pData, short nLen ) { //Ignore this old border type - //if (!bVer67 && pPlcxMan && pPlcxMan->GetChpPLCF()->HasSprm(0xCA72)) + //if (!bVer67 && pPlcxMan && pPlcxMan->GetChpPLCF()->HasSprm(NS_sprm::sprmCBrc)) // return; if (nLen < 0) @@ -5077,27 +5093,29 @@ bool SwWW8ImplReader::ParseTabPos(WW8_TablePos *pTabPos, WW8PLCFx_Cp_FKP* pPap) { bool bRet = false; memset(pTabPos, 0, sizeof(WW8_TablePos)); - SprmResult aRes = pPap->HasSprm(0x360D); + // sprmTPc contains a PositionCodeOperand structure that specifies the origin + // that is used to calculate the table position when it is absolutely positioned + SprmResult aRes = pPap->HasSprm(NS_sprm::sprmTPc); if (aRes.pSprm && aRes.nRemainingData >= 1) { pTabPos->nSp29 = *aRes.pSprm; pTabPos->nSp37 = 2; //Possible fail area, always parallel wrap - aRes = pPap->HasSprm(0x940E); + aRes = pPap->HasSprm(NS_sprm::sprmTDxaAbs); if (aRes.pSprm && aRes.nRemainingData >= 2) pTabPos->nSp26 = SVBT16ToShort(aRes.pSprm); - aRes = pPap->HasSprm(0x940F); + aRes = pPap->HasSprm(NS_sprm::sprmTDyaAbs); if (aRes.pSprm && aRes.nRemainingData >= 2) pTabPos->nSp27 = SVBT16ToShort(aRes.pSprm); - aRes = pPap->HasSprm(0x9410); + aRes = pPap->HasSprm(NS_sprm::sprmTDxaFromText); if (aRes.pSprm && aRes.nRemainingData >= 2) pTabPos->nLeMgn = SVBT16ToShort(aRes.pSprm); - aRes = pPap->HasSprm(0x941E); + aRes = pPap->HasSprm(NS_sprm::sprmTDxaFromTextRight); if (aRes.pSprm && aRes.nRemainingData >= 2) pTabPos->nRiMgn = SVBT16ToShort(aRes.pSprm); - aRes = pPap->HasSprm(0x9411); + aRes = pPap->HasSprm(NS_sprm::sprmTDyaFromText); if (aRes.pSprm && aRes.nRemainingData >= 2) pTabPos->nUpMgn = SVBT16ToShort(aRes.pSprm); - aRes = pPap->HasSprm(0x941F); + aRes = pPap->HasSprm(NS_sprm::sprmTDyaFromTextBottom); if (aRes.pSprm && aRes.nRemainingData >= 2) pTabPos->nLoMgn = SVBT16ToShort(aRes.pSprm); pTabPos->bNoFly = !FloatingTableConversion(pPap); @@ -5334,358 +5352,208 @@ const wwSprmDispatcher *GetWW6SprmDispatcher() { static SprmReadInfo aSprms[] = { - {0, nullptr}, // "0" default resp. error - // will be skipped! - {2, &SwWW8ImplReader::Read_StyleCode}, //"sprmPIstd", pap.istd - //(style code) - {3, nullptr}, //"sprmPIstdPermute", pap.istd - //permutation - {4, nullptr}, //"sprmPIncLv1", - //pap.istddifference - {5, &SwWW8ImplReader::Read_Justify}, //"sprmPJc", pap.jc - //(justification) - {6, nullptr}, //"sprmPFSideBySide", - //pap.fSideBySide - {7, &SwWW8ImplReader::Read_KeepLines}, //"sprmPFKeep", pap.fKeep - {8, &SwWW8ImplReader::Read_KeepParas}, //"sprmPFKeepFollow ", - //pap.fKeepFollow - {9, &SwWW8ImplReader::Read_BreakBefore}, //"sprmPPageBreakBefore", - //pap.fPageBreakBefore - {10, nullptr}, //"sprmPBrcl", pap.brcl - {11, nullptr}, //"sprmPBrcp ", pap.brcp - {12, &SwWW8ImplReader::Read_ANLevelDesc}, //"sprmPAnld", pap.anld (ANLD - //structure) - {13, &SwWW8ImplReader::Read_ANLevelNo}, //"sprmPNLvlAnm", pap.nLvlAnm - //nn - {14, &SwWW8ImplReader::Read_NoLineNumb}, //"sprmPFNoLineNumb", ap.fNoLnn - {15, &SwWW8ImplReader::Read_Tab}, //"?sprmPChgTabsPapx", - //pap.itbdMac, ... - {16, &SwWW8ImplReader::Read_LR}, //"sprmPDxaRight", pap.dxaRight - {17, &SwWW8ImplReader::Read_LR}, //"sprmPDxaLeft", pap.dxaLeft - {18, nullptr}, //"sprmPNest", pap.dxaLeft - {19, &SwWW8ImplReader::Read_LR}, //"sprmPDxaLeft1", pap.dxaLeft1 - {20, &SwWW8ImplReader::Read_LineSpace}, //"sprmPDyaLine", pap.lspd - //an LSPD - {21, &SwWW8ImplReader::Read_UL}, //"sprmPDyaBefore", - //pap.dyaBefore - {22, &SwWW8ImplReader::Read_UL}, //"sprmPDyaAfter", pap.dyaAfter - {23, nullptr}, //"?sprmPChgTabs", pap.itbdMac, - //pap.rgdxaTab, ... - {24, nullptr}, //"sprmPFInTable", pap.fInTable - {25, &SwWW8ImplReader::Read_TabRowEnd}, //"sprmPTtp", pap.fTtp - {26, nullptr}, //"sprmPDxaAbs", pap.dxaAbs - {27, nullptr}, //"sprmPDyaAbs", pap.dyaAbs - {28, nullptr}, //"sprmPDxaWidth", pap.dxaWidth - {29, &SwWW8ImplReader::Read_ApoPPC}, //"sprmPPc", pap.pcHorz, - //pap.pcVert - {30, nullptr}, //"sprmPBrcTop10", pap.brcTop - //BRC10 - {31, nullptr}, //"sprmPBrcLeft10", - //pap.brcLeft BRC10 - {32, nullptr}, //"sprmPBrcBottom10", - //pap.brcBottom BRC10 - {33, nullptr}, //"sprmPBrcRight10", - //pap.brcRight BRC10 - {34, nullptr}, //"sprmPBrcBetween10", - //pap.brcBetween BRC10 - {35, nullptr}, //"sprmPBrcBar10", pap.brcBar - //BRC10 - {36, nullptr}, //"sprmPFromText10", - //pap.dxaFromText dxa - {37, nullptr}, //"sprmPWr", pap.wr wr - {38, &SwWW8ImplReader::Read_Border}, //"sprmPBrcTop", pap.brcTop BRC - {39, &SwWW8ImplReader::Read_Border}, //"sprmPBrcLeft", - //pap.brcLeft BRC - {40, &SwWW8ImplReader::Read_Border}, //"sprmPBrcBottom", - //pap.brcBottom BRC - {41, &SwWW8ImplReader::Read_Border}, //"sprmPBrcRight", - //pap.brcRight BRC - {42, &SwWW8ImplReader::Read_Border}, //"sprmPBrcBetween", - //pap.brcBetween BRC - {43, nullptr}, //"sprmPBrcBar", pap.brcBar - //BRC word - {44, &SwWW8ImplReader::Read_Hyphenation}, //"sprmPFNoAutoHyph", - //pap.fNoAutoHyph - {45, nullptr}, //"sprmPWHeightAbs", - //pap.wHeightAbs w - {46, nullptr}, //"sprmPDcs", pap.dcs DCS - {47, &SwWW8ImplReader::Read_Shade}, //"sprmPShd", pap.shd SHD - {48, nullptr}, //"sprmPDyaFromText", - //pap.dyaFromText dya - {49, nullptr}, //"sprmPDxaFromText", - //pap.dxaFromText dxa - {50, nullptr}, //"sprmPFLocked", pap.fLocked - //0 or 1 byte - {51, &SwWW8ImplReader::Read_WidowControl}, //"sprmPFWidowControl", - //pap.fWidowControl 0 or 1 byte - {52, nullptr}, //"?sprmPRuler 52", - {53, nullptr}, //"??53", - {54, nullptr}, //"??54", - {55, nullptr}, //"??55", - {56, nullptr}, //"??56", - {57, nullptr}, //"??57", - {58, nullptr}, //"??58", - {59, nullptr}, //"??59", - {60, nullptr}, //"??60", - {61, nullptr}, //"??61", - {62, nullptr}, //"??62", - {63, nullptr}, //"??63", - {64, &SwWW8ImplReader::Read_ParaBiDi}, //"rtl bidi ? - {65, &SwWW8ImplReader::Read_CFRMarkDel}, //"sprmCFStrikeRM", - //chp.fRMarkDel 1 or 0 bit - {66, &SwWW8ImplReader::Read_CFRMark}, //"sprmCFRMark", chp.fRMark - //1 or 0 bit - {67, &SwWW8ImplReader::Read_FieldVanish}, //"sprmCFFieldVanish", - //chp.fFieldVanish 1 or 0 bit - {68, &SwWW8ImplReader::Read_PicLoc}, //"sprmCPicLocation", - //chp.fcPic and chp.fSpec - {69, nullptr}, //"sprmCIbstRMark", - //chp.ibstRMark index into - //sttbRMark - {70, nullptr}, //"sprmCDttmRMark", chp.dttm - //DTTM long - {71, nullptr}, //"sprmCFData", chp.fData 1 or - //0 bit - {72, nullptr}, //"sprmCRMReason", - //chp.idslRMReason an index to - //a table - {73, &SwWW8ImplReader::Read_CharSet}, //"sprmCChse", chp.fChsDiff - //and chp.chse 3 bytes - {74, &SwWW8ImplReader::Read_Symbol}, //"sprmCSymbol", chp.fSpec, - //chp.chSym and chp.ftcSym - {75, &SwWW8ImplReader::Read_Obj}, //"sprmCFOle2", chp.fOle2 1 - //or 0 bit - {76, nullptr}, //"??76", - {77, nullptr}, //"??77", - {78, nullptr}, //"??78", - {79, nullptr}, //"??79", - {80, &SwWW8ImplReader::Read_CColl}, //"sprmCIstd", chp.istd istd, - //see stylesheet definition - //short - {81, nullptr}, //"sprmCIstdPermute", chp.istd - //permutation vector - {82, nullptr}, //"sprmCDefault", whole CHP - //none variable length - {83, nullptr}, //"sprmCPlain", whole CHP - //none 0 - {84, nullptr}, //"??84", - {85, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFBold", chp.fBold 0,1, - //128, or 129 byte - {86, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFItalic", chp.fItalic - //0,1, 128, or 129 byte - {87, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFStrike", chp.fStrike - //0,1, 128, or 129 byte - {88, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFOutline", chp.fOutline - //0,1, 128, or 129 byte - {89, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFShadow", chp.fShadow - //0,1, 128, or 129 byte - {90, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFSmallCaps", - //chp.fSmallCaps 0,1, 128, or - //129 byte - {91, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFCaps", chp.fCaps 0,1, - //128, or 129 byte - {92, &SwWW8ImplReader::Read_BoldUsw}, //"sprmCFVanish", chp.fVanish - //0,1, 128, or 129 byte - {93, &SwWW8ImplReader::Read_FontCode}, //"sprmCFtc", chp.ftc ftc word - {94, &SwWW8ImplReader::Read_Underline}, // "sprmCKul", chp.kul kul byte - {95, nullptr}, //"sprmCSizePos", chp.hps, - //chp.hpsPos 3 bytes - {96, &SwWW8ImplReader::Read_Kern}, //"sprmCDxaSpace", - //chp.dxaSpace dxa word - {97, &SwWW8ImplReader::Read_Language}, //"sprmCLid", chp.lid LID word - {98, &SwWW8ImplReader::Read_TextColor}, //"sprmCIco", chp.ico ico byte - {99, &SwWW8ImplReader::Read_FontSize}, //"sprmCHps", chp.hps hps word! - {100, nullptr}, //"sprmCHpsInc", chp.hps byte - {101, &SwWW8ImplReader::Read_SubSuperProp}, //"sprmCHpsPos", chp.hpsPos - //hps byte - {102, nullptr}, //"sprmCHpsPosAdj", chp.hpsPos - //hps byte - {103, &SwWW8ImplReader::Read_Majority}, //"?sprmCMajority", chp.fBold, - //chp.fItalic, chp.fSmallCaps - {104, &SwWW8ImplReader::Read_SubSuper}, //"sprmCIss", chp.iss iss byte - {105, nullptr}, //"sprmCHpsNew50", chp.hps hps - //variable width, length - //always recorded as 2 - {106, nullptr}, //"sprmCHpsInc1", chp.hps - //complex variable width, - //length always recorded as 2 - {107, &SwWW8ImplReader::Read_FontKern}, //"sprmCHpsKern", chp.hpsKern - //hps short - {108, &SwWW8ImplReader::Read_Majority}, //"sprmCMajority50", chp.fBold, - //chp.fItalic, chp.fSmallCaps, - // chp.fVanish, ... - {109, nullptr}, //"sprmCHpsMul", chp.hps - //percentage to grow hps short - {110, nullptr}, //"sprmCCondHyhen", chp.ysri - //ysri short - {111, &SwWW8ImplReader::Read_AmbiguousSPRM}, //sprmCFBoldBi or font code - {112, &SwWW8ImplReader::Read_AmbiguousSPRM}, //sprmCFItalicBi or font code - {113, &SwWW8ImplReader::Read_FontCode}, //sprmCFtcBi - {114, &SwWW8ImplReader::Read_Language}, //sprmClidBi - {115, &SwWW8ImplReader::Read_TextColor}, //sprmCIcoBi - {116, &SwWW8ImplReader::Read_FontSize}, //sprmCHpsBi - {117, &SwWW8ImplReader::Read_Special}, //"sprmCFSpec", chp.fSpec 1 - //or 0 bit - {118, &SwWW8ImplReader::Read_Obj}, //"sprmCFObj", chp.fObj 1 or 0 - //bit - {119, nullptr}, //"sprmPicBrcl", pic.brcl brcl - //(see PIC structure - //definition) byte - {120, nullptr}, //"sprmPicScale", pic.mx, - //pic.my, pic.dxaCropleft, - {121, nullptr}, //"sprmPicBrcTop", pic.brcTop - //BRC word - {122, nullptr}, //"sprmPicBrcLeft", - //pic.brcLeft BRC word - {123, nullptr}, //"sprmPicBrcBottom", - //pic.brcBottom BRC word - {124, nullptr}, //"sprmPicBrcRight", - //pic.brcRight BRC word - {125, nullptr}, //"??125", - {126, nullptr}, //"??126", - {127, nullptr}, //"??127", - {128, nullptr}, //"??128", - {129, nullptr}, //"??129", - {130, nullptr}, //"??130", - {131, nullptr}, //"sprmSScnsPgn", sep.cnsPgn - //cns byte - {132, nullptr}, //"sprmSiHeadingPgn", - //sep.iHeadingPgn heading - //number level byte - {133, &SwWW8ImplReader::Read_OLST}, //"sprmSOlstAnm", sep.olstAnm - //OLST variable length - {134, nullptr}, //"??135", - {135, nullptr}, //"??135", - {136, nullptr}, //"sprmSDxaColWidth", - //sep.rgdxaColWidthSpacing - //complex 3 bytes - {137, nullptr}, //"sprmSDxaColSpacing", - //sep.rgdxaColWidthSpacing - //complex 3 bytes - {138, nullptr}, //"sprmSFEvenlySpaced", - //sep.fEvenlySpaced 1 or 0 byte - {139, nullptr}, //"sprmSFProtected", - //sep.fUnlocked 1 or 0 byte - {140, nullptr}, //"sprmSDmBinFirst", - //sep.dmBinFirst word - {141, nullptr}, //"sprmSDmBinOther", - //sep.dmBinOther word - {142, nullptr}, //"sprmSBkc", sep.bkc bkc - //byte BreakCode - {143, nullptr}, //"sprmSFTitlePage", - //sep.fTitlePage 0 or 1 byte - {144, nullptr}, //"sprmSCcolumns", sep.ccolM1 - //# of cols - 1 word - {145, nullptr}, //"sprmSDxaColumns", - //sep.dxaColumns dxa word - {146, nullptr}, //"sprmSFAutoPgn", - //sep.fAutoPgn obsolete byte - {147, nullptr}, //"sprmSNfcPgn", sep.nfcPgn - //nfc byte - {148, nullptr}, //"sprmSDyaPgn", sep.dyaPgn - //dya short - {149, nullptr}, //"sprmSDxaPgn", sep.dxaPgn - //dya short - {150, nullptr}, //"sprmSFPgnRestart", - //sep.fPgnRestart 0 or 1 byte - {151, nullptr}, //"sprmSFEndnote", sep.fEndnote - //0 or 1 byte - {152, nullptr}, //"sprmSLnc", sep.lnc lnc byte - {153, nullptr}, //"sprmSGprfIhdt", sep.grpfIhdt - //grpfihdt byte - {154, nullptr}, //"sprmSNLnnMod", sep.nLnnMod - //non-neg int. word - {155, nullptr}, //"sprmSDxaLnn", sep.dxaLnn - //dxa word - {156, nullptr}, //"sprmSDyaHdrTop", - //sep.dyaHdrTop dya word - {157, nullptr}, //"sprmSDyaHdrBottom", - //sep.dyaHdrBottom dya word - {158, nullptr}, //"sprmSLBetween", - //sep.fLBetween 0 or 1 byte - {159, nullptr}, //"sprmSVjc", sep.vjc vjc byte - {160, nullptr}, //"sprmSLnnMin", sep.lnnMin - //lnn word - {161, nullptr}, //"sprmSPgnStart", sep.pgnStart - //pgn word - {162, nullptr}, //"sprmSBOrientation", - //sep.dmOrientPage dm byte - {163, nullptr}, //"?SprmSBCustomize 163", ? - {164, nullptr}, //"sprmSXaPage", sep.xaPage xa - //word - {165, nullptr}, //"sprmSYaPage", sep.yaPage ya - //word - {166, nullptr}, //"sprmSDxaLeft", sep.dxaLeft - //dxa word - {167, nullptr}, //"sprmSDxaRight", sep.dxaRight - //dxa word - {168, nullptr}, //"sprmSDyaTop", sep.dyaTop //dya word - {169, nullptr}, //"sprmSDyaBottom", - //sep.dyaBottom dya word - {170, nullptr}, //"sprmSDzaGutter", - //sep.dzaGutter dza word - {171, nullptr}, //"sprmSDMPaperReq", - //sep.dmPaperReq dm word - {172, nullptr}, //"??172", - {173, nullptr}, //"??173", - {174, nullptr}, //"??174", - {175, nullptr}, //"??175", - {176, nullptr}, //"??176", - {177, nullptr}, //"??177", - {178, nullptr}, //"??178", - {179, nullptr}, //"??179", - {180, nullptr}, //"??180", - {181, nullptr}, //"??181", - {182, nullptr}, //"sprmTJc", tap.jc jc word - //(low order byte is - //significant) - {183, nullptr}, //"sprmTDxaLeft", - //tap.rgdxaCenter dxa word - {184, nullptr}, //"sprmTDxaGapHalf", - //tap.dxaGapHalf, - //tap.rgdxaCenter dxa word - {185, nullptr}, //"sprmTFCantSplit" - //tap.fCantSplit 1 or 0 byte - {186, nullptr}, //"sprmTTableHeader", - //tap.fTableHeader 1 or 0 byte - {187, nullptr}, //"sprmTTableBorders", - //tap.rgbrcTable complex - //12 bytes - {188, nullptr}, //"sprmTDefTable10", - //tap.rgdxaCenter, tap.rgtc - //complex variable length - {189, nullptr}, //"sprmTDyaRowHeight", - //tap.dyaRowHeight dya word - {190, nullptr}, //"?sprmTDefTable", tap.rgtc - //complex - {191, nullptr}, //"?sprmTDefTableShd", - //tap.rgshd complex - {192, nullptr}, //"sprmTTlp", tap.tlp TLP - //4 bytes - {193, nullptr}, //"sprmTSetBrc", - //tap.rgtc[].rgbrc complex - //5 bytes - {194, nullptr}, //"sprmTInsert", - //tap.rgdxaCenter, - //tap.rgtc complex 4 bytes - {195, nullptr}, //"sprmTDelete", - //tap.rgdxaCenter, - //tap.rgtc complex word - {196, nullptr}, //"sprmTDxaCol", - //tap.rgdxaCenter complex - //4 bytes - {197, nullptr}, //"sprmTMerge", - //tap.fFirstMerged, - //tap.fMerged complex word - {198, nullptr}, //"sprmTSplit", - //tap.fFirstMerged, - //tap.fMerged complex word - {199, nullptr}, //"sprmTSetBrc10", - //tap.rgtc[].rgbrc complex - //5 bytes - {200, nullptr}, //"sprmTSetShd", tap.rgshd - //complex 4 bytes - {207, nullptr}, //dunno + {0, nullptr}, // "0" default resp. error + // will be skipped! + {NS_sprm::v6::sprmPIstd, &SwWW8ImplReader::Read_StyleCode}, // pap.istd (style code) + {NS_sprm::v6::sprmPIstdPermute, nullptr}, // pap.istd permutation + {NS_sprm::v6::sprmPIncLv1, nullptr}, // pap.istddifference + {NS_sprm::v6::sprmPJc, &SwWW8ImplReader::Read_Justify}, // pap.jc (justification) + {NS_sprm::v6::sprmPFSideBySide, nullptr}, // pap.fSideBySide + {NS_sprm::v6::sprmPFKeep, &SwWW8ImplReader::Read_KeepLines}, // pap.fKeep + {NS_sprm::v6::sprmPFKeepFollow, &SwWW8ImplReader::Read_KeepParas}, // pap.fKeepFollow + {NS_sprm::v6::sprmPPageBreakBefore, &SwWW8ImplReader::Read_BreakBefore}, // pap.fPageBreakBefore + {NS_sprm::v6::sprmPBrcl, nullptr}, // pap.brcl + {NS_sprm::v6::sprmPBrcp, nullptr}, // pap.brcp + {NS_sprm::v6::sprmPAnld, &SwWW8ImplReader::Read_ANLevelDesc}, // pap.anld (ANLD structure) + {NS_sprm::v6::sprmPNLvlAnm, &SwWW8ImplReader::Read_ANLevelNo}, // pap.nLvlAnm nn + {NS_sprm::v6::sprmPFNoLineNumb, &SwWW8ImplReader::Read_NoLineNumb}, // ap.fNoLnn + {NS_sprm::v6::sprmPChgTabsPapx, &SwWW8ImplReader::Read_Tab}, // pap.itbdMac, ... + {NS_sprm::v6::sprmPDxaRight, &SwWW8ImplReader::Read_LR}, // pap.dxaRight + {NS_sprm::v6::sprmPDxaLeft, &SwWW8ImplReader::Read_LR}, // pap.dxaLeft + {NS_sprm::v6::sprmPNest, nullptr}, // pap.dxaLeft + {NS_sprm::v6::sprmPDxaLeft1, &SwWW8ImplReader::Read_LR}, // pap.dxaLeft1 + {NS_sprm::v6::sprmPDyaLine, &SwWW8ImplReader::Read_LineSpace}, // pap.lspd an LSPD + {NS_sprm::v6::sprmPDyaBefore, &SwWW8ImplReader::Read_UL}, // pap.dyaBefore + {NS_sprm::v6::sprmPDyaAfter, &SwWW8ImplReader::Read_UL}, // pap.dyaAfter + {NS_sprm::v6::sprmPChgTabs, nullptr}, // pap.itbdMac, pap.rgdxaTab, ... + {NS_sprm::v6::sprmPFInTable, nullptr}, // pap.fInTable + {NS_sprm::v6::sprmPTtp, &SwWW8ImplReader::Read_TabRowEnd}, // pap.fTtp + {NS_sprm::v6::sprmPDxaAbs, nullptr}, // pap.dxaAbs + {NS_sprm::v6::sprmPDyaAbs, nullptr}, // pap.dyaAbs + {NS_sprm::v6::sprmPDxaWidth, nullptr}, // pap.dxaWidth + {NS_sprm::v6::sprmPPc, &SwWW8ImplReader::Read_ApoPPC}, // pap.pcHorz, pap.pcVert + {NS_sprm::v6::sprmPBrcTop10, nullptr}, // pap.brcTop BRC10 + {NS_sprm::v6::sprmPBrcLeft10, nullptr}, // pap.brcLeft BRC10 + {NS_sprm::v6::sprmPBrcBottom10, nullptr}, // pap.brcBottom BRC10 + {NS_sprm::v6::sprmPBrcRight10, nullptr}, // pap.brcRight BRC10 + {NS_sprm::v6::sprmPBrcBetween10, nullptr}, // pap.brcBetween BRC10 + {NS_sprm::v6::sprmPBrcBar10, nullptr}, // pap.brcBar BRC10 + {NS_sprm::v6::sprmPFromText10, nullptr}, // pap.dxaFromText dxa + {NS_sprm::v6::sprmPWr, nullptr}, // pap.wr wr + {NS_sprm::v6::sprmPBrcTop, &SwWW8ImplReader::Read_Border}, // pap.brcTop BRC + {NS_sprm::v6::sprmPBrcLeft, &SwWW8ImplReader::Read_Border}, // pap.brcLeft BRC + {NS_sprm::v6::sprmPBrcBottom, &SwWW8ImplReader::Read_Border}, // pap.brcBottom BRC + {NS_sprm::v6::sprmPBrcRight, &SwWW8ImplReader::Read_Border}, // pap.brcRight BRC + {NS_sprm::v6::sprmPBrcBetween, &SwWW8ImplReader::Read_Border}, // pap.brcBetween BRC + {NS_sprm::v6::sprmPBrcBar, nullptr}, // pap.brcBar BRC word + {NS_sprm::v6::sprmPFNoAutoHyph, &SwWW8ImplReader::Read_Hyphenation}, // pap.fNoAutoHyph + {NS_sprm::v6::sprmPWHeightAbs, nullptr}, // pap.wHeightAbs w + {NS_sprm::v6::sprmPDcs, nullptr}, // pap.dcs DCS + {NS_sprm::v6::sprmPShd, &SwWW8ImplReader::Read_Shade}, // pap.shd SHD + {NS_sprm::v6::sprmPDyaFromText, nullptr}, // pap.dyaFromText dya + {NS_sprm::v6::sprmPDxaFromText, nullptr}, // pap.dxaFromText dxa + {NS_sprm::v6::sprmPFLocked, nullptr}, // pap.fLocked 0 or 1 byte + {NS_sprm::v6::sprmPFWidowControl, &SwWW8ImplReader::Read_WidowControl}, // pap.fWidowControl 0 or 1 byte + {NS_sprm::v6::sprmPRuler, nullptr}, + {53, nullptr}, //"??53", + {54, nullptr}, //"??54", + {55, nullptr}, //"??55", + {56, nullptr}, //"??56", + {57, nullptr}, //"??57", + {58, nullptr}, //"??58", + {59, nullptr}, //"??59", + {60, nullptr}, //"??60", + {61, nullptr}, //"??61", + {62, nullptr}, //"??62", + {63, nullptr}, //"??63", + {64, &SwWW8ImplReader::Read_ParaBiDi}, //"rtl bidi ? + {NS_sprm::v6::sprmCFStrikeRM, &SwWW8ImplReader::Read_CFRMarkDel}, // chp.fRMarkDel 1 or 0 bit + {NS_sprm::v6::sprmCFRMark, &SwWW8ImplReader::Read_CFRMark}, // chp.fRMark 1 or 0 bit + {NS_sprm::v6::sprmCFFldVanish, &SwWW8ImplReader::Read_FieldVanish}, // chp.fFieldVanish 1 or 0 bit + {NS_sprm::v6::sprmCPicLocation, &SwWW8ImplReader::Read_PicLoc}, // chp.fcPic and chp.fSpec + {NS_sprm::v6::sprmCIbstRMark, nullptr}, // chp.ibstRMark index into sttbRMark + {NS_sprm::v6::sprmCDttmRMark, nullptr}, // chp.dttm DTTM long + {NS_sprm::v6::sprmCFData, nullptr}, // chp.fData 1 or 0 bit + {NS_sprm::v6::sprmCRMReason, nullptr}, // chp.idslRMReason an index to a table + {NS_sprm::v6::sprmCChse, &SwWW8ImplReader::Read_CharSet}, // chp.fChsDiff and chp.chse 3 bytes + {NS_sprm::v6::sprmCSymbol, &SwWW8ImplReader::Read_Symbol}, // chp.fSpec, chp.chSym and chp.ftcSym + {NS_sprm::v6::sprmCFOle2, &SwWW8ImplReader::Read_Obj}, // chp.fOle2 1 or 0 bit + {76, nullptr}, //"??76", + {77, nullptr}, //"??77", + {78, nullptr}, //"??78", + {79, nullptr}, //"??79", + {NS_sprm::v6::sprmCIstd, &SwWW8ImplReader::Read_CColl}, // chp.istd istd, see stylesheet definition; short + {NS_sprm::v6::sprmCIstdPermute, nullptr}, // chp.istd permutation vector + {NS_sprm::v6::sprmCDefault, nullptr}, // whole CHP none variable length + {NS_sprm::v6::sprmCPlain, nullptr}, // whole CHP none 0 + {84, nullptr}, //"??84", + {NS_sprm::v6::sprmCFBold, &SwWW8ImplReader::Read_BoldUsw}, // chp.fBold 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFItalic, &SwWW8ImplReader::Read_BoldUsw}, // chp.fItalic 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFStrike, &SwWW8ImplReader::Read_BoldUsw}, // chp.fStrike 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFOutline, &SwWW8ImplReader::Read_BoldUsw}, // chp.fOutline 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFShadow, &SwWW8ImplReader::Read_BoldUsw}, // chp.fShadow 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFSmallCaps, &SwWW8ImplReader::Read_BoldUsw}, // chp.fSmallCaps 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFCaps, &SwWW8ImplReader::Read_BoldUsw}, // chp.fCaps 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFVanish, &SwWW8ImplReader::Read_BoldUsw}, // chp.fVanish 0,1, 128, or 129 byte + {NS_sprm::v6::sprmCFtc, &SwWW8ImplReader::Read_FontCode}, // chp.ftc ftc word + {NS_sprm::v6::sprmCKul, &SwWW8ImplReader::Read_Underline}, // chp.kul kul byte + {NS_sprm::v6::sprmCSizePos, nullptr}, // chp.hps, chp.hpsPos 3 bytes + {NS_sprm::v6::sprmCDxaSpace, &SwWW8ImplReader::Read_Kern}, // chp.dxaSpace dxa word + {NS_sprm::v6::sprmCLid, &SwWW8ImplReader::Read_Language}, // chp.lid LID word + {NS_sprm::v6::sprmCIco, &SwWW8ImplReader::Read_TextColor}, // chp.ico ico byte + {NS_sprm::v6::sprmCHps, &SwWW8ImplReader::Read_FontSize}, // chp.hps hps word! + {NS_sprm::v6::sprmCHpsInc, nullptr}, // chp.hps byte + {NS_sprm::v6::sprmCHpsPos, &SwWW8ImplReader::Read_SubSuperProp}, // chp.hpsPos hps byte + {NS_sprm::v6::sprmCHpsPosAdj, nullptr}, // chp.hpsPos hps byte + {NS_sprm::v6::sprmCMajority, &SwWW8ImplReader::Read_Majority}, // chp.fBold, chp.fItalic, chp.fSmallCaps + {NS_sprm::v6::sprmCIss, &SwWW8ImplReader::Read_SubSuper}, // chp.iss iss byte + {NS_sprm::v6::sprmCHpsNew50, nullptr}, // chp.hps hps variable width, length always recorded as 2 + {NS_sprm::v6::sprmCHpsInc1, nullptr}, // chp.hps complex variable width, length always recorded as 2 + {NS_sprm::v6::sprmCHpsKern, &SwWW8ImplReader::Read_FontKern}, // chp.hpsKern hps short + {NS_sprm::v6::sprmCMajority50, &SwWW8ImplReader::Read_Majority}, // chp.fBold, chp.fItalic, chp.fSmallCaps, chp.fVanish, ... + {NS_sprm::v6::sprmCHpsMul, nullptr}, // chp.hps percentage to grow hps short + {NS_sprm::v6::sprmCCondHyhen, nullptr}, // chp.ysri ysri short + {111, &SwWW8ImplReader::Read_AmbiguousSPRM},//sprmCFBoldBi or font code + {112, &SwWW8ImplReader::Read_AmbiguousSPRM},//sprmCFItalicBi or font code + {113, &SwWW8ImplReader::Read_FontCode}, //sprmCFtcBi + {114, &SwWW8ImplReader::Read_Language}, //sprmClidBi + {115, &SwWW8ImplReader::Read_TextColor}, //sprmCIcoBi + {116, &SwWW8ImplReader::Read_FontSize}, //sprmCHpsBi + {NS_sprm::v6::sprmCFSpec, &SwWW8ImplReader::Read_Special}, // chp.fSpec 1 or 0 bit + {NS_sprm::v6::sprmCFObj, &SwWW8ImplReader::Read_Obj}, // chp.fObj 1 or 0 bit + {NS_sprm::v6::sprmPicBrcl, nullptr}, // pic.brcl brcl (see PIC structure definition) byte + {NS_sprm::v6::sprmPicScale, nullptr}, // pic.mx, pic.my, pic.dxaCropleft, + {NS_sprm::v6::sprmPicBrcTop, nullptr}, // pic.brcTop BRC word + {NS_sprm::v6::sprmPicBrcLeft, nullptr}, // pic.brcLeft BRC word + {NS_sprm::v6::sprmPicBrcBottom, nullptr}, // pic.brcBottom BRC word + {NS_sprm::v6::sprmPicBrcRight, nullptr}, // pic.brcRight BRC word + {125, nullptr}, //"??125", + {126, nullptr}, //"??126", + {127, nullptr}, //"??127", + {128, nullptr}, //"??128", + {129, nullptr}, //"??129", + {130, nullptr}, //"??130", + {NS_sprm::v6::sprmSScnsPgn, nullptr}, // sep.cnsPgn cns byte + {NS_sprm::v6::sprmSiHeadingPgn, nullptr}, // sep.iHeadingPgn heading number level byte + {NS_sprm::v6::sprmSOlstAnm, &SwWW8ImplReader::Read_OLST}, // sep.olstAnm OLST variable length + {134, nullptr}, //"??135", + {135, nullptr}, //"??135", + {NS_sprm::v6::sprmSDxaColWidth, nullptr}, // sep.rgdxaColWidthSpacing complex 3 bytes + {NS_sprm::v6::sprmSDxaColSpacing, nullptr}, // sep.rgdxaColWidthSpacing complex 3 bytes + {NS_sprm::v6::sprmSFEvenlySpaced, nullptr}, // sep.fEvenlySpaced 1 or 0 byte + {NS_sprm::v6::sprmSFProtected, nullptr}, // sep.fUnlocked 1 or 0 byte + {NS_sprm::v6::sprmSDmBinFirst, nullptr}, // sep.dmBinFirst word + {NS_sprm::v6::sprmSDmBinOther, nullptr}, // sep.dmBinOther word + {NS_sprm::v6::sprmSBkc, nullptr}, // sep.bkc bkc byte BreakCode + {NS_sprm::v6::sprmSFTitlePage, nullptr}, // sep.fTitlePage 0 or 1 byte + {NS_sprm::v6::sprmSCcolumns, nullptr}, // sep.ccolM1 # of cols - 1 word + {NS_sprm::v6::sprmSDxaColumns, nullptr}, // sep.dxaColumns dxa word + {NS_sprm::v6::sprmSFAutoPgn, nullptr}, // sep.fAutoPgn obsolete byte + {NS_sprm::v6::sprmSNfcPgn, nullptr}, // sep.nfcPgn nfc byte + {NS_sprm::v6::sprmSDyaPgn, nullptr}, // sep.dyaPgn dya short + {NS_sprm::v6::sprmSDxaPgn, nullptr}, // sep.dxaPgn dya short + {NS_sprm::v6::sprmSFPgnRestart, nullptr}, // sep.fPgnRestart 0 or 1 byte + {NS_sprm::v6::sprmSFEndnote, nullptr}, // sep.fEndnote 0 or 1 byte + {NS_sprm::v6::sprmSLnc, nullptr}, // sep.lnc lnc byte + {NS_sprm::v6::sprmSGprfIhdt, nullptr}, // sep.grpfIhdt grpfihdt byte + {NS_sprm::v6::sprmSNLnnMod, nullptr}, // sep.nLnnMod non-neg int. word + {NS_sprm::v6::sprmSDxaLnn, nullptr}, // sep.dxaLnn dxa word + {NS_sprm::v6::sprmSDyaHdrTop, nullptr}, // sep.dyaHdrTop dya word + {NS_sprm::v6::sprmSDyaHdrBottom, nullptr}, // sep.dyaHdrBottom dya word + {NS_sprm::v6::sprmSLBetween, nullptr}, // sep.fLBetween 0 or 1 byte + {NS_sprm::v6::sprmSVjc, nullptr}, // sep.vjc vjc byte + {NS_sprm::v6::sprmSLnnMin, nullptr}, // sep.lnnMin lnn word + {NS_sprm::v6::sprmSPgnStart, nullptr}, // sep.pgnStart pgn word + {NS_sprm::v6::sprmSBOrientation, nullptr}, // sep.dmOrientPage dm byte + {NS_sprm::v6::sprmSBCustomize, nullptr}, // ? + {NS_sprm::v6::sprmSXaPage, nullptr}, // sep.xaPage xa word + {NS_sprm::v6::sprmSYaPage, nullptr}, // sep.yaPage ya word + {NS_sprm::v6::sprmSDxaLeft, nullptr}, // sep.dxaLeft dxa word + {NS_sprm::v6::sprmSDxaRight, nullptr}, // sep.dxaRight dxa word + {NS_sprm::v6::sprmSDyaTop, nullptr}, // sep.dyaTop dya word + {NS_sprm::v6::sprmSDyaBottom, nullptr}, // sep.dyaBottom dya word + {NS_sprm::v6::sprmSDzaGutter, nullptr}, // sep.dzaGutter dza word + {NS_sprm::v6::sprmSDMPaperReq, nullptr}, // sep.dmPaperReq dm word + {172, nullptr}, //"??172", + {173, nullptr}, //"??173", + {174, nullptr}, //"??174", + {175, nullptr}, //"??175", + {176, nullptr}, //"??176", + {177, nullptr}, //"??177", + {178, nullptr}, //"??178", + {179, nullptr}, //"??179", + {180, nullptr}, //"??180", + {181, nullptr}, //"??181", + {NS_sprm::v6::sprmTJc, nullptr}, // tap.jc jc word (low order byte is significant) + {NS_sprm::v6::sprmTDxaLeft, nullptr}, // tap.rgdxaCenter dxa word + {NS_sprm::v6::sprmTDxaGapHalf, nullptr}, // tap.dxaGapHalf, tap.rgdxaCenter dxa word + {NS_sprm::v6::sprmTFCantSplit, nullptr}, // tap.fCantSplit 1 or 0 byte + {NS_sprm::v6::sprmTTableHeader, nullptr}, // tap.fTableHeader 1 or 0 byte + {NS_sprm::v6::sprmTTableBorders, nullptr}, // tap.rgbrcTable complex 12 bytes + {NS_sprm::v6::sprmTDefTable10, nullptr}, // tap.rgdxaCenter, tap.rgtc complex variable length + {NS_sprm::v6::sprmTDyaRowHeight, nullptr}, // tap.dyaRowHeight dya word + {NS_sprm::v6::sprmTDefTable, nullptr}, // tap.rgtc complex + {NS_sprm::v6::sprmTDefTableShd, nullptr}, // tap.rgshd complex + {NS_sprm::v6::sprmTTlp, nullptr}, // tap.tlp TLP 4 bytes + {NS_sprm::v6::sprmTSetBrc, nullptr}, // tap.rgtc[].rgbrc complex 5 bytes + {NS_sprm::v6::sprmTInsert, nullptr}, // tap.rgdxaCenter, tap.rgtc complex 4 bytes + {NS_sprm::v6::sprmTDelete, nullptr}, // tap.rgdxaCenter, tap.rgtc complex word + {NS_sprm::v6::sprmTDxaCol, nullptr}, // tap.rgdxaCenter complex 4 bytes + {NS_sprm::v6::sprmTMerge, nullptr}, // tap.fFirstMerged, tap.fMerged complex word + {NS_sprm::v6::sprmTSplit, nullptr}, // tap.fFirstMerged, tap.fMerged complex word + {NS_sprm::v6::sprmTSetBrc10, nullptr}, // tap.rgtc[].rgbrc complex 5 bytes + {NS_sprm::v6::sprmTSetShd, nullptr}, // tap.rgshd complex 4 bytes + {207, nullptr}, //dunno }; static wwSprmDispatcher aSprmSrch(aSprms, SAL_N_ELEMENTS(aSprms)); @@ -5696,588 +5564,365 @@ const wwSprmDispatcher *GetWW8SprmDispatcher() { static SprmReadInfo aSprms[] = { - {0, nullptr}, // "0" default resp. error - - {0x4600, &SwWW8ImplReader::Read_StyleCode}, //"sprmPIstd" pap.istd;istd - //(style code);short; - {0xC601, nullptr}, //"sprmPIstdPermute" pap.istd; - //permutation vector; - //variable length; - {0x2602, nullptr}, //"sprmPIncLvl" pap.istd, - //pap.lvl;difference between - //istd of base PAP and istd of - //PAP to be produced; byte; - {0x2403, &SwWW8ImplReader::Read_Justify}, //"sprmPJc" pap.jc;jc - //(justification);byte; - {NS_sprm::LN_PFSideBySide, nullptr}, //"sprmPFSideBySide" - //pap.fSideBySide;0 or 1;byte; - {0x2405, &SwWW8ImplReader::Read_KeepLines}, //"sprmPFKeep" pap.fKeep;0 or - //1;byte; - {0x2406, &SwWW8ImplReader::Read_KeepParas}, //"sprmPFKeepFollow" - //pap.fKeepFollow;0 or 1;byte; - {0x2407, &SwWW8ImplReader::Read_BreakBefore},//"sprmPFPageBreakBefore" - //pap.fPageBreakBefore;0 or 1; - //byte; - {NS_sprm::LN_PBrcl, nullptr}, //"sprmPBrcl" pap.brcl;brcl; - //byte; - {NS_sprm::LN_PBrcp, nullptr}, //"sprmPBrcp" pap.brcp;brcp; - //byte; - {0x260A, &SwWW8ImplReader::Read_ListLevel}, //"sprmPIlvl" pap.ilvl;ilvl; - //byte; - {0x460B, &SwWW8ImplReader::Read_LFOPosition},//"sprmPIlfo" pap.ilfo;ilfo - //(list index) ;short; - {0x240C, &SwWW8ImplReader::Read_NoLineNumb}, //"sprmPFNoLineNumb" - //pap.fNoLnn;0 or 1;byte; - {0xC60D, &SwWW8ImplReader::Read_Tab}, //"sprmPChgTabsPapx" - //pap.itbdMac, pap.rgdxaTab, - //pap.rgtbd;complex;variable - //length - {0x840E, &SwWW8ImplReader::Read_LR}, //Word 97 version of "sprmPDxaRight" pap.dxaRight; - //dxa;word; - {0x840F, &SwWW8ImplReader::Read_LR}, //Apparently Word 97 version of "sprmPDxaLeft" pap.dxaLeft; - //dxa;word; - {0x4610, nullptr}, //"sprmPNest" pap.dxaLeft; - //dxa;word; - {0x8411, &SwWW8ImplReader::Read_LR}, //Word 97 version of "sprmPDxaLeft1" pap.dxaLeft1; - //dxa;word; - {0x6412, &SwWW8ImplReader::Read_LineSpace}, //"sprmPDyaLine" pap.lspd; - //an LSPD, a long word - //structure consisting of a - //short of dyaLine followed by - //a short of fMultLinespace; - //long; - {0xA413, &SwWW8ImplReader::Read_UL}, //"sprmPDyaBefore" - //pap.dyaBefore;dya;word; - {0xA414, &SwWW8ImplReader::Read_UL}, //"sprmPDyaAfter" pap.dyaAfter; - //dya;word; - {0xC615, nullptr}, //"sprmPChgTabs" pap.itbdMac, - //pap.rgdxaTab, pap.rgtbd; - //complex;variable length; - {0x2416, nullptr}, //"sprmPFInTable" pap.fInTable; - //0 or 1;byte; - {0x2417, &SwWW8ImplReader::Read_TabRowEnd}, //"sprmPFTtp" pap.fTtp;0 or 1; - //byte; - {0x8418, nullptr}, //"sprmPDxaAbs" pap.dxaAbs;dxa; - //word; - {0x8419, nullptr}, //"sprmPDyaAbs" pap.dyaAbs;dya; - //word; - {0x841A, nullptr}, //"sprmPDxaWidth" pap.dxaWidth; - //dxa;word; - {0x261B, &SwWW8ImplReader::Read_ApoPPC}, //"sprmPPc" pap.pcHorz, - //pap.pcVert;complex;byte; - {NS_sprm::LN_PBrcTop10, nullptr}, //"sprmPBrcTop10" pap.brcTop; - //BRC10;word; - {NS_sprm::LN_PBrcLeft10, nullptr}, //"sprmPBrcLeft10" pap.brcLeft; - //BRC10;word; - {NS_sprm::LN_PBrcBottom10, nullptr}, //"sprmPBrcBottom10" - //pap.brcBottom;BRC10;word; - {NS_sprm::LN_PBrcRight10, nullptr}, //"sprmPBrcRight10" - //pap.brcRight;BRC10;word; - {NS_sprm::LN_PBrcBetween10, nullptr}, //"sprmPBrcBetween10" - //pap.brcBetween;BRC10;word; - {NS_sprm::LN_PBrcBar10, nullptr}, //"sprmPBrcBar10" pap.brcBar; - //BRC10;word; - {0x4622, nullptr}, //"sprmPDxaFromText10" - //pap.dxaFromText;dxa;word; - {0x2423, nullptr}, //"sprmPWr" pap.wr;wr;byte; - {0x6424, &SwWW8ImplReader::Read_Border}, //"sprmPBrcTop80" pap.brcTop;BRC; - //long; - {0x6425, &SwWW8ImplReader::Read_Border}, //"sprmPBrcLeft80" pap.brcLeft; - //BRC;long; - {0x6426, &SwWW8ImplReader::Read_Border}, //"sprmPBrcBottom80" - //pap.brcBottom;BRC;long; - {0x6427, &SwWW8ImplReader::Read_Border}, //"sprmPBrcRight80" pap.brcRight; - //BRC;long; - {0x6428, &SwWW8ImplReader::Read_Border}, //"sprmPBrcBetween80" - //pap.brcBetween;BRC;long; - {0x6629, nullptr}, //"sprmPBrcBar" pap.brcBar;BRC; - //long; - {0x242A, &SwWW8ImplReader::Read_Hyphenation},//"sprmPFNoAutoHyph" - //pap.fNoAutoHyph;0 or 1;byte; - {0x442B, nullptr}, //"sprmPWHeightAbs" - //pap.wHeightAbs;w;word; - {0x442C, nullptr}, //"sprmPDcs" pap.dcs;DCS;short; - {0x442D, &SwWW8ImplReader::Read_Shade}, //"sprmPShd" pap.shd;SHD;word; - {0x842E, nullptr}, //"sprmPDyaFromText" - //pap.dyaFromText;dya;word; - {0x842F, nullptr}, //"sprmPDxaFromText" - //pap.dxaFromText;dxa;word; - {0x2430, nullptr}, //"sprmPFLocked" pap.fLocked; - //0 or 1;byte; - {0x2431, &SwWW8ImplReader::Read_WidowControl},//"sprmPFWidowControl" - //pap.fWidowControl;0 or 1;byte - {NS_sprm::LN_PRuler, nullptr}, //"sprmPRuler" variable length; - {0x2433, &SwWW8ImplReader::Read_BoolItem}, //"sprmPFKinsoku" pap.fKinsoku; - //0 or 1;byte; - {0x2434, nullptr}, //"sprmPFWordWrap" - //pap.fWordWrap;0 or 1;byte; - {0x2435, &SwWW8ImplReader::Read_BoolItem}, //"sprmPFOverflowPunct" - //pap.fOverflowPunct; 0 or 1; - //byte; - {0x2436, nullptr}, //"sprmPFTopLinePunct" - //pap.fTopLinePunct;0 or 1;byte - {0x2437, &SwWW8ImplReader::Read_BoolItem}, //"sprmPFAutoSpaceDE" - //pap.fAutoSpaceDE;0 or 1;byte; - {0x2438, nullptr}, //"sprmPFAutoSpaceDN" - //pap.fAutoSpaceDN;0 or 1;byte; - {NS_sprm::sprmPWAlignFont, &SwWW8ImplReader::Read_AlignFont}, //"sprmPWAlignFont" - //pap.wAlignFont;iFa; word; - {0x443A, nullptr}, //"sprmPFrameTextFlow" - //pap.fVertical pap.fBackward - //pap.fRotateFont;complex; word - {NS_sprm::LN_PISnapBaseLine, nullptr}, //"sprmPISnapBaseLine" obsolete - //not applicable in Word97 - //and later versions;;byte; - {NS_sprm::LN_PAnld, &SwWW8ImplReader::Read_ANLevelDesc},//"sprmPAnld" pap.anld;; - //variable length; - {NS_sprm::LN_PPropRMark, nullptr}, //"sprmPPropRMark" - //pap.fPropRMark;complex; ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits