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 UT_String &szLevelText, const UT_String &szLevelNumbers, UT_uint32 iLevel)

Public Attributes

UT_sint32 m_levelStartAt
UT_uint32 m_AbiLevelID
UT_uint32 m_RTFListType
UT_String m_listDelim
char m_cLevelFollow
bool m_bStartNewList
bool m_bRestart
RTFProps_ParaPropsm_pParaProps
RTFProps_CharPropsm_pCharProps
RTFProps_bParaPropsm_pbParaProps
RTFProps_bCharPropsm_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 UT_String szLevelText,
const UT_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 UT_String::c_str(), m_bStartNewList, m_listDelim, UT_String::size(), 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:

Generated on Mon Sep 8 00:07:07 2008 for AbiWord by  doxygen 1.5.5