1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/************************************************************************/
/* */
/* Manage the numbers in bulleted and numbered lists. */
/* */
/************************************************************************/
# ifndef DOC_LIST_NUMBER_TREE_H
# define DOC_LIST_NUMBER_TREE_H
typedef struct ListNumberTreeNode
{
int lntnParagraphNumber;
int lntnLeafCount;
struct ListNumberTreeNode * lntnChildren;
int lntnChildCount;
unsigned char lntnIsLeaf;
} ListNumberTreeNode;
/************************************************************************/
/* */
/* Routine declarations. */
/* */
/************************************************************************/
extern int docListNumberTreeInsertParagraph(
ListNumberTreeNode * root,
int ilvl0,
int paraNr );
extern int docListNumberTreeDeleteParagraph(
ListNumberTreeNode * root,
int paraNr );
extern int docListNumberTreeGetNumberPath(
int * numberPath,
ListNumberTreeNode * root,
int ilvl,
int paraNr );
extern int docListNumberTreeGetPrevPath(int * numberPath,
int * pLevel,
ListNumberTreeNode * root,
int paraNr );
extern void docFreeListNumberNodes( ListNumberTreeNode * nodes,
int count );
extern int docClaimListNumberTreeNodes( ListNumberTreeNode ** pLntn,
int * pCount,
int count );
extern void docShiftBulletReferences( ListNumberTreeNode * root,
int paraFrom,
int paraShift );
extern void docLogListNumberTreeNode( int indent,
const ListNumberTreeNode * lntn );
# endif
|