/* * (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 "../WritingElement.h" #include "../../Base/Nullable.h" #include "../../Common/ComplexTypes.h" #include "../../PPTXFormat/Logic/Ln.h" #include "../../PPTXFormat/Logic/Effects/Reflection.h" #include "../../PPTXFormat/Logic/Effects/Glow.h" #include "../../PPTXFormat/Logic/Scene3d.h" #include "../../PPTXFormat/Logic/Sp3d.h" namespace OOX { namespace Logic { class CRun; class CRunProperty; class CStylisticSets : public WritingElementWithChilds { public: WritingElement_AdditionMethods(CStylisticSets) CStylisticSets(OOX::Document *pMain = NULL); virtual ~CStylisticSets(); virtual std::wstring toXML() const; virtual void fromXML(XmlUtils::CXmlNode& node); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); virtual EElementType getType() const; }; //-------------------------------------------------------------------------------- // RPrChange 17.3.2.31 (Part 1) //-------------------------------------------------------------------------------- class CRPrChange : public WritingElement { public: CRPrChange(); CRPrChange(XmlUtils::CXmlNode& oNode); CRPrChange(XmlUtils::CXmlLiteReader& oReader); virtual ~CRPrChange(); 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_sAuthor; nullable m_oDate; nullable m_oId; nullable m_sUserId; nullable m_pRunPr; }; class CRunProperty : public WritingElement { public: CRunProperty(); virtual ~CRunProperty(); CRunProperty(const XmlUtils::CXmlNode &oNode); CRunProperty(const XmlUtils::CXmlLiteReader& oReader); const CRunProperty& operator=(const XmlUtils::CXmlNode &oNode); const CRunProperty& operator=(const XmlUtils::CXmlLiteReader& oReader); bool IsNoEmpty(); void Clear(); virtual void fromXML(XmlUtils::CXmlNode& oNode); virtual void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader, CRun* pRun); virtual std::wstring toXML() const; virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const; virtual EElementType getType() const; template static nullable Merge(const nullable &oPrev, const nullable &oCurrent) { nullable oResult; if ( oCurrent.IsInit() ) oResult = oCurrent; else if ( oPrev.IsInit() ) oResult = oPrev; return oResult; } static const CRunProperty Merge(const CRunProperty& oPrev, const CRunProperty& oCurrent); bool m_bRPRChange = false; // Является ли данный w:rPr дочерним по отношению к w:rPrChange nullable m_oBold; nullable m_oBoldCs; nullable m_oBdr; nullable m_oCaps; nullable m_oColor; nullable m_oCs; nullable m_oDel; nullable m_oDStrike; nullable m_oEastAsianLayout; nullable m_oEffect; nullable m_oEm; nullable m_oEmboss; nullable m_oFitText; nullable m_oHighlight; nullable m_oIns; nullable m_oItalic; nullable m_oItalicCs; nullable m_oImprint; nullable m_oKern; nullable m_oLang; nullable m_oNoProof; nullable m_oMath; nullable m_oMoveFrom; nullable m_oMoveTo; nullable m_oOutline; nullable m_oPosition; nullable m_oRFonts; nullable m_oRPrChange; nullable m_oRStyle; nullable m_oRtL; nullable m_oShadow; nullable m_oShd; nullable m_oSmallCaps; nullable m_oSnapToGrid; nullable m_oSpacing; nullable m_oSpecVanish; nullable m_oStrike; nullable m_oSz; nullable m_oSzCs; nullable m_oU; nullable m_oVanish; nullable m_oVertAlign; nullable m_oW; nullable m_oWebHidden; //ext PPTX::Logic::UniFill m_oTextFill; nullable m_oTextOutline; nullable m_oLigatures; nullable m_oNumSpacing; nullable m_oNumForm; nullable m_oStylisticSets; nullable m_oCntxtAlts; nullable m_oReflection; nullable m_oGlow; nullable m_oShadowExt; nullable m_oProps3d; nullable m_oScene3d; OOX::WritingElement* m_pText = NULL; //temp ... for Run object -> XpertdocOnlineDemoEn.docx }; } // namespace Logic } // namespace OOX