Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes

RTF_msword97_level Class Reference

#include <ie_imp_RTF.h>

List of all members.

Public Member Functions

 RTF_msword97_level (RTF_msword97_list *pmsword97List, UT_uint32 level)
 ~RTF_msword97_level ()
void buildAbiListProperties (const char **szListID, const char **szParentID, const char **szLevel, const char **szStartat, const char **szFieldFont, const char **szListDelim, const char **szListDecimal, const char **szAlign, const char **szIndent, const char **szListStyle)
bool ParseLevelText (const std::string &szLevelText, const std::string &szLevelNumbers, UT_uint32 iLevel)

Public Attributes

UT_sint32 m_levelStartAt
UT_uint32 m_AbiLevelID
UT_uint32 m_RTFListType
std::string m_listDelim
char m_cLevelFollow
bool m_bStartNewList
bool m_bRestart
std::unique_ptr
< RTFProps_ParaProps
m_pParaProps
std::unique_ptr
< RTFProps_CharProps
m_pCharProps
std::unique_ptr
< RTFProps_bParaProps
m_pbParaProps
std::unique_ptr
< RTFProps_bCharProps
m_pbCharProps

Static Public Attributes

static UT_uint32 m_sPreviousLevel = 0

Private Attributes

UT_uint32 m_localLevel
RTF_msword97_listm_pMSWord97_list

Constructor & Destructor Documentation

RTF_msword97_level::RTF_msword97_level ( RTF_msword97_list pmsword97List,
UT_uint32  level 
)
RTF_msword97_level::~RTF_msword97_level ( void   ) 

Member Function Documentation

void RTF_msword97_level::buildAbiListProperties ( const char **  szListID,
const char **  szParentID,
const char **  szLevel,
const char **  szStartat,
const char **  szFieldFont,
const char **  szListDelim,
const char **  szListDecimal,
const char **  szAlign,
const char **  szIndent,
const char **  szListStyle 
)
bool RTF_msword97_level::ParseLevelText ( const std::string &  szLevelText,
const std::string &  szLevelNumbers,
UT_uint32  iLevel 
)

Parse the leveltext and levelnumbers values. The idea is to translate the strings into AbiWord compatible format.

From the RTF standard: "... a level three number such as '1.a.(i)' would generate the following RTF: '{ \'07\'00.\'01.(\'02)'}' where \'07 is the string length, the \'00 \'01 and \'02 are level place holders, and the rest is surrounding text. The corresponding levelnumbers would be { \'01\'03\'06} because the level place holders have indices 1,3,6.

In AbiWord, either this level resuses the parent label and adds on more text, or starts a new label. So we can only get 1.a.(i) if the parent label is 1.a. or 1.a

Todo:
look up the parent label and be more precise about what is added by this label.

References m_bStartNewList, m_listDelim, UT_DEBUGMSG, UT_return_val_if_fail, and UT_UCS4_isdigit().

Referenced by IE_Imp_RTF::HandleListLevel().


Member Data Documentation

Referenced by buildAbiListProperties().


The documentation for this class was generated from the following files: