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