diff --git a/OOXML/Projects/Linux/XlsbFormatLib/XlsbFormatLib.pro b/OOXML/Projects/Linux/XlsbFormatLib/XlsbFormatLib.pro index cb65d925e1..ac514217f6 100644 --- a/OOXML/Projects/Linux/XlsbFormatLib/XlsbFormatLib.pro +++ b/OOXML/Projects/Linux/XlsbFormatLib/XlsbFormatLib.pro @@ -705,6 +705,8 @@ SOURCES += \ ../../../XlsbFormat/Biff12_records/EndEsmdx.cpp \ ../../../XlsbFormat/Biff12_records/BeginMdx.cpp \ ../../../XlsbFormat/Biff12_records/EndMdx.cpp \ + ../../../XlsbFormat/Biff12_records/BeginMdxMbrProp.h \ + ../../../XlsbFormat/Biff12_records/EndMdxMbrProp.h \ ### Biff12_structures ../../../XlsbFormat/Biff12_structures/LPByteBuf.cpp \ ../../../XlsbFormat/Biff12_structures/IsoPasswordData.cpp \ @@ -1083,6 +1085,7 @@ SOURCES += \ ../../../XlsbFormat/Biff12_unions/ESMDB.cpp \ ../../../XlsbFormat/Biff12_unions/ESMDX.cpp \ ../../../XlsbFormat/Biff12_unions/MDX.cpp \ + ../../../XlsbFormat/Biff12_unions/MDXMBRPROP.cpp \ } HEADERS += \ ../../../XlsbFormat/Biff12_unions/COMMENTS.h \ @@ -1762,6 +1765,8 @@ HEADERS += \ ../../../XlsbFormat/Biff12_records/EndEsmdx.h \ ../../../XlsbFormat/Biff12_records/BeginMdx.h \ ../../../XlsbFormat/Biff12_records/EndMdx.h \ + ../../../XlsbFormat/Biff12_records/BeginMdxMbrProp.h \ + ../../../XlsbFormat/Biff12_records/EndMdxMbrProp.h \ ### Biff12_structures ../../../XlsbFormat/Biff12_structures/ACProductVersion.h \ ../../../XlsbFormat/Biff12_structures/Blxf.h \ @@ -2139,4 +2144,5 @@ HEADERS += \ ../../../XlsbFormat/Biff12_unions/ESSTR.h \ ../../../XlsbFormat/Biff12_unions/ESMDB.h \ ../../../XlsbFormat/Biff12_unions/ESMDX.h \ - ../../../XlsbFormat/Biff12_unions/MDX.h \ \ No newline at end of file + ../../../XlsbFormat/Biff12_unions/MDX.h \ + ../../../XlsbFormat/Biff12_unions/MDXMBRPROP.cpp \ \ No newline at end of file diff --git a/OOXML/XlsbFormat/Biff12_records/BeginMdxMbrProp.cpp b/OOXML/XlsbFormat/Biff12_records/BeginMdxMbrProp.cpp new file mode 100644 index 0000000000..40870ee122 --- /dev/null +++ b/OOXML/XlsbFormat/Biff12_records/BeginMdxMbrProp.cpp @@ -0,0 +1,65 @@ +/* + * (c) Copyright Ascensio System SIA 2010-2024 + * + * 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 + * + */ + +#include "BeginMdxMbrProp.h" + +using namespace XLS; + +namespace XLSB +{ + + BeginMdxMbrProp::BeginMdxMbrProp() + { + } + + BeginMdxMbrProp::~BeginMdxMbrProp() + { + } + + BaseObjectPtr BeginMdxMbrProp::clone() + { + return BaseObjectPtr(new BeginMdxMbrProp(*this)); + } + + void BeginMdxMbrProp::readFields(XLS::CFRecord& record) + { + record >> istrMbr >> istrProp; + } + + void BeginMdxMbrProp::writeFields(XLS::CFRecord& record) + { + record << istrMbr << istrProp; + } + + +} // namespace XLSB + diff --git a/OOXML/XlsbFormat/Biff12_records/BeginMdxMbrProp.h b/OOXML/XlsbFormat/Biff12_records/BeginMdxMbrProp.h new file mode 100644 index 0000000000..1dc50bfd70 --- /dev/null +++ b/OOXML/XlsbFormat/Biff12_records/BeginMdxMbrProp.h @@ -0,0 +1,61 @@ +/* + * (c) Copyright Ascensio System SIA 2010-2024 + * + * 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 "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/BiffRecord.h" +#include "../../XlsxFormat/WritingElement.h" + + + +namespace XLSB +{ + + // Logical representation of BrtBeginMdxMbrProp record in BIFF12 + class BeginMdxMbrProp: public XLS::BiffRecord + { + BIFF_RECORD_DEFINE_TYPE_INFO(BeginMdxMbrProp) + BASE_OBJECT_DEFINE_CLASS_NAME(BeginMdxMbrProp) + public: + BeginMdxMbrProp(); + ~BeginMdxMbrProp(); + + XLS::BaseObjectPtr clone(); + + void readFields(XLS::CFRecord& record) override; + void writeFields(XLS::CFRecord& record) override; + + _INT32 istrMbr; + _INT32 istrProp; + }; + +} // namespace XLSB + diff --git a/OOXML/XlsbFormat/Biff12_records/EndMdxMbrProp.cpp b/OOXML/XlsbFormat/Biff12_records/EndMdxMbrProp.cpp new file mode 100644 index 0000000000..9e3af0e182 --- /dev/null +++ b/OOXML/XlsbFormat/Biff12_records/EndMdxMbrProp.cpp @@ -0,0 +1,53 @@ +/* + * (c) Copyright Ascensio System SIA 2010-2024 + * + * 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 + * + */ + +#include "EndMdxMbrProp.h" + +using namespace XLS; + +namespace XLSB +{ + + EndMdxMbrProp::EndMdxMbrProp() + { + } + + EndMdxMbrProp::~EndMdxMbrProp() + { + } + + BaseObjectPtr EndMdxMbrProp::clone() + { + return BaseObjectPtr(new EndMdxMbrProp(*this)); + } +} // namespace XLSB + diff --git a/OOXML/XlsbFormat/Biff12_records/EndMdxMbrProp.h b/OOXML/XlsbFormat/Biff12_records/EndMdxMbrProp.h new file mode 100644 index 0000000000..1d2704ccf7 --- /dev/null +++ b/OOXML/XlsbFormat/Biff12_records/EndMdxMbrProp.h @@ -0,0 +1,54 @@ +/* + * (c) Copyright Ascensio System SIA 2010-2024 + * + * 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 "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/BiffRecord.h" +#include "../../XlsxFormat/WritingElement.h" + + + +namespace XLSB +{ + // Logical representation of BrtEndMdxMbrProp record in BIFF12 + class EndMdxMbrProp: public XLS::BiffRecord + { + BIFF_RECORD_DEFINE_TYPE_INFO(EndMdxMbrProp) + BASE_OBJECT_DEFINE_CLASS_NAME(EndMdxMbrProp) + public: + EndMdxMbrProp(); + ~EndMdxMbrProp(); + + XLS::BaseObjectPtr clone(); + }; + +} // namespace XLSB + diff --git a/OOXML/XlsbFormat/Biff12_unions/MDX.cpp b/OOXML/XlsbFormat/Biff12_unions/MDX.cpp index e6708e27a4..38c3765ce7 100644 --- a/OOXML/XlsbFormat/Biff12_unions/MDX.cpp +++ b/OOXML/XlsbFormat/Biff12_unions/MDX.cpp @@ -31,11 +31,11 @@ */ #include "MDX.h" +#include "MDXMBRPROP.h" #include "../Biff12_records/BeginMdx.h" #include "../Biff12_records/EndMdx.h" - using namespace XLS; namespace XLSB diff --git a/OOXML/XlsbFormat/Biff12_unions/MDXMBRPROP.cpp b/OOXML/XlsbFormat/Biff12_unions/MDXMBRPROP.cpp new file mode 100644 index 0000000000..0a815c860b --- /dev/null +++ b/OOXML/XlsbFormat/Biff12_unions/MDXMBRPROP.cpp @@ -0,0 +1,107 @@ +/* + * (c) Copyright Ascensio System SIA 2010-2024 + * + * 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 + * + */ + +#include "MDXMBRPROP.h" + +#include "../Biff12_records/BeginMdxMbrProp.h" +#include "../Biff12_records/EndMdxMbrProp.h" + + +using namespace XLS; + +namespace XLSB +{ + + MDXMBRPROP::MDXMBRPROP() + { + } + + MDXMBRPROP::~MDXMBRPROP() + { + } + + BaseObjectPtr MDXMBRPROP::clone() + { + return BaseObjectPtr(new MDXMBRPROP(*this)); + } + + //MDXMBRPROP = BrtBeginMDXMBRPROP COMMENTAUTHORS COMMENTLIST *FRT BrtEndMDXMBRPROP + const bool MDXMBRPROP::loadContent(BinProcessor& proc) + { + /*if (proc.optional()) + { + m_bBrtBeginMDXMBRPROP = true; + elements_.pop_back(); + } + else + m_bBrtBeginMDXMBRPROP = false; + + if (proc.optional()) + { + m_COMMENTAUTHORS = elements_.back(); + elements_.pop_back(); + } + if (proc.optional()) + { + m_COMMENTLIST = elements_.back(); + elements_.pop_back(); + } + int count = proc.repeated(0, 0); + + while(count > 0) + { + //m_arFRT.insert(m_arFRT.begin(), elements_.back()); + elements_.pop_back(); + count--; + } + if (proc.optional()) + { + m_bBrtEndMDXMBRPROP = true; + elements_.pop_back(); + } + else + m_bBrtEndMDXMBRPROP = false;*/ + + return true; + } + + const bool MDXMBRPROP::saveContent(XLS::BinProcessor & proc) + { + if (m_BrtBeginMdxMbrProp != nullptr) + proc.mandatory(*m_BrtBeginMdxMbrProp); + proc.mandatory(); + + return true; + } + +} // namespace XLSB + diff --git a/OOXML/XlsbFormat/Biff12_unions/MDXMBRPROP.h b/OOXML/XlsbFormat/Biff12_unions/MDXMBRPROP.h new file mode 100644 index 0000000000..42a0514b2d --- /dev/null +++ b/OOXML/XlsbFormat/Biff12_unions/MDXMBRPROP.h @@ -0,0 +1,59 @@ +/* + * (c) Copyright Ascensio System SIA 2010-2024 + * + * 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 "../../../MsBinaryFile/XlsFile/Format/Logic/CompositeObject.h" + + + +namespace XLSB +{ + + class MDXMBRPROP: public XLS::CompositeObject + { + BASE_OBJECT_DEFINE_CLASS_NAME(MDXMBRPROP) + public: + MDXMBRPROP(); + ~MDXMBRPROP(); + + XLS::BaseObjectPtr clone(); + + const bool loadContent(XLS::BinProcessor& proc) override; + const bool saveContent(XLS::BinProcessor& proc) override; + + XLS::BaseObjectPtr m_BrtBeginMdxMbrProp; + bool m_bBrtEndMdxMbrProp; + + }; + +} // namespace XLSB +