Files
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

1007 lines
34 KiB
C++

/*
* (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/SimpleTypes_Vml.h"
#include "../../XlsxFormat/Controls/Controls.h"
#include "Shape.h"
#include "../WritingElement.h"
#include "VmlOfficeDrawing.h"
namespace PPTX
{
namespace Logic
{
class CustGeom;
}
}
namespace OOX
{
namespace Spreadsheet
{
class CCellAnchor;
}
namespace Vml
{
class CVmlCommonElements : public WritingElementWithChilds<>
{
public:
WritingElement_AdditionMethods(CVmlCommonElements)
CVmlCommonElements(OOX::Document *pMain = NULL);
virtual ~CVmlCommonElements();
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const;
virtual void mergeFrom(CVmlCommonElements* parent);
void CreateElement(XmlUtils::CXmlLiteReader& oReader);
// 1 AG_AllCoreAttributes
// 1.1 AG_CoreAttributes
nullable_string m_sId;
nullable<SimpleTypes::Vml::CCssStyle> m_oStyle;
nullable_string m_sHref;
nullable_string m_sTarget;
nullable_string m_sClass;
nullable_string m_sTitle;
nullable_string m_sAlt;
nullable<SimpleTypes::Vml::CVml_Vector2D> m_oCoordSize;
nullable<SimpleTypes::Vml::CVml_Vector2D> m_oCoordOrigin;
nullable<SimpleTypes::Vml::CVml_Polygon2D> m_oWrapCoords;
nullable_bool m_oPrint;
// 1.2 AG_OfficeCoreAttributes
nullable_string m_sSpId;
nullable_bool m_oOned;
nullable_int m_oRegroupId;
nullable_bool m_oDoubleClickNotify;
nullable_bool m_oButton;
nullable_bool m_oUserHidden;
nullable_bool m_oBullet;
nullable_bool m_oHr;
nullable_bool m_oHrStd;
nullable_bool m_oHrNoShade;
nullable_double m_oHrPct;
nullable<SimpleTypes::CHrAlign> m_oHrAlign;
nullable_bool m_oAllowInCell;
nullable_bool m_oAllowOverlap;
nullable_bool m_oUserDrawn;
nullable<SimpleTypes::CColorType> m_oBorderTopColor;
nullable<SimpleTypes::CColorType> m_oBorderLeftColor;
nullable<SimpleTypes::CColorType> m_oBorderBottomColor;
nullable<SimpleTypes::CColorType> m_oBorderRightColor;
nullable<SimpleTypes::CDiagramLayout> m_oDgmLayout;
nullable_string m_oDgmNodeKind;
nullable<SimpleTypes::CDiagramLayout> m_oDgmLayoutMru;
nullable<SimpleTypes::CInsetMode> m_oInsetMode;
// 2 AG_AllShapeAttributes
// 2.1 AG_ShapeAttributes
nullable<SimpleTypes::CColorType> m_oChromaKey;
nullable<SimpleTypes::CTrueFalse> m_oFilled;
nullable<SimpleTypes::CColorType> m_oFillColor;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oOpacity;
nullable<SimpleTypes::CTrueFalse> m_oStroked;
nullable<SimpleTypes::CColorType> m_oStrokeColor;
nullable<SimpleTypes::CEmu> m_oStrokeWeight;
nullable<SimpleTypes::CTrueFalse> m_oInsetPen;
// 2.2 AG_OfficeShapeAttributes
nullable<SimpleTypes::CDecimalNumber> m_oSpt;
nullable<SimpleTypes::CConnectorType> m_oConnectorType;
nullable<SimpleTypes::CBWMode> m_oBwMode;
nullable<SimpleTypes::CBWMode> m_oBwPure;
nullable<SimpleTypes::CBWMode> m_oBwNormal;
nullable_bool m_oForceDash;
nullable_bool m_oOleIcon;
nullable_bool m_oOle;
nullable_bool m_oPreferRelative;
nullable_bool m_oClipToWrap;
nullable_bool m_oClip;
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader);
void ReadElements(XmlUtils::CXmlLiteReader& oReader) ;
std::wstring WriteAttributes() const;
std::wstring WriteElements() const;
//for internal
bool m_bComment = false;
bool m_bImage = false;
};
//--------------------------------------------------------------------------------
// CArc 14.1.2.1 (Part4)
//--------------------------------------------------------------------------------
class CArc : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CArc)
CArc(OOX::Document *pMain = NULL);
virtual ~CArc();
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::CDecimalNumber m_oEndAngle = 90;
SimpleTypes::CDecimalNumber m_oStartAngle;
};
//--------------------------------------------------------------------------------
// CCurve 14.1.2.3 (Part4)
//--------------------------------------------------------------------------------
class CCurve : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CCurve)
CCurve(OOX::Document *pMain = NULL);
virtual ~CCurve();
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::Vml::CVml_Vector2D_Units m_oFrom;
SimpleTypes::Vml::CVml_Vector2D_Units m_oControl1;
SimpleTypes::Vml::CVml_Vector2D_Units m_oControl2;
SimpleTypes::Vml::CVml_Vector2D_Units m_oTo;
};
//--------------------------------------------------------------------------------
// CF 14.1.2.4 (Part4)
//--------------------------------------------------------------------------------
class CF : public WritingElement
{
public:
WritingElement_AdditionMethods(CF)
CF();
virtual ~CF();
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
std::wstring m_sEqn;
};
//--------------------------------------------------------------------------------
// CFill 14.1.2.5 (Part4)
//--------------------------------------------------------------------------------
class CFill : public WritingElement
{
public:
WritingElement_AdditionMethods(CFill)
CFill(OOX::Document *pMain = NULL);
virtual ~CFill();
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:
typedef struct TIntermediateColor
{
double dValue;
SimpleTypes::CColorType oColor;
}TIntermediateColor;
nullable<SimpleTypes::CTrueFalse> m_oAlignShape;
nullable_string m_sAltHref;
nullable<SimpleTypes::CDecimalNumber> m_oAngle;
nullable<SimpleTypes::CImageAspect> m_oAspect;
nullable<SimpleTypes::CColorType> m_oColor;
nullable<SimpleTypes::CColorType> m_oColor2;
nullable_string m_oColors;
std::vector<TIntermediateColor*> m_arrColors; // parsing m_oColors - todooo
nullable<SimpleTypes::CTrueFalse> m_oDetectMouseClick;
nullable<SimpleTypes::CFixedPercentage > m_oFocus;
nullable<SimpleTypes::Vml::CVml_Vector2D_Percentage> m_oFocusPosition;
nullable<SimpleTypes::Vml::CVml_Vector2D_Percentage> m_oFocusSize;
nullable_string m_sHref;
nullable<SimpleTypes::CRelationshipId> m_rId;
nullable_string m_sId;
nullable<SimpleTypes::CFillMethod> m_oMethod;
nullable<SimpleTypes::CTrueFalse> m_oOn;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oOpacity;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oOpacity2;
nullable<SimpleTypes::Vml::CVml_Vector2D_1_65536> m_oOrigin;
nullable<SimpleTypes::Vml::CVml_Vector2D_1_65536> m_oPosition;
nullable<SimpleTypes::CTrueFalse> m_oRecolor;
nullable<SimpleTypes::CRelationshipId> m_oRelId;
nullable<SimpleTypes::CTrueFalse> m_oRotate;
nullable<SimpleTypes::Vml::CVml_Vector2D_Units> m_oSize;
nullable_string m_sSrc;
nullable_string m_sTitle;
SimpleTypes::CFillType m_oType;
nullable<OOX::VmlOffice::CFill> m_oFill;
};
//--------------------------------------------------------------------------------
// CBackground 14.1.2.2 (Part4)
//--------------------------------------------------------------------------------
class CBackground : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CBackground)
CBackground(OOX::Document *pMain = NULL);
virtual ~CBackground();
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<SimpleTypes::CScreenSize> m_oTargetScreenSize;
};
//--------------------------------------------------------------------------------
// CFormulas 14.1.2.6 (Part4)
//--------------------------------------------------------------------------------
class CFormulas : public WritingElementWithChilds<OOX::Vml::CF>
{
public:
WritingElement_AdditionMethods(CFormulas)
CFormulas(OOX::Document *pMain = NULL);
virtual ~CFormulas();
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const;
public:
// Childs
};
//--------------------------------------------------------------------------------
// CH 14.1.2.8 (Part4)
//--------------------------------------------------------------------------------
class CH : public WritingElement
{
public:
WritingElement_AdditionMethods(CH)
CH();
virtual ~CH();
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
SimpleTypes::CTrueFalse m_oInvX;
SimpleTypes::CTrueFalse m_oInvY;
SimpleTypes::Vml::CVml_Vector2D m_oMap;
nullable<SimpleTypes::Vml::CVml_Vector2D> m_oPolar;
SimpleTypes::Vml::CVml_Vector2D_Position m_oPosition;
SimpleTypes::Vml::CVml_Vector2D m_oRadiusRange;
SimpleTypes::CTrueFalse m_oSwitch;
SimpleTypes::Vml::CVml_Vector2D m_oXRange;
SimpleTypes::Vml::CVml_Vector2D m_oYRange;
};
//--------------------------------------------------------------------------------
// CHandles 14.1.2.9 (Part4)
//--------------------------------------------------------------------------------
class CHandles : public WritingElementWithChilds<OOX::Vml::CH>
{
public:
WritingElement_AdditionMethods(CHandles)
CHandles(OOX::Document *pMain = NULL);
virtual ~CHandles();
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const;
public:
// Childs
};
//--------------------------------------------------------------------------------
// CImage 14.1.2.10 (Part4)
//--------------------------------------------------------------------------------
class CImage : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CImage)
CImage(OOX::Document *pMain = NULL);
virtual ~CImage();
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_pSrc;
nullable<SimpleTypes::Vml::CVml_1_65536> m_pCropLeft;
nullable<SimpleTypes::Vml::CVml_1_65536> m_pCropTop;
nullable<SimpleTypes::Vml::CVml_1_65536> m_pCropRight;
nullable<SimpleTypes::Vml::CVml_1_65536> m_pCropBottom;
nullable_double m_pGain;
nullable_double m_pBlackLevel;
nullable_double m_pGamma;
nullable<SimpleTypes::CTrueFalse> m_pGrayscale;
nullable<SimpleTypes::CTrueFalse> m_pBiLevel;
};
//--------------------------------------------------------------------------------
// CImageData 14.1.2.11 (Part4)
//--------------------------------------------------------------------------------
class CImageData : public WritingElement
{
public:
WritingElement_AdditionMethods(CImageData)
CImageData(OOX::Document *pMain = NULL);
virtual ~CImageData();
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_sAltHref;
nullable<SimpleTypes::CTrueFalse> m_oBiLevel;
nullable_double m_oBlackLevel;
nullable<SimpleTypes::CColorType> m_oChromaKey;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oCropLeft;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oCropTop;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oCropRight;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oCropBottom;
nullable<SimpleTypes::CTrueFalse> m_oDetectMouseClick;
nullable<SimpleTypes::CColorType> m_oEmbossColor;
nullable_double m_oGain;
nullable_double m_oGamma;
nullable<SimpleTypes::CTrueFalse> m_oGrayscale;
nullable<SimpleTypes::CRelationshipId> m_rHref;
nullable_string m_oHref;
nullable<SimpleTypes::CRelationshipId> m_rId;
nullable_string m_oId;
nullable_double m_oMovie;
nullable_string m_oOleId;
nullable<SimpleTypes::CRelationshipId> m_rPict;
nullable<SimpleTypes::CColorType> m_oRecolorTarget;
nullable<SimpleTypes::CRelationshipId> m_oRelId;
nullable_string m_sSrc;
nullable_string m_sTitle;
};
//--------------------------------------------------------------------------------
// CLine 14.1.2.12 (Part4)
//--------------------------------------------------------------------------------
class CLine : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CLine)
CLine(OOX::Document *pMain = NULL);
virtual ~CLine();
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::Vml::CVml_Vector2D_Units m_oFrom;
SimpleTypes::Vml::CVml_Vector2D_Units m_oTo;
};
//--------------------------------------------------------------------------------
// COval 14.1.2.13 (Part4)
//--------------------------------------------------------------------------------
class COval : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(COval)
COval(OOX::Document *pMain = NULL);
virtual ~COval();
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const;
};
//--------------------------------------------------------------------------------
// CPath 14.1.2.14 (Part4)
//--------------------------------------------------------------------------------
class CPath : public WritingElement
{
public:
WritingElement_AdditionMethods(CPath)
CPath(OOX::Document *pMain = NULL);
virtual ~CPath();
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<SimpleTypes::CTrueFalse> m_oArrowOk;
nullable_string m_oConnectAngles;
nullable_string m_oConnectLocs;
nullable<SimpleTypes::CConnectType> m_oConnectType;
nullable<SimpleTypes::CTrueFalse> m_oExtrusionOk;
nullable<SimpleTypes::CTrueFalse> m_oFillOk;
nullable<SimpleTypes::CTrueFalse> m_oGradientShapeOk;
nullable_string m_oId;
nullable<SimpleTypes::CTrueFalse> m_oInsetPenOk;
nullable<SimpleTypes::Vml::CVml_Vector2D_Units> m_oLimo;
nullable<SimpleTypes::CTrueFalse> m_oShadowOk;
nullable<SimpleTypes::CTrueFalse> m_oStrokeOk;
nullable<SimpleTypes::Vml::CVml_Polygon2D> m_oTextBoxRect;
nullable<SimpleTypes::CTrueFalse> m_oTextPathOk;
nullable<SimpleTypes::Vml::CVmlPath> m_oV;
};
//--------------------------------------------------------------------------------
// CPolyLine 14.1.2.15 (Part4)
//--------------------------------------------------------------------------------
class CPolyLine : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CPolyLine)
CPolyLine(OOX::Document *pMain = NULL);
virtual ~CPolyLine();
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::Vml::CVml_Polygon2D_Units m_oPoints;
};
//--------------------------------------------------------------------------------
// CRect 14.1.2.16 (Part4)
//--------------------------------------------------------------------------------
class CRect : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CRect)
CRect(OOX::Document *pMain = NULL);
virtual ~CRect();
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const;
};
//--------------------------------------------------------------------------------
// CRoundRect 14.1.2.17 (Part4)
//--------------------------------------------------------------------------------
class CRoundRect : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CRoundRect)
CRoundRect(OOX::Document *pMain = NULL);
virtual ~CRoundRect();
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::Vml::CVml_1_65536_Or_Percentage m_oArcSize;
};
//--------------------------------------------------------------------------------
// CShadow 14.1.2.18 (Part4)
//--------------------------------------------------------------------------------
class CShadow : public WritingElement
{
public:
WritingElement_AdditionMethods(CShadow)
CShadow(OOX::Document *pMain = NULL);
virtual ~CShadow();
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::CColorType m_oColor = SimpleTypes::colortypeRGB;
SimpleTypes::CColorType m_oColor2 = SimpleTypes::colortypeRGB;
nullable_string m_oId;
nullable<SimpleTypes::Vml::CVml_Matrix> m_oMatrix;
SimpleTypes::CTrueFalse m_oObscured;
SimpleTypes::Vml::CVml_Vector2D_Units_Or_Percentage m_oOffset;
SimpleTypes::Vml::CVml_Vector2D_Units_Or_Percentage m_oOffset2;
SimpleTypes::CTrueFalse m_oOn = SimpleTypes::booleanTrue;
nullable<SimpleTypes::Vml::CVml_1_65536> m_oOpacity;
SimpleTypes::Vml::CVml_Vector2D_Percentage m_oOrigin;
SimpleTypes::CShadowType m_oType;
};
//--------------------------------------------------------------------------------
// CShapeType 14.1.2.20 (Part4)
//--------------------------------------------------------------------------------
class CShapeType : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CShapeType)
CShapeType(OOX::Document *pMain = NULL);
virtual ~CShapeType();
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_sType;
nullable_string m_sAdj;
nullable<SimpleTypes::Vml::CVmlPath> m_oPath;
nullable_bool m_oMaster;
};
//--------------------------------------------------------------------------------
// CShape 14.1.2.19 (Part4)
//--------------------------------------------------------------------------------
class CShape : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CShape)
CShape(OOX::Document *pMain = NULL);
virtual ~CShape();
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const;
void mergeFrom(CShapeType* shape_type);
void ConvertToPptx(double width, double height);
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader);
public:
nullable_string m_sType;
nullable_string m_sAdj;
nullable<SimpleTypes::Vml::CVmlPath> m_oPath;
nullable_string m_sGfxData;
nullable_string m_sEquationXML;
//--------------------------------------------------------------------------
nullable<PPTX::Logic::CustGeom> m_oCustGeom;
};
class CClientData : public WritingElement
{
public:
WritingElement_AdditionMethods(CClientData)
CClientData(OOX::Document *pMain = NULL);
virtual ~CClientData();
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const;
void getAnchorArray(std::vector<int>& aAnchor) const;
bool toCellAnchor(OOX::Spreadsheet::CCellAnchor* pCellAnchor);
void toFormControlPr(OOX::Spreadsheet::CFormControlPr* pFormControlPr);
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader);
nullable<SimpleTypes::Vml::CVmlClientDataObjectType> m_oObjectType;
nullable_bool m_oMoveWithCells;
nullable_bool m_oSizeWithCells;
nullable_string m_oAnchor;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oRow;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oColumn;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oMin;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oMax;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oInc;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oDx;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oPage;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oDropLines;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oSel;
nullable<SimpleTypes::CUnsignedDecimalNumber> m_oWidthMin;
nullable<SimpleTypes::Spreadsheet::CDropStyle> m_oDropStyle;
nullable_bool m_oFirstButton;
nullable_bool m_oDefaultSize;
nullable_bool m_oAutoFill;
nullable_bool m_oAutoScale;
nullable_bool m_oAutoLine;
nullable_bool m_oHoriz;
nullable_bool m_oVScroll;
nullable_bool m_oAutoPict;
nullable_bool m_oColored;
nullable_bool m_oMultiLine;
nullable_bool m_oNoThreeD;
nullable_bool m_oNoThreeD2;
nullable_bool m_oLockText;
nullable_bool m_oJustLastX;
nullable_bool m_oSecretEdit;
nullable_string m_oFmlaLink;
nullable_string m_oFmlaRange;
nullable_string m_oFmlaMacro;
nullable_string m_oFmlaTxbx;
nullable_string m_oFmlaGroup;
nullable_string m_oCf;
nullable<SimpleTypes::Spreadsheet::CChecked> m_oChecked;
nullable_string m_oMultiSel;
nullable<SimpleTypes::Spreadsheet::CSelType> m_oSelType;
nullable_int m_oVal;
nullable<SimpleTypes::Spreadsheet::CHorizontalAlignment>m_oTextHAlign;
nullable<SimpleTypes::Spreadsheet::CVerticalAlignment> m_oTextVAlign;
nullable_bool m_oVisible;
//x:Accel
//x:Accel2
//x:Camera
//x:Cancel
//x:ClientData
//x:ColHidden
//x:DDE
//x:Default
//x:Disabled
//x:Dismiss
//x:FmlaPict
//x:Help
//x:LCT
//x:ListItem
//x:Locked
//x:MapOCX
//x:PrintObject
//x:RecalcAlways
//x:RowHidden
//x:ScriptExtended
//x:ScriptLanguage
//x:ScriptLocation
//x:ScriptText
//x:UIObj
//x:ValidIds
//x:VTEdit
};
//--------------------------------------------------------------------------------
// CStroke 14.1.2.21 (Part4)
//--------------------------------------------------------------------------------
class CStroke : public WritingElement
{
public:
WritingElement_AdditionMethods(CStroke)
CStroke(OOX::Document *pMain = NULL);
virtual ~CStroke();
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_oId;
nullable_string m_sAltHref;
nullable<SimpleTypes::CColorType> m_oColor;
nullable<SimpleTypes::CColorType> m_oColor2;
nullable<SimpleTypes::Vml::CVmlDashStyle> m_oDahsStyle;
nullable<SimpleTypes::CStrokeArrowType> m_oEndArrow;
nullable<SimpleTypes::CStrokeArrowLength> m_oEndArrowLength;
nullable<SimpleTypes::CStrokeArrowWidth> m_oEndArrowWidth;
nullable<SimpleTypes::CStrokeEndCap> m_oEndCap;
nullable<SimpleTypes::CFillType> m_oFillType;
nullable<SimpleTypes::CTrueFalse> m_oForceDash;
nullable_string m_sHref;
nullable<SimpleTypes::CRelationshipId> m_rId;
nullable<SimpleTypes::CTrueFalse> m_oImageAlignShape;
nullable<SimpleTypes::CImageAspect> m_oImageAspect;
nullable<SimpleTypes::Vml::CVml_Vector2D_Units> m_oImageSize;
nullable<SimpleTypes::CTrueFalse> m_oInsetPen;
nullable<SimpleTypes::CStrokeJoinStyle> m_oJoinStyle;
nullable<SimpleTypes::CStrokeLineStyle> m_oLineStyle;
nullable<SimpleTypes::CDecimalNumber> m_oMiterLimit;
nullable<SimpleTypes::CTrueFalse> m_oOn;
nullable_double m_oOpacity;
nullable<SimpleTypes::CRelationshipId> m_oRelId;
nullable_string m_sSrc;
nullable<SimpleTypes::CStrokeArrowType> m_oStartArrow;
nullable<SimpleTypes::CStrokeArrowLength> m_oStartArrowLength;
nullable<SimpleTypes::CStrokeArrowWidth> m_oStartArrowWidth;
nullable_string m_sTitle;
nullable_double m_oWeight;
nullable<OOX::VmlOffice::CStrokeChild> m_oLeft;
nullable<OOX::VmlOffice::CStrokeChild> m_oTop;
nullable<OOX::VmlOffice::CStrokeChild> m_oRight;
nullable<OOX::VmlOffice::CStrokeChild> m_oBottom;
nullable<OOX::VmlOffice::CStrokeChild> m_oColumn;
};
//--------------------------------------------------------------------------------
// CTextbox 14.1.2.22 (Part4)
//--------------------------------------------------------------------------------
class CTextbox : public WritingElement
{
public:
WritingElement_AdditionMethods(CTextbox)
CTextbox(OOX::Document *pMain = NULL);
virtual ~CTextbox();
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_oId;
nullable<SimpleTypes::Vml::CCssStyle> m_oStyle;
nullable<SimpleTypes::Vml::CVml_TextBoxInset> m_oInset;
SimpleTypes::CTrueFalse m_oSingleClick;
SimpleTypes::CInsetMode m_oInsetMode = SimpleTypes::insetmodeCustom;
nullable<OOX::Logic::CTxbxContent> m_oTxtbxContent;
nullable_string m_oText; //m_arDivs;
};
//--------------------------------------------------------------------------------
// CTextPath 14.1.2.23 (Part4)
//--------------------------------------------------------------------------------
class CTextPath : public WritingElement
{
public:
WritingElement_AdditionMethods(CTextPath)
CTextPath(OOX::Document *pMain = NULL);
virtual ~CTextPath();
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<SimpleTypes::CTrueFalse> m_oFitPath;
nullable<SimpleTypes::CTrueFalse> m_oFitShape;
nullable_string m_oId;
nullable<SimpleTypes::CTrueFalse> m_oOn;
nullable_string m_sString;
nullable<SimpleTypes::Vml::CCssStyle> m_oStyle;
nullable<SimpleTypes::CTrueFalse> m_oTrim;
nullable<SimpleTypes::CTrueFalse> m_oXScale;
nullable_string m_sStringOriginal;
};
//--------------------------------------------------------------------------------
// CGroup 14.1.2.7 (Part4)
//--------------------------------------------------------------------------------
class CGroup : public CVmlCommonElements
{
public:
WritingElement_AdditionMethods(CGroup);
CGroup(OOX::Document *pMain = NULL);
virtual ~CGroup();
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::vector<CShapeType*> m_arrShapeTypes;
std::vector<WritingElement *> m_arrElements;
nullable<SimpleTypes::CEditAs> m_oEditAs;
nullable<SimpleTypes::Vml::CVml_TableLimits> m_oTableLimits;
SimpleTypes::Vml::CVml_TableProperties m_oTableProperties;
};
} // namespace Vml
} // namespace OOX
namespace OOX
{
namespace VmlOffice
{
//--------------------------------------------------------------------------------
// CShapeDefaults 14.2.2.28 (Part 4)
//--------------------------------------------------------------------------------
class CShapeDefaults : public WritingElement
{
public:
WritingElement_AdditionMethods(CShapeDefaults)
CShapeDefaults(OOX::Document *pMain = NULL);
virtual ~CShapeDefaults();
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::CTrueFalse m_oAllowInCell;
nullable<SimpleTypes::CExt> m_oExt;
SimpleTypes::CTrueFalse m_oFill = SimpleTypes::booleanTrue;
nullable<SimpleTypes::CColorType> m_oFillColor;
SimpleTypes::CDecimalNumber m_oSpIdMax;
SimpleTypes::CTrueFalse m_oStroke = SimpleTypes::booleanTrue;
SimpleTypes::CColorType m_oStrokeColor;
nullable<SimpleTypes::Vml::CCssStyle> m_oStyle;
nullable<OOX::Vml::CFill> m_oVmlFill;
nullable<OOX::Vml::CStroke> m_oVmlStroke;
nullable<OOX::Vml::CTextbox> m_oVmlTextbox;
nullable<OOX::Vml::CShadow> m_oVmlShadow;
nullable<OOX::VmlOffice::CSkew> m_oSkew;
nullable<OOX::VmlOffice::CExtrusion> m_oExtrusion;
nullable<OOX::VmlOffice::CCallout> m_oCallout;
nullable<OOX::VmlOffice::CLock> m_oLock;
nullable<OOX::VmlOffice::CColorMru> m_oColorMru;
nullable<OOX::VmlOffice::CColorMenu> m_oColorMenu;
};
} // VmlOffice
} // namespace OOX