mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-11 00:04:04 +08:00
58 lines
1.5 KiB
C++
58 lines
1.5 KiB
C++
#include "CtrlObjElement.h"
|
|
|
|
namespace HWP
|
|
{
|
|
CCtrlObjElement::CCtrlObjElement()
|
|
{}
|
|
|
|
CCtrlObjElement::CCtrlObjElement(const STRING& sCtrlID)
|
|
: CCtrlCommon(sCtrlID)
|
|
{}
|
|
|
|
CCtrlObjElement::CCtrlObjElement(const STRING& sCtrlID, int nSize, CHWPStream& oBuffer, int nOff, int nVersion)
|
|
: CCtrlCommon(sCtrlID, nSize, oBuffer, nOff, nVersion)
|
|
{}
|
|
|
|
int CCtrlObjElement::GetSize()
|
|
{
|
|
return m_nSize;
|
|
}
|
|
|
|
int CCtrlObjElement::ParseCtrl(CCtrlObjElement& oObj, int nSize, CHWPStream& oBuffer, int nOff, int nVersion)
|
|
{
|
|
oBuffer.SavePosition();
|
|
|
|
CCtrlCommon::ParseCtrl(oObj, nSize, oBuffer, nOff, nVersion);
|
|
|
|
oBuffer.ReadInt(oObj.m_nXGrpOffset);
|
|
oBuffer.ReadInt(oObj.m_nYGrpOffset);
|
|
oBuffer.ReadShort(oObj.m_shNGrp);
|
|
oBuffer.ReadShort(oObj.m_shVer);
|
|
oBuffer.ReadInt(oObj.m_nIniWidth);
|
|
oBuffer.ReadInt(oObj.m_nIniHeight);
|
|
oBuffer.ReadInt(oObj.m_nCurWidth);
|
|
oBuffer.ReadInt(oObj.m_nCurHeight);
|
|
oObj.m_bHorzFlip = CHECK_FLAG(oBuffer[0], 0x01);
|
|
oObj.m_bVerFlip = CHECK_FLAG(oBuffer[0], 0x02);
|
|
oBuffer.Skip(4);
|
|
oBuffer.ReadShort(oObj.m_shRotat);
|
|
oBuffer.ReadInt(oObj.m_nXCenter);
|
|
oBuffer.ReadInt(oObj.m_nYCenter);
|
|
oBuffer.ReadShort(oObj.m_shMatCnt);
|
|
|
|
for (int nIndex = 0; nIndex < 6; ++nIndex)
|
|
oBuffer.ReadDouble(oObj.m_arMatrix[nIndex]);
|
|
|
|
int nMatrixSize = ((int)oObj.m_shMatCnt) * 6 * 2;
|
|
if (nMatrixSize > 0)
|
|
{
|
|
oObj.m_arMatrixSeq.reserve(nMatrixSize);
|
|
|
|
for (int nIndex = 0; nIndex < nMatrixSize; ++nMatrixSize)
|
|
oBuffer.ReadDouble(oObj.m_arMatrixSeq[nIndex]);
|
|
}
|
|
|
|
return oBuffer.GetDistanceToLastPos(true);
|
|
}
|
|
}
|