/* * (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 "../Table/Autofilter.h" #include "../../DocxFormat/IFileContainer.h" #include "../../Common/SimpleTypes_Spreadsheet.h" namespace OOX { namespace Drawing { class COfficeArtExtensionList; } namespace Spreadsheet { //----------------------------------------------------------------------------------------------------------------------- class CMdxKPI : public WritingElement { public: WritingElement_XlsbConstructors(CMdxKPI) WritingElement_AdditionMethods(CMdxKPI) CMdxKPI(); virtual ~CMdxKPI(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oN; nullable_uint m_oNp; nullable m_oP; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //----------------------------------------------------------------------------------------------------------------------- class CMdxMemeberProp : public WritingElement { public: WritingElement_XlsbConstructors(CMdxMemeberProp) WritingElement_AdditionMethods(CMdxMemeberProp) CMdxMemeberProp(); virtual ~CMdxMemeberProp(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oN; nullable_uint m_oNp; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //----------------------------------------------------------------------------------------------------------------------- class CMetadataStringIndex : public WritingElement { public: WritingElement_XlsbConstructors(CMetadataStringIndex) WritingElement_AdditionMethods(CMetadataStringIndex) CMetadataStringIndex(); virtual ~CMetadataStringIndex(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oX; nullable_bool m_oS; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //------------------------------------------------------------------------------------------------------------------------ class CMdxSet : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CMdxSet) WritingElement_AdditionMethods(CMdxSet) CMdxSet(); virtual ~CMdxSet(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oNs; nullable_uint m_oC; nullable m_oO; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //------------------------------------------------------------------------------------------------------------------------ class CMdxTuple : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CMdxTuple) WritingElement_AdditionMethods(CMdxTuple) CMdxTuple(); virtual ~CMdxTuple(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oC; nullable_string m_oCt; nullable_uint m_oSi; nullable_uint m_oFi; nullable_uint m_oBc; nullable_uint m_oFc; nullable_bool m_oI; nullable_bool m_oU; nullable_bool m_oSt; nullable_bool m_oB; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //------------------------------------------------------------------------------------------------------------------------ class CMdx : public WritingElement { public: WritingElement_XlsbConstructors(CMdx) WritingElement_AdditionMethods(CMdx) CMdx(); virtual ~CMdx(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable m_oMdxTuple; nullable m_oMdxSet; nullable m_oCMdxKPI; nullable m_oMdxMemeberProp; nullable_uint m_oN; nullable m_oF; }; //------------------------------------------------------------------------------------------------------------------------ class CMdxMetadata : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CMdxMetadata) WritingElement_AdditionMethods(CMdxMetadata) CMdxMetadata(); virtual ~CMdxMetadata(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oCount; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataString : public WritingElement { public: WritingElement_XlsbConstructors(CMetadataString) WritingElement_AdditionMethods(CMetadataString) CMetadataString(); virtual ~CMetadataString(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_string m_oV; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataRecord : public WritingElement { public: WritingElement_AdditionMethods(CMetadataRecord) CMetadataRecord(); virtual ~CMetadataRecord(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_uint m_oT; nullable_uint m_oV; }; //------------------------------------------------------------------------------------------------------------------------ class CFutureMetadataBlock : public WritingElement { public: WritingElement_XlsbConstructors(CFutureMetadataBlock) WritingElement_AdditionMethods(CFutureMetadataBlock) CFutureMetadataBlock(); virtual ~CFutureMetadataBlock(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable m_oExtLst; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataType : public WritingElement { public: WritingElement_XlsbConstructors(CMetadataType) WritingElement_AdditionMethods(CMetadataType) CMetadataType(); virtual ~CMetadataType(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); public: nullable_string m_oName; nullable_uint m_oMinSupportedVersion; nullable_bool m_oGhostRow; nullable_bool m_oGhostCol; nullable_bool m_oEdit; nullable_bool m_oDelete; nullable_bool m_oCopy; nullable_bool m_oPasteAll; nullable_bool m_oPasteFormulas; nullable_bool m_oPasteValues; nullable_bool m_oPasteFormats; nullable_bool m_oPasteComments; nullable_bool m_oPasteDataValidation; nullable_bool m_oPasteBorders; nullable_bool m_oPasteColWidths; nullable_bool m_oPasteNumberFormats; nullable_bool m_oMerge; nullable_bool m_oSplitFirst; nullable_bool m_oSplitAll; nullable_bool m_oRowColShift; nullable_bool m_oClearAll; nullable_bool m_oClearFormats; nullable_bool m_oClearContents; nullable_bool m_oClearComments; nullable_bool m_oAssign; nullable_bool m_oCoerce; nullable_bool m_oCellMeta; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataTypes : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CMetadataTypes) WritingElement_AdditionMethods(CMetadataTypes) CMetadataTypes(); virtual ~CMetadataTypes(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oCount; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataBlock : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CMetadataBlock) WritingElement_AdditionMethods(CMetadataBlock) CMetadataBlock(); virtual ~CMetadataBlock(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataBlocks : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CMetadataBlocks) WritingElement_AdditionMethods(CMetadataBlocks) CMetadataBlocks(); virtual ~CMetadataBlocks(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin(const bool cellMeta) const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oCount; std::wstring m_sName; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataStrings : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CMetadataStrings) WritingElement_AdditionMethods(CMetadataStrings) CMetadataStrings(); virtual ~CMetadataStrings(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oCount; }; //------------------------------------------------------------------------------------------------------------------------ class CFutureMetadata : public WritingElementWithChilds { public: WritingElement_XlsbConstructors(CFutureMetadata) WritingElement_AdditionMethods(CFutureMetadata) CFutureMetadata(); virtual ~CFutureMetadata(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_string m_oName; nullable_uint m_oCount; nullable m_oExtLst; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //-------------------------------------------------------------------------------------------------------------- class CMetadata : public WritingElement { public: WritingElement_AdditionMethods(CMetadata) CMetadata(); virtual ~CMetadata(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin() const; virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; public: nullable m_oMetadataTypes; nullable m_oMetadataStrings; nullable m_oMdxMetadata; nullable m_oCellMetadata; nullable m_oValueMetadata; std::vector m_arFutureMetadata; nullable m_oExtLst; }; //------------------------------------------------------------------------------------------------------------------------ class CMetadataFile : public OOX::File { public: CMetadataFile(OOX::Document* pMain); CMetadataFile(OOX::Document* pMain, const CPath& oRootPath, const CPath& oPath); virtual ~CMetadataFile(); void readBin(const CPath& oPath); XLS::BaseObjectPtr WriteBin() const; virtual void read(const CPath& oPath); virtual void read(const CPath& oRootPath, const CPath& oPath); virtual void write(const CPath& oPath, const CPath& oDirectory, CContentTypes& oContent) const; virtual const OOX::FileType type() const; virtual const CPath DefaultDirectory() const; virtual const CPath DefaultFileName() const; const CPath& GetReadPath(); nullable m_oMetadata; private: CPath m_oReadPath; }; //----------------------------------------------------------------------------------------------------------------------- class CDynamicArrayProperties : public WritingElement { public: WritingElement_XlsbConstructors(CDynamicArrayProperties) WritingElement_AdditionMethods(CDynamicArrayProperties) CDynamicArrayProperties(); virtual ~CDynamicArrayProperties(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin(); virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_bool m_oFDynamic; nullable_bool m_oFCollapsed; nullable m_oExtLst; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; //----------------------------------------------------------------------------------------------------------------------- class CRichValueBlock : public WritingElement { public: WritingElement_XlsbConstructors(CRichValueBlock) WritingElement_AdditionMethods(CRichValueBlock) CRichValueBlock(); virtual ~CRichValueBlock(); virtual void fromXML(XmlUtils::CXmlNode& node); virtual std::wstring toXML() const; void fromBin(XLS::BaseObjectPtr& obj); XLS::BaseObjectPtr toBin(); virtual void toXML(NSStringUtils::CStringBuilder& writer) const; virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; nullable_uint m_oI; private: void ReadAttributes(XmlUtils::CXmlLiteReader& oReader); }; } //Spreadsheet } // namespace OOX