xref: /aoo42x/main/sw/source/core/inc/doctxm.hxx (revision 4d7c9de0)
11d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
31d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
41d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
51d2dbeb0SAndrew Rist  * distributed with this work for additional information
61d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
71d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
81d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
91d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
101d2dbeb0SAndrew Rist  *
111d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
121d2dbeb0SAndrew Rist  *
131d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
141d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
151d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
161d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
171d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
181d2dbeb0SAndrew Rist  * under the License.
191d2dbeb0SAndrew Rist  *
201d2dbeb0SAndrew Rist  *************************************************************/
211d2dbeb0SAndrew Rist 
221d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir #ifndef _DOCTXM_HXX
24cdf0e10cSrcweir #define _DOCTXM_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <svl/svarray.hxx>
28cdf0e10cSrcweir #include <tools/gen.hxx>
29cdf0e10cSrcweir #include <tox.hxx>
30cdf0e10cSrcweir #include <section.hxx>
31cdf0e10cSrcweir 
32cdf0e10cSrcweir class  SwTOXInternational;
33cdf0e10cSrcweir class  SvUShorts;
34cdf0e10cSrcweir class  SvStringsDtor;
35cdf0e10cSrcweir class  SvPtrarr;
36cdf0e10cSrcweir class  SwPageDesc;
37cdf0e10cSrcweir class  SwTxtNode;
38cdf0e10cSrcweir class  SwTxtFmtColl;
39cdf0e10cSrcweir struct SwPosition;
40cdf0e10cSrcweir struct SwTOXSortTabBase;
41cdf0e10cSrcweir 
42cdf0e10cSrcweir typedef SwTOXSortTabBase* SwTOXSortTabBasePtr;
43cdf0e10cSrcweir 
44cdf0e10cSrcweir SV_DECL_PTRARR(SwTOXSortTabBases, SwTOXSortTabBasePtr, 0, 5 )
45cdf0e10cSrcweir 
46cdf0e10cSrcweir /*--------------------------------------------------------------------
47cdf0e10cSrcweir 	 Beschreibung: Ring der speziellen Verzeichnisse
48cdf0e10cSrcweir  --------------------------------------------------------------------*/
49cdf0e10cSrcweir 
50cdf0e10cSrcweir class SwTOXBaseSection : public SwTOXBase, public SwSection
51cdf0e10cSrcweir {
52cdf0e10cSrcweir 	SwTOXSortTabBases aSortArr;
53cdf0e10cSrcweir 
54cdf0e10cSrcweir 	void 	UpdateMarks( const SwTOXInternational& rIntl,
55cdf0e10cSrcweir 							const SwTxtNode* pOwnChapterNode );
56cdf0e10cSrcweir 	void 	UpdateOutline( const SwTxtNode* pOwnChapterNode );
57cdf0e10cSrcweir 	void 	UpdateTemplate( const SwTxtNode* pOwnChapterNode );
58cdf0e10cSrcweir 	void 	UpdateCntnt( SwTOXElement eType,
59cdf0e10cSrcweir 							const SwTxtNode* pOwnChapterNode );
60cdf0e10cSrcweir 	void 	UpdateTable( const SwTxtNode* pOwnChapterNode );
61cdf0e10cSrcweir 	void 	UpdateSequence( const SwTxtNode* pOwnChapterNode );
62cdf0e10cSrcweir 	void 	UpdateAuthorities( const SwTOXInternational& rIntl );
63cdf0e10cSrcweir 	void	UpdateAll();
64cdf0e10cSrcweir 
65cdf0e10cSrcweir 	// Sortiert einfuegen ins Array fuer die Generierung
66cdf0e10cSrcweir 	void	InsertSorted(SwTOXSortTabBase* pBase);
67cdf0e10cSrcweir 
68cdf0e10cSrcweir 	// Alpha-Trennzeichen bei der Generierung einfuegen
69cdf0e10cSrcweir 	void	InsertAlphaDelimitter( const SwTOXInternational& rIntl );
70cdf0e10cSrcweir 
71cdf0e10cSrcweir 	// Textrumpf generieren
72cdf0e10cSrcweir     // OD 18.03.2003 #106329# - add parameter <_TOXSectNdIdx> and <_pDefaultPageDesc>
73cdf0e10cSrcweir     void GenerateText( sal_uInt16 nArrayIdx,
74cdf0e10cSrcweir                        sal_uInt16 nCount,
75cdf0e10cSrcweir                        SvStringsDtor&,
76cdf0e10cSrcweir                        const sal_uInt32   _nTOXSectNdIdx,
77cdf0e10cSrcweir                        const SwPageDesc*  _pDefaultPageDesc );
78cdf0e10cSrcweir 
79cdf0e10cSrcweir 	// Seitennummerplatzhalter gegen aktuelle Nummern austauschen
80cdf0e10cSrcweir 	void	_UpdatePageNum( SwTxtNode* pNd,
81cdf0e10cSrcweir 							const SvUShorts& rNums,
82cdf0e10cSrcweir 							const SvPtrarr &rDescs,
83cdf0e10cSrcweir 							const SvUShorts* pMainEntryNums,
84cdf0e10cSrcweir 							const SwTOXInternational& rIntl );
85cdf0e10cSrcweir 
86cdf0e10cSrcweir 	// Bereich fuer Stichwort einfuegen suchen
87cdf0e10cSrcweir     Range GetKeyRange( const String& rStr, const String& rStrReading,
88cdf0e10cSrcweir                        const SwTOXSortTabBase& rNew, sal_uInt16 nLevel,
89cdf0e10cSrcweir                        const Range& rRange );
90cdf0e10cSrcweir 
91cdf0e10cSrcweir 	// returne die TextCollection ueber den Namen / aus Format-Pool
92cdf0e10cSrcweir 	SwTxtFmtColl* GetTxtFmtColl( sal_uInt16 nLevel );
93cdf0e10cSrcweir 
94cdf0e10cSrcweir public:
95cdf0e10cSrcweir     SwTOXBaseSection(SwTOXBase const& rBase, SwSectionFmt & rFmt);
96cdf0e10cSrcweir 	virtual ~SwTOXBaseSection();
97cdf0e10cSrcweir 
98cdf0e10cSrcweir     // OD 19.03.2003 #106329# - add parameter <_bNewTOX> in order to distinguish
99cdf0e10cSrcweir     // between the creation of a new table-of-content or an update of
100cdf0e10cSrcweir     // a table-of-content. Default value: false
101cdf0e10cSrcweir     void Update( const SfxItemSet* pAttr = 0,
102cdf0e10cSrcweir                  const bool        _bNewTOX = false ); // Formatieren
103cdf0e10cSrcweir 	void UpdatePageNum();   			// Seitennummern einfuegen
104cdf0e10cSrcweir 	TYPEINFO();							// fuers rtti
GetTOXSortTabBases()105*ca62e2c2SSteve Yin 	SwTOXSortTabBases* GetTOXSortTabBases() { return &aSortArr; }
106cdf0e10cSrcweir 
107cdf0e10cSrcweir 	sal_Bool SetPosAtStartEnd( SwPosition& rPos, sal_Bool bAtStart = sal_True ) const;
108cdf0e10cSrcweir };
109cdf0e10cSrcweir /* -----------------02.09.99 07:52-------------------
110cdf0e10cSrcweir 
111cdf0e10cSrcweir  --------------------------------------------------*/
112cdf0e10cSrcweir struct SwDefTOXBase_Impl
113cdf0e10cSrcweir {
114cdf0e10cSrcweir 	SwTOXBase* pContBase;
115cdf0e10cSrcweir 	SwTOXBase* pIdxBase;
116cdf0e10cSrcweir 	SwTOXBase* pUserBase;
117cdf0e10cSrcweir 	SwTOXBase* pTblBase;
118cdf0e10cSrcweir 	SwTOXBase* pObjBase;
119cdf0e10cSrcweir 	SwTOXBase* pIllBase;
120cdf0e10cSrcweir 	SwTOXBase* pAuthBase;
121cdf0e10cSrcweir 
SwDefTOXBase_ImplSwDefTOXBase_Impl122cdf0e10cSrcweir 	SwDefTOXBase_Impl() :
123cdf0e10cSrcweir 	pContBase(0),
124cdf0e10cSrcweir 	pIdxBase(0),
125cdf0e10cSrcweir 	pUserBase(0),
126cdf0e10cSrcweir 	pTblBase(0),
127cdf0e10cSrcweir 	pObjBase(0),
128cdf0e10cSrcweir 	pIllBase(0),
129cdf0e10cSrcweir 	pAuthBase(0)
130cdf0e10cSrcweir 	{}
~SwDefTOXBase_ImplSwDefTOXBase_Impl131cdf0e10cSrcweir 	~SwDefTOXBase_Impl()
132cdf0e10cSrcweir 	{
133cdf0e10cSrcweir 		delete pContBase;
134cdf0e10cSrcweir 		delete pIdxBase;
135cdf0e10cSrcweir 		delete pUserBase;
136cdf0e10cSrcweir 		delete pTblBase;
137cdf0e10cSrcweir 		delete pObjBase;
138cdf0e10cSrcweir 		delete pIllBase;
139cdf0e10cSrcweir 		delete pAuthBase;
140cdf0e10cSrcweir 	}
141cdf0e10cSrcweir 
142cdf0e10cSrcweir };
143cdf0e10cSrcweir 
144cdf0e10cSrcweir #endif	// _DOCTXM_HXX
145