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

80 lines
2.1 KiB
C++

#include "HWPRecordBullet.h"
namespace HWP
{
CHWPRecordBullet::CHWPRecordBullet(CHWPDocInfo& oDocInfo, int nTagNum, int nLevel, int nSize, CHWPStream& oBuffer, int nOff, int nVersion)
: CHWPRecord(nTagNum, nLevel, nSize), m_pParent(&oDocInfo)
{
oBuffer.SavePosition();
int nTypeBits;
oBuffer.ReadInt(nTypeBits);
m_oHeaderInfo.m_chAlign = (HWP_BYTE)((nTypeBits) & 0x03);
m_oHeaderInfo.m_bUseInstWidth = CHECK_FLAG(nTypeBits, 0x40);
m_oHeaderInfo.m_bAutoIndent = CHECK_FLAG(nTypeBits, 0x80);
m_oHeaderInfo.m_chTextOffsetType = (HWP_BYTE)((nTypeBits >> 4) & 0x01);
oBuffer.ReadShort(m_oHeaderInfo.m_shWidthAdjust);
oBuffer.ReadShort(m_oHeaderInfo.m_shTextOffset);
oBuffer.ReadInt(m_oHeaderInfo.m_nCharShape);
oBuffer.ReadChar(m_chBulletChar);
if (nSize > oBuffer.GetDistanceToLastPos())
oBuffer.ReadInt(m_nBulletImage);
if (nSize > oBuffer.GetDistanceToLastPos())
oBuffer.ReadByte(m_chBright);
if (nSize > oBuffer.GetDistanceToLastPos())
oBuffer.ReadByte(m_chContrast);
if (nSize > oBuffer.GetDistanceToLastPos())
oBuffer.ReadByte(m_chImageEffect);
if (nSize > oBuffer.GetDistanceToLastPos())
{
short shValue;
oBuffer.ReadShort(shValue);
m_sBinItemRefID = TO_HWP_STRING(shValue);
}
if (nSize > oBuffer.GetDistanceToLastPos(true))
oBuffer.ReadChar(m_chCheckBulletChar);
}
CHWPRecordBullet::CHWPRecordBullet(CHWPDocInfo& oDocInfo, CXMLReader& oReader, EHanType eType)
: CHWPRecord(EHWPTag::HWPTAG_BULLET, 0, 0), m_pParent(&oDocInfo)
{
if (EHanType::HWPML == eType)
return; // TODO:: реализовать как встретится пример
START_READ_ATTRIBUTES(oReader)
{
if ("char" == sAttributeName)
{
const HWP_STRING wsValue{oReader.GetText()};
if (!wsValue.empty())
m_chBulletChar = wsValue.at(0);
}
else if ("checkedChar" == sAttributeName)
{
const HWP_STRING wsValue{oReader.GetText()};
if (!wsValue.empty())
m_chCheckBulletChar = wsValue.at(0);
}
else if ("useImage" == sAttributeName)
m_nBulletImage = oReader.GetInt();
}
END_READ_ATTRIBUTES(oReader)
WHILE_READ_NEXT_NODE_WITH_ONE_NAME(oReader, "hc:img")
m_sBinItemRefID = oReader.GetAttribute("binaryItemIDRef");
END_WHILE
}
}