OOo中文字处理中的表格介绍
索引和位置SwNodes类(SwNode对象数组):包含SwNodeIndexes列表,成员变量pRoot指向列表中的第一个元素。如果SwNodes数组执行删除SwNode对象操作,SwNodeIndexes会指向一个删除的对象将会调整为下一个不会被删除的对象。
类SwNodeIndex:包含指向SwNode对象的指针,它是在SwNodes数组的SwNode对象的列表的一部分。只要SwNode对象是在SwNodes数组,该SwNodeIndex不需要改变。
如果SwNode从SwNodes数组中移除,SwNodeIndex适应移动到SwNodes数组中的下一个SwNode,此操作是由SwNodes(-Array)自己完成的。所有的SwNodeIndexs必须注册在它们的SwNode所在的SwNodes数组上,SwNodes数组包含所有注册的SwNodeIndexes的列表。成员函数pRoot指向第一个SwNodeIndex,每个SwNodeIndex有pPrev和pNext指针指向上一个/下一个在列表中的SwNodeIndex。
++() 和--()操作符允许SwNodeIndex在SwNodes数组中迭代。
类SwNodeRange:简单的SwNodeIndex对(start,end)。
SwNodes继承自BigPtrArray,BigPtrArray是BigPtrEntry的数组。
BigPtrEntry知道在数组中的位置(GetPos()),如果有元素插入或者删除,必须进行调整其位置。
SwNode继承自BigPtrEntry。
在文字处理模型中,SwTxtNode代表一个段落。SwTxtNode继承自SwCntntNode,SwCntntNode继承自SwIndexReg。
类SwIndexReg:包含一个排序的SwIndexes列表,pFirst指向列表中的第一个元素,pLast指向列表中的最后一个元素。
类SwIndex:代表数组(SwIndexReg *pArray)中的一个位置(xub_StrLen nIndex),SwIndex注册到这个数组中。如果数组被操作,会更新所有相应的位置(方法Update(..))。
类SwPosition:它是SwNodeIndex和SwIndex对并且代表文档中的一个位置。如果SwNodeIndex指向一个段落(SwTxtNode),SwIndex注册到这个SwNode并且其值指向段落中一个字符的位置。如果SwNode指向其他的类型(例如,SwTableNode、SwSectionNode、SwStartNode),SwIndex被注册到一个虚的SwIndexReg上。
重要提示:如果SwPosition的SwNodeIndex指向SwTxtNode,SwIndex必须注册到相同的SwTxtNode。如果一个SwPostion的SwNodeIndex的操作代码为:aPosition.nNode++;SwIndex也需要适应:aPosition.nContent.Assign( aPosition.nNode.GetNode().GetCntntNode(), 0 );.