Files
core/ASCOfficeRtfFile/RtfFormatLib/source/Reader/OOXAbstractNumReader.h
Elen.Subbotina c026e2b9a4 codepage utf8
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@62097 954022d7-b5bf-4e40-9824-e11837661b57
2016-05-20 23:57:32 +03:00

52 lines
1.5 KiB
C++

#pragma once
#include "OOXLevelReader.h"
class OOXAbstractNumReader
{
private:
OOX::Numbering::CAbstractNum *m_ooxAbstractNum;
public:
OOXAbstractNumReader(OOX::Numbering::CAbstractNum *ooxAbstractNum)
{
m_ooxAbstractNum = ooxAbstractNum;
}
bool Parse( ReaderParameter oParam )
{
if (m_ooxAbstractNum == NULL) return false;
RtfListProperty oNewList;
if (m_ooxAbstractNum->m_oAbstractNumId.IsInit())
oNewList.m_nID = m_ooxAbstractNum->m_oAbstractNumId->GetValue();
if (m_ooxAbstractNum->m_oMultiLevelType.IsInit())
{
switch(m_ooxAbstractNum->m_oMultiLevelType->m_oVal->GetValue())
{
case SimpleTypes::emultileveltypeHybridMultilevel : oNewList.m_bListHybrid = 1; break;
case SimpleTypes::emultileveltypeSingleLevel : oNewList.m_nListSimple = 1; break;
case SimpleTypes::emultileveltypeMultilevel :
default : break;
}
}
if (m_ooxAbstractNum->m_oName.IsInit())
oNewList.m_sName = m_ooxAbstractNum->m_oName->m_sVal.get2();
if (m_ooxAbstractNum->m_oTmpl.IsInit() && m_ooxAbstractNum->m_oTmpl->m_oVal.IsInit())
oNewList.m_nTemplateId = m_ooxAbstractNum->m_oTmpl->m_oVal->GetValue();
for (long i=0 ; i < m_ooxAbstractNum->m_arrLvl.size(); i++)
{
OOXLevelReader oLevelReader(m_ooxAbstractNum->m_arrLvl[i]);
RtfListLevelProperty oNewLevel;
if( true == oLevelReader.Parse( oParam, oNewLevel) )
oNewList.AddItem( oNewLevel );
}
oParam.oRtf->m_oListTabel.AddItem( oNewList );
return true;
}
};