316 lines
7.6 KiB
C++
316 lines
7.6 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 "../BaseShape.h"
|
|
|
|
using namespace ODRAW;
|
|
|
|
namespace OOXMLShapes
|
|
{
|
|
enum ShapeType : unsigned short
|
|
{
|
|
sptMin = 0,
|
|
sptNotPrimitive = sptMin,
|
|
sptCAccentBorderCallout1,
|
|
sptCAccentBorderCallout2,
|
|
sptCAccentBorderCallout3,
|
|
sptCAccentCallout1,
|
|
sptCAccentCallout2,
|
|
sptCAccentCallout3,
|
|
sptCActionButtonBackPrevious,
|
|
sptCActionButtonBeginning,
|
|
sptCActionButtonBlank,
|
|
sptCActionButtonDocument,
|
|
sptCActionButtonEnd,
|
|
sptCActionButtonForwardNext,
|
|
sptCActionButtonHelp,
|
|
sptCActionButtonHome,
|
|
sptCActionButtonInformation,
|
|
sptCActionButtonMovie,
|
|
sptCActionButtonReturn,
|
|
sptCActionButtonSound,
|
|
sptCArc,
|
|
sptCBentArrow,
|
|
sptCBentConnector2,
|
|
sptCBentConnector3,
|
|
sptCBentConnector4,
|
|
sptCBentConnector5,
|
|
sptCBentUpArrow,
|
|
sptCBevel,
|
|
sptCBlockArc,
|
|
sptCBorderCallout1,
|
|
sptCBorderCallout2,
|
|
sptCBorderCallout3,
|
|
sptCBracePair,
|
|
sptCBracketPair,
|
|
sptCCallout1,
|
|
sptCCallout2,
|
|
sptCCallout3,
|
|
sptCCan,
|
|
sptCChartPlus,
|
|
sptCChartStar,
|
|
sptCChartX,
|
|
sptCChevron,
|
|
sptCChord,
|
|
sptCCircularArrow,
|
|
sptCCloud,
|
|
sptCCloudCallout,
|
|
sptCCorner,
|
|
sptCCornerTabs,
|
|
sptCCube,
|
|
sptCCurvedConnector2,
|
|
sptCCurvedConnector3,
|
|
sptCCurvedConnector4,
|
|
sptCCurvedConnector5,
|
|
sptCCurvedDownArrow,
|
|
sptCCurvedLeftArrow,
|
|
sptCCurvedRightArrow,
|
|
sptCCurvedUpArrow,
|
|
sptCDecagon,
|
|
sptCDiagStripe,
|
|
sptCDiamond,
|
|
sptCDodecagon,
|
|
sptCDonut,
|
|
sptCDoubleWave,
|
|
sptCDownArrow,
|
|
sptCDownArrowCallout,
|
|
sptCEllipse,
|
|
sptCEllipseRibbon,
|
|
sptCEllipseRibbon2,
|
|
sptCFlowChartAlternateProcess,
|
|
sptCFlowChartCollate,
|
|
sptCFlowChartConnector,
|
|
sptCFlowChartDecision,
|
|
sptCFlowChartDelay,
|
|
sptCFlowChartDisplay,
|
|
sptCFlowChartDocument,
|
|
sptCFlowChartExtract,
|
|
sptCFlowChartInputOutput,
|
|
sptCFlowChartInternalStorage,
|
|
sptCFlowChartMagneticDisk,
|
|
sptCFlowChartMagneticDrum,
|
|
sptCFlowChartMagneticTape,
|
|
sptCFlowChartManualInput,
|
|
sptCFlowChartManualOperation,
|
|
sptCFlowChartMerge,
|
|
sptCFlowChartMultidocument,
|
|
sptCFlowChartOfflineStorage,
|
|
sptCFlowChartOffpageConnector,
|
|
sptCFlowChartOnlineStorage,
|
|
sptCFlowChartOr,
|
|
sptCFlowChartPredefinedProcess,
|
|
sptCFlowChartPreparation,
|
|
sptCFlowChartProcess,
|
|
sptCFlowChartPunchedCard,
|
|
sptCFlowChartPunchedTape,
|
|
sptCFlowChartSort,
|
|
sptCFlowChartSummingJunction,
|
|
sptCFlowChartTerminator,
|
|
sptCFoldedCorner,
|
|
sptCFrame,
|
|
sptCFunnel,
|
|
sptCGear6,
|
|
sptCGear9,
|
|
sptCHalfFrame,
|
|
sptCHeart,
|
|
sptCHeptagon,
|
|
sptCHexagon,
|
|
sptCHomePlate,
|
|
sptCHorizontalScroll,
|
|
sptCIrregularSeal1,
|
|
sptCIrregularSeal2,
|
|
sptCLeftArrow,
|
|
sptCLeftArrowCallout,
|
|
sptCLeftBrace,
|
|
sptCLeftBracket,
|
|
sptCLeftCircularArrow,
|
|
sptCLeftRightArrow,
|
|
sptCLeftRightArrowCallout,
|
|
sptCLeftRightCircularArrow,
|
|
sptCLeftRightRibbon,
|
|
sptCLeftRightUpArrow,
|
|
sptCLeftUpArrow,
|
|
sptCLightningBolt,
|
|
sptCLine,
|
|
sptCLineInv,
|
|
sptCMathDivide,
|
|
sptCMathEqual,
|
|
sptCMathMinus,
|
|
sptCMathMultiply,
|
|
sptCMathNotEqual,
|
|
sptCMathPlus,
|
|
sptCMoon,
|
|
sptCNonIsoscelesTrapezoid,
|
|
sptCNoSmoking,
|
|
sptCNotchedRightArrow,
|
|
sptCOctagon,
|
|
sptCParallelogram,
|
|
sptCPentagon,
|
|
sptCPie,
|
|
sptCPieWedge,
|
|
sptCPlaque,
|
|
sptCPlaqueTabs,
|
|
sptCPlus,
|
|
sptCQuadArrow,
|
|
sptCQuadArrowCallout,
|
|
sptCRect,
|
|
sptCRibbon,
|
|
sptCRibbon2,
|
|
sptCRightArrow,
|
|
sptCRightArrowCallout,
|
|
sptCRightBrace,
|
|
sptCRightBracket,
|
|
sptCRound1Rect,
|
|
sptCRound2DiagRect,
|
|
sptCRound2SameRect,
|
|
sptCRoundRect,
|
|
sptCRtTriangle,
|
|
sptCSmileyFace,
|
|
sptCSnip1Rect,
|
|
sptCSnip2DiagRect,
|
|
sptCSnip2SameRect,
|
|
sptCSnipRoundRect,
|
|
sptCSquareTabs,
|
|
sptCStar10,
|
|
sptCStar12,
|
|
sptCStar16,
|
|
sptCStar24,
|
|
sptCStar32,
|
|
sptCStar4,
|
|
sptCStar5,
|
|
sptCStar6,
|
|
sptCStar7,
|
|
sptCStar8,
|
|
sptCStraightConnector1,
|
|
sptCStripedRightArrow,
|
|
sptCSun,
|
|
sptCSwooshArrow,
|
|
sptCTeardrop,
|
|
sptCTextArchDown,
|
|
sptCTextArchDownPour,
|
|
sptCTextArchUp,
|
|
sptCTextArchUpPour,
|
|
sptCTextButton,
|
|
sptCTextButtonPour,
|
|
sptCTextCanDown,
|
|
sptCTextCanUp,
|
|
sptCTextCascadeDown,
|
|
sptCTextCascadeUp,
|
|
sptCTextChevron,
|
|
sptCTextChevronInverted,
|
|
sptCTextCircle,
|
|
sptCTextCirclePour,
|
|
sptCTextCurveDown,
|
|
sptCTextCurveUp,
|
|
sptCTextDeflate,
|
|
sptCTextDeflateBottom,
|
|
sptCTextDeflateInflate,
|
|
sptCTextDeflateInflateDeflate,
|
|
sptCTextDeflateTop,
|
|
sptCTextDoubleWave1,
|
|
sptCTextFadeDown,
|
|
sptCTextFadeLeft,
|
|
sptCTextFadeRight,
|
|
sptCTextFadeUp,
|
|
sptCTextInflate,
|
|
sptCTextInflateBottom,
|
|
sptCTextInflateTop,
|
|
sptCTextPlain,
|
|
sptCTextRingInside,
|
|
sptCTextRingOutside,
|
|
sptCTextSlantDown,
|
|
sptCTextSlantUp,
|
|
sptCTextStop,
|
|
sptCTextTriangle,
|
|
sptCTextTriangleInverted,
|
|
sptCTextWave1,
|
|
sptCTextWave2,
|
|
sptCTextWave4,
|
|
sptCTrapezoid,
|
|
sptCTriangle,
|
|
sptCUpArrow,
|
|
sptCUpArrowCallout,
|
|
sptCUpDownArrow,
|
|
sptCUpDownArrowCallout,
|
|
sptCUturnArrow,
|
|
sptCVerticalScroll,
|
|
sptCWave,
|
|
sptCWedgeEllipseCallout,
|
|
sptCWedgeRectCallout,
|
|
sptCWedgeRoundRectCallout,
|
|
|
|
sptMax,
|
|
sptNil = 0x0FFF,
|
|
sptCustom = 0x1000
|
|
};
|
|
}
|
|
|
|
class CPPTXShape : public CBaseShape
|
|
{
|
|
public:
|
|
OOXMLShapes::ShapeType m_eType;
|
|
|
|
NSGuidesOOXML::CFormulaManager FManager;
|
|
|
|
CPPTXShape();
|
|
~CPPTXShape();
|
|
|
|
virtual bool LoadFromXML(const std::wstring& xml);
|
|
virtual bool LoadFromXML(XmlUtils::CXmlNode& root);
|
|
|
|
virtual bool LoadAdjustValuesList(const std::wstring& xml);
|
|
virtual bool LoadGuidesList(const std::wstring& xml);
|
|
|
|
virtual bool LoadAdjustHandlesList(const std::wstring& xml);
|
|
virtual bool LoadConnectorsList(const std::wstring& xml);
|
|
|
|
virtual bool LoadTextRect(const std::wstring& xml);
|
|
virtual bool LoadPathList(const std::wstring& xml);
|
|
|
|
virtual bool SetAdjustment(long index, long value);
|
|
|
|
virtual std::wstring ToXML(CGeomShapeInfo& GeomInfo, double StartTime, double EndTime, CBrush& Brush, CPen& Pen);
|
|
virtual void ToRenderer(IRenderer* pRenderer, CGeomShapeInfo& pGeomInfo, double dStartTime, double dEndTime, CPen& pPen, CBrush& pFore);
|
|
|
|
virtual void ReCalculate();
|
|
static CBaseShapePtr CreateByType(OOXMLShapes::ShapeType type);
|
|
virtual const ClassType GetClassType() const;
|
|
|
|
virtual bool SetProperties(CBaseShape* Shape);
|
|
virtual bool SetToDublicate(CBaseShape* Shape);
|
|
|
|
bool SetShapeType(OOXMLShapes::ShapeType type);
|
|
|
|
virtual void SetWidthHeightLogic(const double& dWidth, const double& dHeight);
|
|
virtual void GetWidthHeightLogic(double& dWidth, double& dHeight);
|
|
};
|