/* * (c) Copyright Ascensio System SIA 2010-2023 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish * street, Riga, Latvia, EU, LV-1050. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ #pragma once #include "../../Base/Nullable.h" #include "../../Common/ComplexTypes.h" #include "../Logic/VmlOfficeDrawing.h" #include "../FtnEdn.h" namespace OOX { namespace Logic { class CMathPr; } namespace Settings { //-------------------------------------------------------------------------------- // CWritingStyle 17.15.1.2 (Part 1) //-------------------------------------------------------------------------------- class CWritingStyle : public WritingElement { public: WritingElement_AdditionMethods(CWritingStyle) CWritingStyle(); virtual ~CWritingStyle(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_string m_sAppName; nullable_bool m_oCheckSyle; nullable_string m_sDllVersion; nullable_string m_oLang; nullable_bool m_oNlCheck; nullable_string m_sVendorID; }; //-------------------------------------------------------------------------------- // CAutoCaption 17.15.1.7 (Part 1) //-------------------------------------------------------------------------------- class CAutoCaption : public WritingElement { public: WritingElement_AdditionMethods(CAutoCaption) CAutoCaption(); virtual ~CAutoCaption(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_string m_sCaption; nullable_string m_sName; }; //-------------------------------------------------------------------------------- // CAutoCaptions 17.15.1.8 (Part 1) //-------------------------------------------------------------------------------- class CAutoCaptions : public WritingElement { public: WritingElement_AdditionMethods(CAutoCaptions) CAutoCaptions(); virtual ~CAutoCaptions(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; std::vector m_arrAutoCaption; }; //-------------------------------------------------------------------------------- // CCaption 17.15.1.16 (Part 1) //-------------------------------------------------------------------------------- class CCaption : public WritingElement { public: WritingElement_AdditionMethods(CCaption) CCaption(); virtual ~CCaption(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_bool m_oChapNum; nullable m_oHeading; std::wstring m_sName; nullable_bool m_oNoLabel; nullable m_oNumFmt; nullable m_oPos; nullable m_oSep; }; //-------------------------------------------------------------------------------- // CCaptions 17.15.1.17 (Part 1) //-------------------------------------------------------------------------------- class CCaptions : public WritingElement { public: WritingElement_AdditionMethods(CCaptions) CCaptions(); virtual ~CCaptions(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; std::vector m_arrCaption; nullable m_oAutoCaptions; }; //-------------------------------------------------------------------------------- // CCharacterSpacing 17.15.1.18 (Part 1) //-------------------------------------------------------------------------------- class CCharacterSpacing : public WritingElement { public: WritingElement_AdditionMethods(CCharacterSpacing) CCharacterSpacing(); virtual ~CCharacterSpacing(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: SimpleTypes::CCharacterSpacing m_oVal; }; //-------------------------------------------------------------------------------- // CCompatSetting 17.15.3.4 (Part 1) //-------------------------------------------------------------------------------- class CCompatSetting : public WritingElement { public: WritingElement_AdditionMethods(CCompatSetting) CCompatSetting(); virtual ~CCompatSetting(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_string m_sName; nullable_string m_sUri; nullable_string m_sVal; }; //-------------------------------------------------------------------------------- // CCompat 17.15.1.21 (Part 1) //-------------------------------------------------------------------------------- class CCompat : public WritingElement { public: WritingElement_AdditionMethods(CCompat) CCompat(); virtual ~CCompat(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; // TO DO: Добавить аттрибуты из 9.7.3 Part4 nullable m_oUseSingleBorderforContiguousCells; nullable m_oWpJustification; nullable m_oNoTabHangInd; nullable m_oNoLeading; nullable m_oSpaceForUL; nullable m_oNoColumnBalance; nullable m_oBalanceSingleByteDoubleByteWidth; nullable m_oNoExtraLineSpacing; nullable m_oDoNotLeaveBackslashAlone; nullable m_oUlTrailSpace; nullable m_oDoNotExpandShiftReturn; nullable m_oSpacingInWholePoints; nullable m_oLineWrapLikeWord6; nullable m_oPrintBodyTextBeforeHeader; nullable m_oPrintColBlack; nullable m_oWpSpaceWidth; nullable m_oShowBreaksInFrames; nullable m_oSubFontBySize; nullable m_oSuppressBottomSpacing; nullable m_oSuppressTopSpacing; nullable m_oSuppressSpacingAtTopOfPage; nullable m_oSuppressTopSpacingWP; nullable m_oSuppressSpBfAfterPgBrk; nullable m_oSwapBordersFacingPages; nullable m_oConvMailMergeEsc; nullable m_oTruncateFontHeightsLikeWP6; nullable m_oMwSmallCaps; nullable m_oUsePrinterMetrics; nullable m_oDoNotSuppressParagraphBorders; nullable m_oWrapTrailSpaces; nullable m_oFootnoteLayoutLikeWW8; nullable m_oShapeLayoutLikeWW8; nullable m_oAlignTablesRowByRow; nullable m_oForgetLastTabAlignment; nullable m_oAdjustLineHeightInTable; nullable m_oAutoSpaceLikeWord95; nullable m_oNoSpaceRaiseLower; nullable m_oDoNotUseHTMLParagraphAutoSpacing; nullable m_oLayoutRawTableWidth; nullable m_oLayoutTableRowsApart; nullable m_oUseWord97LineBreakRules; nullable m_oDoNotBreakWrappedTables; nullable m_oDoNotSnapToGridInCell; nullable m_oSelectFldWithFirstOrLastChar; nullable m_oApplyBreakingRules; nullable m_oDoNotWrapTextWithPunct; nullable m_oDoNotUseEastAsianBreakRules; nullable m_oUseWord2002TableStyleRules; nullable m_oGrowAutofit; nullable m_oUseFELayout; nullable m_oUseNormalStyleForList; nullable m_oDoNotUseIndentAsNumberingTabStop; nullable m_oUseAltKinsokuLineBreakRules; nullable m_oAllowSpaceOfSameStyleInTable; nullable m_oDoNotSuppressIndentation; nullable m_oDoNotAutofitConstrainedTables; nullable m_oAutofitToFirstFixedWidthCell; nullable m_oUnderlineTabInNumList; nullable m_oDisplayHangulFixedWidth; nullable m_oSplitPgBreakAndParaMark; nullable m_oDoNotVertAlignCellWithSp; nullable m_oDoNotBreakConstrainedForcedTable; nullable m_oDoNotVertAlignInTxbx; nullable m_oUseAnsiKerningPairs; nullable m_oCachedColBalance; std::vector m_arrCompatSettings; }; //-------------------------------------------------------------------------------- // CDocProtect 17.15.1.29 (Part 1) //-------------------------------------------------------------------------------- class CDocProtect : public WritingElement { public: WritingElement_AdditionMethods(CDocProtect) CDocProtect(); virtual ~CDocProtect(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oAlgorithmName; nullable m_oEdit; nullable_bool m_oEnforcment; nullable_bool m_oFormatting; nullable_string m_sHashValue; nullable_string m_sSaltValue; nullable_int m_oSpinCount; //ext nullable_string m_oAlgIdExt; //long hex nullable_string m_oAlgIdExtSource; nullable m_oCryptAlgorithmClass; nullable_int m_oCryptAlgorithmSid; nullable m_oCryptAlgorithmType; nullable_string m_oCryptProvider; nullable m_oCryptProviderType; nullable_string m_oCryptProviderTypeExt; //long hex nullable_string m_oCryptProviderTypeExtSource; }; //-------------------------------------------------------------------------------- // CDocType 17.15.1.30 (Part 1) //-------------------------------------------------------------------------------- class CDocType : public WritingElement { public: WritingElement_AdditionMethods(CDocType) CDocType(); virtual ~CDocType(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: // Attributes SimpleTypes::CDocType m_oVal; }; //-------------------------------------------------------------------------------- // CDocVar 17.15.1.31 (Part 1) //-------------------------------------------------------------------------------- class CDocVar : public WritingElement { public: WritingElement_AdditionMethods(CDocVar) CDocVar(); virtual ~CDocVar(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: std::wstring m_sName; std::wstring m_sVal; }; //-------------------------------------------------------------------------------- // CDocVars 17.15.1.32 (Part 1) //-------------------------------------------------------------------------------- class CDocVars : public WritingElement { public: WritingElement_AdditionMethods(CDocVars) CDocVars(); virtual ~CDocVars(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; std::vector m_arrDocVar; }; //-------------------------------------------------------------------------------- // CKinsoku 17.15.1.58 (Part 1) //-------------------------------------------------------------------------------- class CKinsoku : public WritingElement { public: WritingElement_AdditionMethods(CKinsoku) CKinsoku(); virtual ~CKinsoku(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: EElementType m_eType; std::wstring m_sLang; std::wstring m_sVal; }; //-------------------------------------------------------------------------------- // CProof 17.15.1.65 (Part 1) //-------------------------------------------------------------------------------- class CProof : public WritingElement { public: WritingElement_AdditionMethods(CProof) CProof(); virtual ~CProof(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oGrammar; nullable m_oSpelling; }; //-------------------------------------------------------------------------------- // CReadingModeInkLockDown 17.15.1.66 (Part 1) //-------------------------------------------------------------------------------- class CReadingModeInkLockDown : public WritingElement { public: WritingElement_AdditionMethods(CReadingModeInkLockDown) CReadingModeInkLockDown(); virtual ~CReadingModeInkLockDown(); public: virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: SimpleTypes::COnOff m_oActualPg; SimpleTypes::CDecimalNumberOrPercent m_oFontSz; SimpleTypes::CPixelsMeasure m_oH; SimpleTypes::CPixelsMeasure m_oW; }; //-------------------------------------------------------------------------------- // CTrackChangesView 17.15.1.69 (Part 1) //-------------------------------------------------------------------------------- class CTrackChangesView : public WritingElement { public: WritingElement_AdditionMethods(CTrackChangesView) CTrackChangesView(); virtual ~CTrackChangesView(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_bool m_oComments; nullable_bool m_oFormatting; nullable_bool m_oInkAnnotataions; nullable_bool m_oInsDel; nullable_bool m_oMarkup; }; //-------------------------------------------------------------------------------- // CDocRsids 17.15.1.72 (Part 1) //-------------------------------------------------------------------------------- class CDocRsids : public WritingElement { public: WritingElement_AdditionMethods(CDocRsids) CDocRsids(); virtual ~CDocRsids(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; nullable m_oRsidRoot; std::vector m_arrRsid; }; //-------------------------------------------------------------------------------- // CSaveThroughXslt 17.15.1.76 (Part 1) //-------------------------------------------------------------------------------- class CSaveThroughXslt : public WritingElement { public: WritingElement_AdditionMethods(CSaveThroughXslt) CSaveThroughXslt(); virtual ~CSaveThroughXslt(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_rId; nullable_string m_sSolutionID; }; //-------------------------------------------------------------------------------- // CSmartTagType 17.15.1.81 (Part 1) //-------------------------------------------------------------------------------- class CSmartTagType : public WritingElement { public: WritingElement_AdditionMethods(CSmartTagType) CSmartTagType(); virtual ~CSmartTagType(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_string m_sName; nullable_string m_sNameSpaceUri; nullable_string m_sUrl; }; //-------------------------------------------------------------------------------- // CStylePaneFilter 17.15.1.85 (Part 1) //-------------------------------------------------------------------------------- class CStylePaneFilter : public WritingElement { public: WritingElement_AdditionMethods(CStylePaneFilter) CStylePaneFilter(); virtual ~CStylePaneFilter(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: // TO DO: Добавить атрибуты из 9.7.2.4 Part4 nullable_bool m_oAllStyles; nullable_bool m_oAlternateStyleNames; nullable_bool m_oClearFormatting; nullable_bool m_oCustomStyles; nullable_bool m_oDirectFormattingOnNumbering; nullable_bool m_oDirectFormattingOnParagraphs; nullable_bool m_oDirectFormattingOnRuns; nullable_bool m_oDirectFormattingOnTables; nullable_bool m_oHeadingStyles; nullable_bool m_oLatentStyles; nullable_bool m_oNumberingStyles; nullable_bool m_oStylesInUse; nullable_bool m_oTableStyles; nullable_bool m_oTop3HeadingStyles; nullable_bool m_oVisibleStyles; }; //-------------------------------------------------------------------------------- // CStyleSort 17.15.1.86 (Part 1) //-------------------------------------------------------------------------------- class CStyleSort : public WritingElement { public: WritingElement_AdditionMethods(CStyleSort) CStyleSort() { } virtual ~CStyleSort() { } virtual void fromXML(XmlUtils::CXmlNode& oNode) { // TO DO: Реализовать CStyleSort::fromXML(XmlUtils::CXmlNode& oNode) } virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } virtual std::wstring toXML() const { std::wstring sResult = L""; return sResult; } virtual EElementType getType() const { return OOX::et_w_stylePaneSortMethod; } private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { if ( oReader.GetAttributesCount() <= 0 ) return; if ( !oReader.MoveToFirstAttribute() ) return; std::wstring wsName = oReader.GetName(); while( !wsName.empty() ) { if ( L"w:val" == wsName ) m_oVal = oReader.GetText(); if ( !oReader.MoveToNextAttribute() ) break; wsName = oReader.GetName(); } oReader.MoveToElement(); } public: SimpleTypes::CStyleSort m_oVal; }; //-------------------------------------------------------------------------------- // CView 17.15.1.92 (Part 1) //-------------------------------------------------------------------------------- class CView : public WritingElement { public: WritingElement_AdditionMethods(CView) CView() { } virtual ~CView() { } virtual void fromXML(XmlUtils::CXmlNode& oNode) { // TO DO: Реализовать CView::fromXML(XmlUtils::CXmlNode& oNode) } virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); if ( !oReader.IsEmptyNode() ) oReader.ReadTillEnd(); } virtual std::wstring toXML() const { std::wstring sResult = L""; return sResult; } virtual EElementType getType() const { return OOX::et_w_stylePaneSortMethod; } private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { if ( oReader.GetAttributesCount() <= 0 ) return; if ( !oReader.MoveToFirstAttribute() ) return; std::wstring wsName = oReader.GetName(); while( !wsName.empty() ) { if ( L"w:val" == wsName ) m_oVal = oReader.GetText(); if ( !oReader.MoveToNextAttribute() ) break; wsName = oReader.GetName(); } oReader.MoveToElement(); } public: SimpleTypes::CView m_oVal; }; //-------------------------------------------------------------------------------- // CWriteProtection 17.15.1.93 (Part 1) //-------------------------------------------------------------------------------- class CWriteProtection : public WritingElement { public: WritingElement_AdditionMethods(CWriteProtection) CWriteProtection(); virtual ~CWriteProtection(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oAlgorithmName; nullable_string m_sHashValue; nullable_bool m_oRecommended; nullable_string m_sSaltValue; nullable_int m_oSpinCount; //ext nullable_string m_oAlgIdExt; //long hex nullable_string m_oAlgIdExtSource; nullable m_oCryptAlgorithmClass; nullable_int m_oCryptAlgorithmSid; nullable m_oCryptAlgorithmType; nullable_string m_oCryptProvider; nullable m_oCryptProviderType; nullable_string m_oCryptProviderTypeExt; //long hex nullable_string m_oCryptProviderTypeExtSource; }; //-------------------------------------------------------------------------------- // CZoom 17.15.1.94 (Part 1) //-------------------------------------------------------------------------------- class CZoom : public WritingElement { public: WritingElement_AdditionMethods(CZoom) CZoom(); virtual ~CZoom(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: SimpleTypes::CDecimalNumberOrPercent m_oPercent; nullable m_oVal; }; //-------------------------------------------------------------------------------- // CEdnDocProps 17.11.4 (Part 1) //-------------------------------------------------------------------------------- class CEdnDocProps : public WritingElement { public: WritingElement_AdditionMethods(CEdnDocProps) CEdnDocProps(OOX::Document *pMain = NULL); virtual ~CEdnDocProps(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; public: std::vector m_arrEndnote; nullable m_oNumFmt; nullable m_oNumRestart; nullable m_oNumStart; nullable m_oPos; }; //-------------------------------------------------------------------------------- // CFtnDocProps 17.11.12 (Part 1) //-------------------------------------------------------------------------------- class CFtnDocProps : public WritingElement { public: WritingElement_AdditionMethods(CFtnDocProps) CFtnDocProps(OOX::Document *pMain = NULL); virtual ~CFtnDocProps(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; std::vector m_arrFootnote; nullable m_oNumFmt; nullable m_oNumRestart; nullable m_oNumStart; nullable m_oPos; }; //-------------------------------------------------------------------------------- // CSchema 23.2.1 (Part 1) //-------------------------------------------------------------------------------- class CSchema : public WritingElement { public: WritingElement_AdditionMethods(CSchema) CSchema(); virtual ~CSchema(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: std::wstring m_sManifestLocation; std::wstring m_sShemaLanguage; std::wstring m_sShemaLocation; std::wstring m_sUri; }; //-------------------------------------------------------------------------------- // CSchemaLibrary 23.2.2 (Part 1) //-------------------------------------------------------------------------------- class CSchemaLibrary : public WritingElement { public: WritingElement_AdditionMethods(CSchemaLibrary) CSchemaLibrary(); virtual ~CSchemaLibrary(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; std::vector m_arrSchema; }; //-------------------------------------------------------------------------------- // CShapeDefaults 9.7.2.1;9.7.2.2 (Part 4) //-------------------------------------------------------------------------------- class CShapeDefaults : public WritingElementWithChilds<> { public: WritingElement_AdditionMethods(CShapeDefaults) CShapeDefaults(); CShapeDefaults(EElementType type); virtual ~CShapeDefaults(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; public: EElementType m_eType; }; } // namespace Settings //-------------------------------------------------------------------------------- // CSettings 17.11.15.1.78 //-------------------------------------------------------------------------------- class CSettings : public OOX::File, OOX::WritingElement { public: CSettings(OOX::Document *pMain); CSettings(OOX::Document *pMain, const CPath& oPath); CSettings(XmlUtils::CXmlNode& oNode); CSettings(XmlUtils::CXmlLiteReader& oReader); virtual ~CSettings(); virtual void read(const CPath& oFilePath); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual void write(const CPath& oFilePath, const CPath& oDirectory, CContentTypes& oContent) const; virtual std::wstring toXML() const; virtual EElementType getType() const; virtual const OOX::FileType type() const; virtual const CPath DefaultDirectory() const; virtual const CPath DefaultFileName() const; void SetDefaults(); //------------------------------------------------------------------------------------------------------------------ nullable m_oActiveWritingStyle; nullable m_oAlignBordersAndEdges; nullable m_oAlwaysMergeEmptyNamespace; nullable m_oAlwaysShowPlaceholderText; nullable m_oAttachedSchema; nullable m_oAttachedTemplate; nullable m_oAutoFormatOverride; nullable m_oAutoHyphenation; nullable m_oBookFoldPrinting; nullable m_oBookFoldPrintingSheets; nullable m_oBookFoldRevPrinting; nullable m_oBordersDoNotSurroundFooter; nullable m_oBordersDoNotSurroundHeader; nullable m_oCaptions; nullable m_oCharacterSpacingControl; nullable m_oClickAndTypeStyle; nullable m_oClrSchemeMapping; nullable m_oCompat; nullable m_oConsecutiveHyphenLimit; nullable m_oDecimalSymbol; nullable m_oDefaultTableStyle; nullable m_oDefaultTabStop; nullable m_oDisplayBackgroundShape; nullable m_oDisplayHorizontalDrawingGridEvery; nullable m_oDisplayVerticalDrawingGridEvery; nullable m_oDocumentProtection; nullable m_oDocumentType; nullable m_oDocVars; nullable m_oDoNotAutoCompressPictures; nullable m_oDoNotDemarcateInvalidXml; nullable m_oDoNotDisplayPageBoundaries; nullable m_oDoNotEmbedSmartTags; nullable m_oDoNotHyphenateCaps; nullable m_oDoNotIncludeSubdocsInStats; nullable m_oDoNotShadeFormData; nullable m_oDoNotTrackFormatting; nullable m_oDoNotTrackMoves; nullable m_oDoNotUseMarginsForDrawingGridOrigin; nullable m_oDoNotValidateAgainstSchema; nullable m_oDrawingGridHorizontalOrigin; nullable m_oDrawingGridHorizontalSpacing; nullable m_oDrawingGridVerticalOrigin; nullable m_oDrawingGridVerticalSpacing; nullable m_oEmbedSystemFonts; nullable m_oEmbedTrueTypeFonts; nullable m_oEndnotePr; nullable m_oEvenAndOddHeaders; nullable m_oFootnotePr; nullable m_oForceUpgrade; nullable m_oFormsDesign; nullable m_oGutterAtTop; nullable m_oHdrShapeDefaults; nullable m_oHideGrammaticalErrors; nullable m_oHideSpellingErrors; nullable m_oHyphenationZone; nullable m_oIgnoreMixedContent; nullable m_oLinkStyles; nullable m_oListSeparator; // TO DO: Settings::mailMerge nullable m_oMathPr; nullable m_oMirrorMargins; nullable m_oNoLineBreaksAfter; nullable m_oNoLineBreaksBefore; nullable m_oNoPunctuationKerning; nullable m_oPrintFormsData; nullable m_oPrintFractionalCharacterWidth; nullable m_oPrintPostScriptOverText; nullable m_oPrintTwoOnOne; nullable m_oProofState; nullable m_oReadModeInkLockDown; nullable m_oRemoveDateAndTime; nullable m_oRemovePersonalInformation; nullable m_oRevisionView; nullable m_oRsids; nullable m_oSaveFormsData; nullable m_oSaveInvalidXml; nullable m_oSavePreviewPicture; nullable m_oSaveSubsetFonts; nullable m_oSaveThroughtXslt; nullable m_oSaveXmlDataOnly; nullable m_oSchemaLibrary; nullable m_oShapeDefaults; nullable m_oShowEnvelope; nullable m_oShowXMLTags; std::vector m_arrSmartTagType; nullable m_oStrictFirstAndLastChars; nullable m_oStyleLockQFSet; nullable m_oStyleLockTheme; nullable m_oStylePaneFormatFilter; nullable m_oStylePaneSortMethod; nullable m_oSummaryLength; nullable m_oThemeFontLang; nullable m_oTrackRevisions; nullable m_oUpdateFields; nullable m_oUseXSLTWhenSaving; nullable m_oView; nullable m_oWriteProtection; nullable m_oZoom; }; //-------------------------------------------------------------------------------- // CSettingsCustom //-------------------------------------------------------------------------------- class CSettingsCustom { public: static std::wstring GetSchemaUrl(); void fromXML(const std::wstring& sXml); std::wstring toXML(); bool IsEmpty(); nullable m_oSdtGlobalColor; nullable m_oSdtGlobalShowHighlight; nullable m_oSpecialFormsHighlight; }; } // namespace OOX