Files
core/ASCOfficeRtfFile/OOXAbstractNumReader.h

51 lines
1.6 KiB
C++

#pragma once
#include "OOXLevelReader.h"
class OOXAbstractNumReader
{
public: OOXAbstractNumReader()
{
}
public: bool Parse( ReaderParameter oParam )
{
XmlUtils::CXmlReader oXmlReader;
if( TRUE == oXmlReader.OpenFromXmlNode(oParam.oNode) )
{
RtfListProperty oNewList;
COMMAND_OOX_INT_ATTRIBUTE_2( _T("w:abstractNumId"), oNewList.m_nID, oXmlReader )
oXmlReader.ReadNodeList( _T("*") );
for( int i = 0; i < oXmlReader.GetLengthList(); i++ )
{
CString sNodeName = oXmlReader.ReadNodeName( i );
if( _T("w:multiLevelType") == sNodeName )
{
CString sLevelType = oXmlReader.ReadNodeAttribute( i, _T("w:val") );
if( _T("hybridMultilevel") == sLevelType )
oNewList.m_bListHybrid = 1;
else if( _T("singleLevel") == sLevelType )
oNewList.m_nListSimple = 1;
//else if( _T("multilevel") == sLevelType )
// oNewList.m_nListSimple = 0;
}
else if( _T("w:name") == sNodeName )
oNewList.m_sName = oXmlReader.ReadNodeAttribute(i, _T("w:val") );
COMMAND_OOX_INT( _T("w:tmpl"), oNewList.m_nTemplateId, sNodeName, oXmlReader, i )
else if( _T("w:lvl") == sNodeName )
{
XML::IXMLDOMNodePtr oNode;
oXmlReader.GetNode(i,oNode);
oParam.oNode = oNode;
OOXLevelReader oLevelReader;
RtfListLevelProperty oNewLevel;
if( true == oLevelReader.Parse( oParam, oNewLevel) )
oNewList.AddItem( oNewLevel );
}
}
oParam.oDocument->m_oListTabel.AddItem( oNewList );
}
return true;
}
};