/* * (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 "../WritingElement.h" #include "../../Common/ComplexTypes.h" namespace ComplexTypes { namespace Word { //-------------------------------------------------------------------------------- // Column 17.6.3 (Part 1) //-------------------------------------------------------------------------------- class CColumn : public ComplexType { public: ComplexTypes_AdditionConstructors(CColumn) CColumn(); virtual ~CColumn(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; nullable m_oSpace; nullable m_oW; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //-------------------------------------------------------------------------------- // DocGrid 17.6.5 (Part 1) //-------------------------------------------------------------------------------- class CDocGrid : public ComplexType { public: ComplexTypes_AdditionConstructors(CDocGrid) CDocGrid(); virtual ~CDocGrid(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oCharSpace; nullable m_oLinePitch; nullable m_oType; }; //-------------------------------------------------------------------------------- // HdrFtrRef 17.10.5 (Part 1) //-------------------------------------------------------------------------------- class CHdrFtrRef : public ComplexType { public: ComplexTypes_AdditionConstructors(CHdrFtrRef) CHdrFtrRef(); virtual ~CHdrFtrRef(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oId; nullable m_oType; }; //-------------------------------------------------------------------------------- // LineNumber 17.6.8 (Part 1) //-------------------------------------------------------------------------------- class CLineNumber : public ComplexType { public: ComplexTypes_AdditionConstructors(CLineNumber) CLineNumber(); virtual ~CLineNumber(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oCountBy; nullable m_oDistance; nullable m_oRestart; nullable m_oStart; }; //-------------------------------------------------------------------------------- // PaperSource 17.6.9 (Part 1) //-------------------------------------------------------------------------------- class CPaperSource : public ComplexType { public: ComplexTypes_AdditionConstructors(CPaperSource) CPaperSource(); virtual ~CPaperSource(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oFirst; nullable m_oOther; }; //-------------------------------------------------------------------------------- // PageBorder 17.6.7 (Part 1) //-------------------------------------------------------------------------------- class CPageBorder : public ComplexType { public: ComplexTypes_AdditionConstructors(CPageBorder) CPageBorder(); virtual ~CPageBorder(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oColor; nullable m_oFrame; nullable m_oId; nullable m_oShadow; nullable m_oSpace; nullable m_oSz; nullable m_oThemeColor; nullable m_oThemeShade; nullable m_oThemeTint; nullable m_oVal; }; //-------------------------------------------------------------------------------- // BottomPageBorder 17.6.2 (Part 1) //-------------------------------------------------------------------------------- class CBottomPageBorder : public CPageBorder { public: ComplexTypes_AdditionConstructors(CBottomPageBorder) CBottomPageBorder(); virtual ~CBottomPageBorder(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oBottomLeft; nullable m_oBottomRight; }; //-------------------------------------------------------------------------------- // TopPageBorder 17.6.7 (Part 1) //-------------------------------------------------------------------------------- class CTopPageBorder : public CPageBorder { public: ComplexTypes_AdditionConstructors(CTopPageBorder) CTopPageBorder(); virtual ~CTopPageBorder(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oTopLeft; nullable m_oTopRight; }; //-------------------------------------------------------------------------------- // PageMar 17.6.11 (Part 1) //-------------------------------------------------------------------------------- class CPageMar : public ComplexType { public: ComplexTypes_AdditionConstructors(CPageMar) CPageMar(); virtual ~CPageMar(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oBottom; nullable m_oFooter; nullable m_oGutter; nullable m_oHeader; nullable m_oLeft; nullable m_oRight; nullable m_oTop; }; //-------------------------------------------------------------------------------- // PageNumber 17.6.12 (Part 1) //-------------------------------------------------------------------------------- class CPageNumber : public ComplexType { public: ComplexTypes_AdditionConstructors(CPageNumber) CPageNumber(); virtual ~CPageNumber(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oChapSep; nullable m_oChapStyle; nullable m_oFmt; nullable m_oStart; }; //-------------------------------------------------------------------------------- // PageSz 17.6.13 (Part 1) //-------------------------------------------------------------------------------- class CPageSz : public ComplexType { public: ComplexTypes_AdditionConstructors(CPageSz) CPageSz(); virtual ~CPageSz(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oCode; nullable m_oH; nullable m_oOrient; nullable m_oW; }; //-------------------------------------------------------------------------------- // SectType 17.6.22 (Part 1) //-------------------------------------------------------------------------------- class CSectType : public ComplexType { public: ComplexTypes_AdditionConstructors(CSectType) CSectType(); virtual ~CSectType(); virtual void FromXML(XmlUtils::CXmlNode& oNode); virtual void FromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring ToString() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oVal; }; } // Word } // ComplexTypes namespace OOX { namespace Logic { //-------------------------------------------------------------------------------- // Columns 17.6.4 (Part 1) //-------------------------------------------------------------------------------- class CColumns : public WritingElement { public: WritingElement_AdditionMethods(CColumns) CColumns(); virtual ~CColumns(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType () const; nullable m_oEqualWidth; nullable m_oNum; nullable m_oSep; nullable m_oSpace; std::vector< nullable> m_arrColumns; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //-------------------------------------------------------------------------------- // EdnProps 17.11.5 (Part 1) //-------------------------------------------------------------------------------- class CEdnProps : public WritingElement { public: WritingElement_AdditionMethods(CEdnProps) CEdnProps(); virtual ~CEdnProps(); public: virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; public: nullable m_oNumFmt; nullable m_oNumRestart; nullable m_oNumStart; nullable m_oPos; }; //-------------------------------------------------------------------------------- // FtnProps 17.11.11 (Part 1) //-------------------------------------------------------------------------------- class CFtnProps : public WritingElement { public: WritingElement_AdditionMethods(CFtnProps) CFtnProps(); virtual ~CFtnProps(); public: virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; public: nullable m_oNumFmt; nullable m_oNumRestart; nullable m_oNumStart; nullable m_oPos; }; //-------------------------------------------------------------------------------- // PageBorders 17.6.10 (Part 1) //-------------------------------------------------------------------------------- class CPageBorders : public WritingElement { public: WritingElement_AdditionMethods(CPageBorders) CPageBorders(); virtual ~CPageBorders(); 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: // Attributes nullable m_oDisplay; nullable m_oOffsetFrom; nullable m_oZOrder; // Childs nullable m_oBottom; nullable m_oLeft; nullable m_oRight; nullable m_oTop; }; //-------------------------------------------------------------------------------- // SectPrChange 17.13.5.32 (Part 1) //-------------------------------------------------------------------------------- class CSectionProperty; class CSectPrChange : public WritingElement { public: WritingElement_AdditionMethods(CSectPrChange) CSectPrChange(); virtual ~CSectPrChange(); 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 nullable m_sAuthor; nullable m_oDate; nullable m_oId; nullable m_sUserId; // Childs nullable m_pSecPr; }; //-------------------------------------------------------------------------------- // SectionProperty //-------------------------------------------------------------------------------- class CSectionProperty : public WritingElement { public: CSectionProperty(OOX::Document *pMain = NULL); virtual ~CSectionProperty(); virtual void ClearItems(); CSectionProperty& operator =(const XmlUtils::CXmlNode &oNode); CSectionProperty& operator =(const XmlUtils::CXmlLiteReader& oReader); virtual void fromXML(XmlUtils::CXmlNode &oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual std::wstring toXML() const; virtual EElementType getType() const; static const CSectionProperty Merge(const CSectionProperty& oPrev, const CSectionProperty& oCurrent); private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: bool m_bSectPrChange = false; bool m_bEmpty = false; nullable m_oRsidDel; nullable m_oRsidR; nullable m_oRsidRPr; nullable m_oRsidSect; nullable m_oBidi; nullable m_oCols; nullable m_oDocGrid; nullable m_oEndnotePr; std::vector< nullable> m_arrFooterReference; nullable m_oFootnotePr; nullable m_oFormProt; std::vector< nullable> m_arrHeaderReference; nullable m_oLnNumType; nullable m_oNoEndnote; nullable m_oPaperSrc; nullable m_oPgBorders; nullable m_oPgMar; nullable m_oPgNumType; nullable m_oPgSz; nullable m_oPrinterSettings; nullable m_oRtlGutter; nullable m_oSectPrChange; nullable m_oTextDirection; nullable m_oTitlePg; nullable m_oType; nullable m_oVAlign; }; } // namespace Logic }// namespace OOX