xref: /aoo41x/main/sw/inc/tox.hxx (revision f66c5aaf)
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 SW_TOX_HXX
24cdf0e10cSrcweir #define SW_TOX_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <cppuhelper/weakref.hxx>
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include <i18npool/lang.h>
29cdf0e10cSrcweir #include <tools/string.hxx>
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #include <editeng/svxenum.hxx>
32cdf0e10cSrcweir #include <svl/svarray.hxx>
33cdf0e10cSrcweir #include <svl/poolitem.hxx>
34cdf0e10cSrcweir #include "swdllapi.h"
35cdf0e10cSrcweir #include <swtypes.hxx>
36cdf0e10cSrcweir #include <toxe.hxx>
37cdf0e10cSrcweir #include <calbck.hxx>
38cdf0e10cSrcweir #include <errhdl.hxx>
39cdf0e10cSrcweir 
40cdf0e10cSrcweir #ifndef INCLUDED_VECTOR
41cdf0e10cSrcweir #include <vector> // #i21237#
42cdf0e10cSrcweir #define INCLUDED_VECTOR
43cdf0e10cSrcweir #endif
44cdf0e10cSrcweir 
45cdf0e10cSrcweir 
46cdf0e10cSrcweir namespace com { namespace sun { namespace star {
47cdf0e10cSrcweir     namespace text { class XDocumentIndexMark; }
48cdf0e10cSrcweir } } }
49cdf0e10cSrcweir 
50cdf0e10cSrcweir class SwTOXType;
51cdf0e10cSrcweir class SwTOXMark;
52cdf0e10cSrcweir class SwTxtTOXMark;
53cdf0e10cSrcweir class SwDoc;
54cdf0e10cSrcweir 
55cdf0e10cSrcweir SV_DECL_PTRARR(SwTOXMarks, SwTOXMark*, 0, 10)
56cdf0e10cSrcweir 
57cdf0e10cSrcweir /*--------------------------------------------------------------------
58cdf0e10cSrcweir      Description:  Entry of content index, alphabetical index or user defined index
59cdf0e10cSrcweir  --------------------------------------------------------------------*/
60cdf0e10cSrcweir 
61cdf0e10cSrcweir #define IVER_TOXMARK_STRPOOL ((sal_uInt16)1)
62cdf0e10cSrcweir #define IVER_TOXMARK_NEWTOX ((sal_uInt16)2)
63cdf0e10cSrcweir 
64cdf0e10cSrcweir class SW_DLLPUBLIC SwTOXMark
65cdf0e10cSrcweir     : public SfxPoolItem
66cdf0e10cSrcweir     , public SwModify
67cdf0e10cSrcweir {
68cdf0e10cSrcweir 	friend void _InitCore();
69cdf0e10cSrcweir 	friend class SwTxtTOXMark;
70cdf0e10cSrcweir 
71cdf0e10cSrcweir 	String aAltText; 	// Der Text des Eintrages ist unterschiedlich
72cdf0e10cSrcweir 	String aPrimaryKey, aSecondaryKey;
73cdf0e10cSrcweir 
74cdf0e10cSrcweir     // three more strings for phonetic sorting
75cdf0e10cSrcweir     String aTextReading;
76cdf0e10cSrcweir     String aPrimaryKeyReading;
77cdf0e10cSrcweir     String aSecondaryKeyReading;
78cdf0e10cSrcweir 
79cdf0e10cSrcweir 	SwTxtTOXMark* pTxtAttr;
80cdf0e10cSrcweir 
81cdf0e10cSrcweir 	sal_uInt16 	nLevel;
82cdf0e10cSrcweir 	sal_Bool	bAutoGenerated : 1;		// generated using a concordance file
83cdf0e10cSrcweir 	sal_Bool	bMainEntry : 1;			// main entry emphasized by character style
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     ::com::sun::star::uno::WeakReference<
86cdf0e10cSrcweir         ::com::sun::star::text::XDocumentIndexMark> m_wXDocumentIndexMark;
87cdf0e10cSrcweir 
88cdf0e10cSrcweir     SwTOXMark();                    // to create the dflt. atr. in _InitCore
89cdf0e10cSrcweir 
90cdf0e10cSrcweir protected:
91cdf0e10cSrcweir     // SwClient
92cdf0e10cSrcweir    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew );
93cdf0e10cSrcweir 
94cdf0e10cSrcweir public:
95cdf0e10cSrcweir     TYPEINFO();   // rtti
96cdf0e10cSrcweir 
97cdf0e10cSrcweir 	// single argument ctors shall be explicit.
98cdf0e10cSrcweir 	explicit SwTOXMark( const SwTOXType* pTyp );
99cdf0e10cSrcweir 	virtual ~SwTOXMark();
100cdf0e10cSrcweir 
101cdf0e10cSrcweir 	SwTOXMark( const SwTOXMark& rCopy );
102cdf0e10cSrcweir 	SwTOXMark& operator=( const SwTOXMark& rCopy );
103cdf0e10cSrcweir 
104cdf0e10cSrcweir     // "pure virtual methods" of SfxPoolItem
105cdf0e10cSrcweir 	virtual int 			operator==( const SfxPoolItem& ) const;
106cdf0e10cSrcweir 	virtual SfxPoolItem*	Clone( SfxItemPool* pPool = 0 ) const;
107cdf0e10cSrcweir 
108cdf0e10cSrcweir     void InvalidateTOXMark();
109cdf0e10cSrcweir 
110cdf0e10cSrcweir 	String					GetText() const;
111cdf0e10cSrcweir 
112cdf0e10cSrcweir 	inline sal_Bool				IsAlternativeText() const;
113cdf0e10cSrcweir 	inline const String&	GetAlternativeText() const;
114cdf0e10cSrcweir 
115cdf0e10cSrcweir 	inline void				SetAlternativeText( const String& rAlt );
116cdf0e10cSrcweir 
117cdf0e10cSrcweir     // content or user defined index
118cdf0e10cSrcweir     inline void             SetLevel(sal_uInt16 nLevel);
119cdf0e10cSrcweir 	inline sal_uInt16			GetLevel() const;
120cdf0e10cSrcweir 
121cdf0e10cSrcweir     // for alphabetical index only
122cdf0e10cSrcweir 	inline void				SetPrimaryKey(const String& rStr );
123cdf0e10cSrcweir 	inline void				SetSecondaryKey(const String& rStr);
124cdf0e10cSrcweir     inline void             SetTextReading(const String& rStr);
125cdf0e10cSrcweir     inline void             SetPrimaryKeyReading(const String& rStr );
126cdf0e10cSrcweir     inline void             SetSecondaryKeyReading(const String& rStr);
127cdf0e10cSrcweir 
128cdf0e10cSrcweir     inline const String&    GetPrimaryKey() const;
129cdf0e10cSrcweir 	inline const String&	GetSecondaryKey() const;
130cdf0e10cSrcweir     inline const String&    GetTextReading() const;
131cdf0e10cSrcweir     inline const String&    GetPrimaryKeyReading() const;
132cdf0e10cSrcweir     inline const String&    GetSecondaryKeyReading() const;
133cdf0e10cSrcweir 
IsAutoGenerated() const134cdf0e10cSrcweir 	sal_Bool					IsAutoGenerated() const {return bAutoGenerated;}
SetAutoGenerated(sal_Bool bSet)135cdf0e10cSrcweir 	void					SetAutoGenerated(sal_Bool bSet) {bAutoGenerated = bSet;}
136cdf0e10cSrcweir 
IsMainEntry() const137cdf0e10cSrcweir 	sal_Bool					IsMainEntry() const {return bMainEntry;}
SetMainEntry(sal_Bool bSet)138cdf0e10cSrcweir 	void					SetMainEntry(sal_Bool bSet) { bMainEntry = bSet;}
139cdf0e10cSrcweir 
140cdf0e10cSrcweir 	inline const SwTOXType*    GetTOXType() const;
141cdf0e10cSrcweir 
GetTxtTOXMark() const142cdf0e10cSrcweir 	const SwTxtTOXMark* GetTxtTOXMark() const	{ return pTxtAttr; }
GetTxtTOXMark()143cdf0e10cSrcweir 		  SwTxtTOXMark* GetTxtTOXMark() 		{ return pTxtAttr; }
144cdf0e10cSrcweir 
145cdf0e10cSrcweir     SW_DLLPRIVATE ::com::sun::star::uno::WeakReference<
GetXTOXMark() const146cdf0e10cSrcweir         ::com::sun::star::text::XDocumentIndexMark> const& GetXTOXMark() const
147cdf0e10cSrcweir             { return m_wXDocumentIndexMark; }
SetXTOXMark(::com::sun::star::uno::Reference<::com::sun::star::text::XDocumentIndexMark> const & xMark)148cdf0e10cSrcweir     SW_DLLPRIVATE void SetXTOXMark(::com::sun::star::uno::Reference<
149cdf0e10cSrcweir                     ::com::sun::star::text::XDocumentIndexMark> const& xMark)
150cdf0e10cSrcweir             { m_wXDocumentIndexMark = xMark; }
DeRegister()151cdf0e10cSrcweir     void DeRegister() { GetRegisteredInNonConst()->Remove( this ); }
152cdf0e10cSrcweir     void RegisterToTOXType( SwTOXType& rMark );
153cdf0e10cSrcweir     static void InsertTOXMarks( SwTOXMarks& aMarks, const SwTOXType& rType );
154cdf0e10cSrcweir };
155cdf0e10cSrcweir 
156cdf0e10cSrcweir /*--------------------------------------------------------------------
157cdf0e10cSrcweir      Description:  index types
158cdf0e10cSrcweir  --------------------------------------------------------------------*/
159cdf0e10cSrcweir 
160cdf0e10cSrcweir class SwTOXType : public SwModify
161cdf0e10cSrcweir {
162cdf0e10cSrcweir public:
163cdf0e10cSrcweir 	SwTOXType(TOXTypes eTyp, const String& aName);
164cdf0e10cSrcweir 
165cdf0e10cSrcweir 	// @@@ public copy ctor, but no copy assignment?
166cdf0e10cSrcweir 	SwTOXType(const SwTOXType& rCopy);
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 	inline	const String&	GetTypeName() const;
169cdf0e10cSrcweir     inline TOXTypes         GetType() const;
170cdf0e10cSrcweir 
171cdf0e10cSrcweir private:
172cdf0e10cSrcweir 	String			aName;
173cdf0e10cSrcweir 	TOXTypes		eType;
174cdf0e10cSrcweir 
175cdf0e10cSrcweir 	// @@@ public copy ctor, but no copy assignment?
176cdf0e10cSrcweir 	SwTOXType & operator= (const SwTOXType &);
177cdf0e10cSrcweir };
178cdf0e10cSrcweir 
179cdf0e10cSrcweir /*--------------------------------------------------------------------
180cdf0e10cSrcweir      Description:  Structure of the index lines
181cdf0e10cSrcweir  --------------------------------------------------------------------*/
182cdf0e10cSrcweir 
183cdf0e10cSrcweir #define FORM_TITLE 				0
184cdf0e10cSrcweir #define FORM_ALPHA_DELIMITTER 	1
185cdf0e10cSrcweir #define FORM_PRIMARY_KEY		2
186cdf0e10cSrcweir #define FORM_SECONDARY_KEY		3
187cdf0e10cSrcweir #define FORM_ENTRY				4
188cdf0e10cSrcweir 
189cdf0e10cSrcweir /*
190cdf0e10cSrcweir  Pattern structure
191cdf0e10cSrcweir 
192cdf0e10cSrcweir  <E#> - entry number  					<E# CharStyleName,PoolId>
193cdf0e10cSrcweir  <ET> - entry text      				<ET CharStyleName,PoolId>
194cdf0e10cSrcweir  <E>  - entry text and number           <E CharStyleName,PoolId>
195cdf0e10cSrcweir  <T>  - tab stop                        <T,,Position,Adjust>
196cdf0e10cSrcweir  <C>  - chapter info n = {0, 1, 2, 3, 4 } values of SwChapterFormat <C CharStyleName,PoolId>
197cdf0e10cSrcweir  <TX> - text token						<X CharStyleName,PoolId, TOX_STYLE_DELIMITERTextContentTOX_STYLE_DELIMITER>
198cdf0e10cSrcweir  <#>  - Page number                     <# CharStyleName,PoolId>
199cdf0e10cSrcweir  <LS> - Link start                      <LS>
200cdf0e10cSrcweir  <LE> - Link end                        <LE>
201cdf0e10cSrcweir  <A00> - Authority entry field			<A02 CharStyleName, PoolId>
202cdf0e10cSrcweir  */
203cdf0e10cSrcweir 
204cdf0e10cSrcweir // These enum values are stored and must not be changed!
205cdf0e10cSrcweir enum FormTokenType
206cdf0e10cSrcweir {
207cdf0e10cSrcweir 	TOKEN_ENTRY_NO,
208cdf0e10cSrcweir 	TOKEN_ENTRY_TEXT,
209cdf0e10cSrcweir 	TOKEN_ENTRY,
210cdf0e10cSrcweir 	TOKEN_TAB_STOP,
211cdf0e10cSrcweir 	TOKEN_TEXT,
212cdf0e10cSrcweir 	TOKEN_PAGE_NUMS,
213cdf0e10cSrcweir 	TOKEN_CHAPTER_INFO,
214cdf0e10cSrcweir 	TOKEN_LINK_START,
215cdf0e10cSrcweir 	TOKEN_LINK_END,
216cdf0e10cSrcweir 	TOKEN_AUTHORITY,
217cdf0e10cSrcweir 	TOKEN_END
218cdf0e10cSrcweir };
219cdf0e10cSrcweir 
220cdf0e10cSrcweir struct SW_DLLPUBLIC SwFormToken
221cdf0e10cSrcweir {
222cdf0e10cSrcweir 	String			sText;
223cdf0e10cSrcweir 	String			sCharStyleName;
224cdf0e10cSrcweir 	SwTwips			nTabStopPosition;
225cdf0e10cSrcweir 	FormTokenType 	eTokenType;
226cdf0e10cSrcweir 	sal_uInt16			nPoolId;
227cdf0e10cSrcweir     SvxTabAdjust    eTabAlign;
228cdf0e10cSrcweir 	sal_uInt16			nChapterFormat;		//SwChapterFormat;
229cdf0e10cSrcweir     sal_uInt16          nOutlineLevel;//the maximum permitted outline level in numbering
230cdf0e10cSrcweir 	sal_uInt16			nAuthorityField;	//enum ToxAuthorityField
231cdf0e10cSrcweir 	sal_Unicode 	cTabFillChar;
232cdf0e10cSrcweir     sal_Bool        bWithTab;      // sal_True: do generate tab
233cdf0e10cSrcweir                                    // character only the tab stop
234cdf0e10cSrcweir                                    // #i21237#
235cdf0e10cSrcweir 
SwFormTokenSwFormToken236cdf0e10cSrcweir 	SwFormToken(FormTokenType eType ) :
237cdf0e10cSrcweir         nTabStopPosition(0),
238cdf0e10cSrcweir 		eTokenType(eType),
239cdf0e10cSrcweir 		nPoolId(USHRT_MAX),
240cdf0e10cSrcweir         eTabAlign( SVX_TAB_ADJUST_LEFT ),
241cdf0e10cSrcweir 		nChapterFormat(0 /*CF_NUMBER*/),
242cdf0e10cSrcweir         nOutlineLevel(MAXLEVEL),   //default to maximum outline level
243cdf0e10cSrcweir 		nAuthorityField(0 /*AUTH_FIELD_IDENTIFIER*/),
244cdf0e10cSrcweir 		cTabFillChar(' '),
245cdf0e10cSrcweir         bWithTab(sal_True)  // #i21237#
246cdf0e10cSrcweir     {}
247cdf0e10cSrcweir 
248cdf0e10cSrcweir 	String GetString() const;
249cdf0e10cSrcweir };
250cdf0e10cSrcweir 
251cdf0e10cSrcweir // -> #i21237#
252cdf0e10cSrcweir /**
253cdf0e10cSrcweir     Functor that is true when a given token has a certain token type.
254cdf0e10cSrcweir 
255cdf0e10cSrcweir     @param _eType  the type to check for
256cdf0e10cSrcweir     @param rToken  the token to check
257cdf0e10cSrcweir 
258cdf0e10cSrcweir     @retval sal_True   the token has the given type
259cdf0e10cSrcweir     @retval sal_False  else
260cdf0e10cSrcweir */
261cdf0e10cSrcweir struct SwFormTokenEqualToFormTokenType
262cdf0e10cSrcweir {
263cdf0e10cSrcweir     FormTokenType eType;
264cdf0e10cSrcweir 
SwFormTokenEqualToFormTokenTypeSwFormTokenEqualToFormTokenType265cdf0e10cSrcweir     SwFormTokenEqualToFormTokenType(FormTokenType _eType) : eType(_eType) {}
operator ()SwFormTokenEqualToFormTokenType266cdf0e10cSrcweir     bool operator()(const SwFormToken & rToken)
267cdf0e10cSrcweir     {
268cdf0e10cSrcweir         return rToken.eTokenType == eType;
269cdf0e10cSrcweir     }
270cdf0e10cSrcweir };
271cdf0e10cSrcweir 
272cdf0e10cSrcweir /**
273cdf0e10cSrcweir    Functor that appends the string representation of a given token to a string.
274cdf0e10cSrcweir 
275cdf0e10cSrcweir    @param _rText    string to append the string representation to
276cdf0e10cSrcweir    @param rToken    token whose string representation is appended
277cdf0e10cSrcweir */
278cdf0e10cSrcweir struct SwFormTokenToString
279cdf0e10cSrcweir {
280cdf0e10cSrcweir     String & rText;
SwFormTokenToStringSwFormTokenToString281cdf0e10cSrcweir     SwFormTokenToString(String & _rText) : rText(_rText) {}
operator ()SwFormTokenToString282cdf0e10cSrcweir     void operator()(const SwFormToken & rToken) { rText += rToken.GetString(); }
283cdf0e10cSrcweir };
284cdf0e10cSrcweir 
285cdf0e10cSrcweir /// Vector of tokens.
286cdf0e10cSrcweir typedef std::vector<SwFormToken> SwFormTokens;
287cdf0e10cSrcweir 
288cdf0e10cSrcweir /**
289cdf0e10cSrcweir    Helper class that converts vectors of tokens to strings and vice
290cdf0e10cSrcweir    versa.
291cdf0e10cSrcweir  */
292cdf0e10cSrcweir class SW_DLLPUBLIC SwFormTokensHelper
293cdf0e10cSrcweir {
294cdf0e10cSrcweir     /// the tokens
295cdf0e10cSrcweir     SwFormTokens aTokens;
296cdf0e10cSrcweir 
297cdf0e10cSrcweir     /**
298cdf0e10cSrcweir        Builds a token from its string representation.
299cdf0e10cSrcweir 
300cdf0e10cSrcweir        @sPattern          the whole pattern
301cdf0e10cSrcweir        @nCurPatternPos    starting position of the token
302cdf0e10cSrcweir 
303cdf0e10cSrcweir        @return the token
304cdf0e10cSrcweir      */
305cdf0e10cSrcweir     SW_DLLPRIVATE SwFormToken BuildToken( const String & sPattern,
306cdf0e10cSrcweir 										  xub_StrLen & nCurPatternPos ) const;
307cdf0e10cSrcweir 
308cdf0e10cSrcweir     /**
309cdf0e10cSrcweir        Returns the string of a token.
310cdf0e10cSrcweir 
311cdf0e10cSrcweir        @param sPattern    the whole pattern
312cdf0e10cSrcweir        @param nStt        starting position of the token
313cdf0e10cSrcweir 
314cdf0e10cSrcweir        @return   the string representation of the token
315cdf0e10cSrcweir     */
316cdf0e10cSrcweir     SW_DLLPRIVATE String SearchNextToken( const String & sPattern,
317cdf0e10cSrcweir 										  xub_StrLen nStt ) const;
318cdf0e10cSrcweir 
319cdf0e10cSrcweir     /**
320cdf0e10cSrcweir        Returns the type of a token.
321cdf0e10cSrcweir 
322cdf0e10cSrcweir        @param sToken     the string representation of the token
323cdf0e10cSrcweir        @param pTokenLen  return parameter the length of the head of the token
324cdf0e10cSrcweir 
325cdf0e10cSrcweir        If pTokenLen is non-NULL the length of the token's head is
326cdf0e10cSrcweir        written to *pTokenLen
327cdf0e10cSrcweir 
328cdf0e10cSrcweir        @return the type of the token
329cdf0e10cSrcweir     */
330cdf0e10cSrcweir     SW_DLLPRIVATE FormTokenType GetTokenType(const String & sToken,
331cdf0e10cSrcweir 											 xub_StrLen * pTokenLen) const;
332cdf0e10cSrcweir 
333cdf0e10cSrcweir public:
334cdf0e10cSrcweir     /**
335cdf0e10cSrcweir        contructor
336cdf0e10cSrcweir 
337cdf0e10cSrcweir        @param rTokens       vector of tokens
338cdf0e10cSrcweir     */
SwFormTokensHelper(const SwFormTokens & rTokens)339cdf0e10cSrcweir     SwFormTokensHelper(const SwFormTokens & rTokens) : aTokens(rTokens) {}
340cdf0e10cSrcweir 
341cdf0e10cSrcweir     /**
342cdf0e10cSrcweir        constructor
343cdf0e10cSrcweir 
344cdf0e10cSrcweir        @param rStr   string representation of the tokens
345cdf0e10cSrcweir     */
346cdf0e10cSrcweir     SwFormTokensHelper(const String & rStr);
347cdf0e10cSrcweir 
348cdf0e10cSrcweir     /**
349cdf0e10cSrcweir        Returns vector of tokens.
350cdf0e10cSrcweir 
351cdf0e10cSrcweir        @return vector of tokens
352cdf0e10cSrcweir     */
GetTokens() const353cdf0e10cSrcweir     const SwFormTokens & GetTokens() const { return aTokens; }
354cdf0e10cSrcweir };
355cdf0e10cSrcweir // <- #i21237#
356cdf0e10cSrcweir 
357cdf0e10cSrcweir class SW_DLLPUBLIC SwForm
358cdf0e10cSrcweir {
359cdf0e10cSrcweir 	SwFormTokens	aPattern[ AUTH_TYPE_END + 1 ]; // #i21237#
360cdf0e10cSrcweir 	String	aTemplate[ AUTH_TYPE_END + 1 ];
361cdf0e10cSrcweir 
362cdf0e10cSrcweir     TOXTypes    eType;
363cdf0e10cSrcweir     sal_uInt16      nFormMaxLevel;
364cdf0e10cSrcweir 
365cdf0e10cSrcweir 	//sal_uInt16	nFirstTabPos; -> Value in tab token
366cdf0e10cSrcweir //	sal_Bool 	bHasFirstTabPos : 1;
367cdf0e10cSrcweir 	sal_Bool 	bGenerateTabPos : 1;
368cdf0e10cSrcweir 	sal_Bool 	bIsRelTabPos : 1;
369cdf0e10cSrcweir 	sal_Bool	bCommaSeparated : 1;
370cdf0e10cSrcweir 
371cdf0e10cSrcweir public:
372cdf0e10cSrcweir     SwForm( TOXTypes eTOXType = TOX_CONTENT );
373cdf0e10cSrcweir 	SwForm( const SwForm& rForm );
374cdf0e10cSrcweir 
375cdf0e10cSrcweir 	SwForm&	operator=( const SwForm& rForm );
376cdf0e10cSrcweir 
377cdf0e10cSrcweir 	inline void	SetTemplate(sal_uInt16 nLevel, const String& rName);
378cdf0e10cSrcweir 	inline const String&	GetTemplate(sal_uInt16 nLevel) const;
379cdf0e10cSrcweir 
380cdf0e10cSrcweir     // #i21237#
381cdf0e10cSrcweir 	void	SetPattern(sal_uInt16 nLevel, const SwFormTokens& rName);
382cdf0e10cSrcweir 	void	SetPattern(sal_uInt16 nLevel, const String& rStr);
383cdf0e10cSrcweir 	const SwFormTokens&	GetPattern(sal_uInt16 nLevel) const;
384cdf0e10cSrcweir 
385cdf0e10cSrcweir 	// fill tab stop positions from template to pattern
386cdf0e10cSrcweir     // #i21237#
387cdf0e10cSrcweir 	void					AdjustTabStops(SwDoc& rDoc,
388cdf0e10cSrcweir                                            sal_Bool bInsertNewTabStops = sal_False);
389cdf0e10cSrcweir 
390cdf0e10cSrcweir     inline TOXTypes GetTOXType() const;
391cdf0e10cSrcweir 	inline sal_uInt16	GetFormMax() const;
392cdf0e10cSrcweir 
IsRelTabPos() const393cdf0e10cSrcweir     sal_Bool IsRelTabPos() const    {   return bIsRelTabPos; }
SetRelTabPos(sal_Bool b)394cdf0e10cSrcweir 	void SetRelTabPos( sal_Bool b ) { 	bIsRelTabPos = b;		}
395cdf0e10cSrcweir 
IsCommaSeparated() const396cdf0e10cSrcweir 	sal_Bool IsCommaSeparated() const 		{ return bCommaSeparated;}
SetCommaSeparated(sal_Bool b)397cdf0e10cSrcweir 	void SetCommaSeparated( sal_Bool b)		{ bCommaSeparated = b;}
398cdf0e10cSrcweir 
399cdf0e10cSrcweir     static sal_uInt16 GetFormMaxLevel( TOXTypes eType );
400cdf0e10cSrcweir 
401cdf0e10cSrcweir 	static const sal_Char*	aFormEntry;				// <E>
402cdf0e10cSrcweir     static sal_uInt8 nFormEntryLen;                      // 3 characters
403cdf0e10cSrcweir 	static const sal_Char*	aFormTab;				// <T>
404cdf0e10cSrcweir     static sal_uInt8 nFormTabLen;                        // 3 characters
405cdf0e10cSrcweir 	static const sal_Char*	aFormPageNums;			// <P>
406cdf0e10cSrcweir     static sal_uInt8 nFormPageNumsLen;                   // 3 characters
407cdf0e10cSrcweir 	static const sal_Char* aFormLinkStt;			// <LS>
408cdf0e10cSrcweir     static sal_uInt8 nFormLinkSttLen;                    // 4 characters
409cdf0e10cSrcweir 	static const sal_Char* aFormLinkEnd;			// <LE>
410cdf0e10cSrcweir     static sal_uInt8 nFormLinkEndLen;                    // 4 characters
411cdf0e10cSrcweir 	static const sal_Char*	aFormEntryNum;			// <E#>
412cdf0e10cSrcweir     static sal_uInt8 nFormEntryNumLen;                   // 4 characters
413cdf0e10cSrcweir 	static const sal_Char*	aFormEntryTxt;			// <ET>
414cdf0e10cSrcweir     static sal_uInt8 nFormEntryTxtLen;                   // 4 characters
415cdf0e10cSrcweir 	static const sal_Char*	aFormChapterMark;		// <C>
416cdf0e10cSrcweir     static sal_uInt8 nFormChapterMarkLen;                // 3 characters
417cdf0e10cSrcweir 	static const sal_Char*	aFormText;				// <TX>
418cdf0e10cSrcweir     static sal_uInt8 nFormTextLen;                       // 4 characters
419cdf0e10cSrcweir 	static const sal_Char*	aFormAuth;				// <Axx> xx - decimal enum value
420cdf0e10cSrcweir     static sal_uInt8 nFormAuthLen;                       // 3 characters
421cdf0e10cSrcweir };
422cdf0e10cSrcweir 
423cdf0e10cSrcweir /*--------------------------------------------------------------------
424cdf0e10cSrcweir      Description: Content to create indexes of
425cdf0e10cSrcweir  --------------------------------------------------------------------*/
426cdf0e10cSrcweir 
427cdf0e10cSrcweir typedef sal_uInt16 SwTOXElement;
428cdf0e10cSrcweir namespace nsSwTOXElement
429cdf0e10cSrcweir {
430cdf0e10cSrcweir     const SwTOXElement TOX_MARK             = 1;
431cdf0e10cSrcweir     const SwTOXElement TOX_OUTLINELEVEL     = 2;
432cdf0e10cSrcweir     const SwTOXElement TOX_TEMPLATE         = 4;
433cdf0e10cSrcweir     const SwTOXElement TOX_OLE              = 8;
434cdf0e10cSrcweir     const SwTOXElement TOX_TABLE            = 16;
435cdf0e10cSrcweir     const SwTOXElement TOX_GRAPHIC          = 32;
436cdf0e10cSrcweir     const SwTOXElement TOX_FRAME            = 64;
437cdf0e10cSrcweir     const SwTOXElement TOX_SEQUENCE         = 128;
438cdf0e10cSrcweir }
439cdf0e10cSrcweir 
440cdf0e10cSrcweir typedef sal_uInt16 SwTOIOptions;
441cdf0e10cSrcweir namespace nsSwTOIOptions
442cdf0e10cSrcweir {
443cdf0e10cSrcweir     const SwTOIOptions TOI_SAME_ENTRY       = 1;
444cdf0e10cSrcweir     const SwTOIOptions TOI_FF               = 2;
445cdf0e10cSrcweir     const SwTOIOptions TOI_CASE_SENSITIVE   = 4;
446cdf0e10cSrcweir     const SwTOIOptions TOI_KEY_AS_ENTRY     = 8;
447cdf0e10cSrcweir     const SwTOIOptions TOI_ALPHA_DELIMITTER = 16;
448cdf0e10cSrcweir     const SwTOIOptions TOI_DASH             = 32;
449cdf0e10cSrcweir     const SwTOIOptions TOI_INITIAL_CAPS     = 64;
450cdf0e10cSrcweir }
451cdf0e10cSrcweir 
452cdf0e10cSrcweir //which part of the caption is to be displayed
453cdf0e10cSrcweir enum SwCaptionDisplay
454cdf0e10cSrcweir {
455cdf0e10cSrcweir 	CAPTION_COMPLETE,
456cdf0e10cSrcweir 	CAPTION_NUMBER,
457cdf0e10cSrcweir 	CAPTION_TEXT
458cdf0e10cSrcweir };
459cdf0e10cSrcweir 
460cdf0e10cSrcweir typedef sal_uInt16 SwTOOElements;
461cdf0e10cSrcweir namespace nsSwTOOElements
462cdf0e10cSrcweir {
463cdf0e10cSrcweir     const SwTOOElements TOO_MATH            = 0x01;
464cdf0e10cSrcweir     const SwTOOElements TOO_CHART           = 0x02;
465cdf0e10cSrcweir     const SwTOOElements TOO_CALC            = 0x08;
466cdf0e10cSrcweir     const SwTOOElements TOO_DRAW_IMPRESS    = 0x10;
467cdf0e10cSrcweir //  const SwTOOElements TOO_IMPRESS         = 0x20;
468cdf0e10cSrcweir     const SwTOOElements TOO_OTHER           = 0x80;
469cdf0e10cSrcweir }
470cdf0e10cSrcweir 
471cdf0e10cSrcweir #define TOX_STYLE_DELIMITER ((sal_Unicode)0x01)		//JP 19.07.00: use a control char
472cdf0e10cSrcweir 
473cdf0e10cSrcweir /*--------------------------------------------------------------------
474cdf0e10cSrcweir      Description:  Class for all indexes
475cdf0e10cSrcweir  --------------------------------------------------------------------*/
476cdf0e10cSrcweir 
477cdf0e10cSrcweir class SW_DLLPUBLIC SwTOXBase : public SwClient
478cdf0e10cSrcweir {
479cdf0e10cSrcweir     SwForm      aForm;              // description of the lines
480cdf0e10cSrcweir 	String		aName; 				// unique name
481cdf0e10cSrcweir     String      aTitle;             // title
482cdf0e10cSrcweir 
483cdf0e10cSrcweir 	String 		sMainEntryCharStyle; // name of the character style applied to main index entries
484cdf0e10cSrcweir 
485cdf0e10cSrcweir 	String		aStyleNames[MAXLEVEL]; // (additional) style names TOX_CONTENT, TOX_USER
486cdf0e10cSrcweir 	String 		sSequenceName;		// FieldTypeName of a caption sequence
487cdf0e10cSrcweir 
488cdf0e10cSrcweir     LanguageType    eLanguage;
489cdf0e10cSrcweir     String          sSortAlgorithm;
490cdf0e10cSrcweir 
491cdf0e10cSrcweir     union {
492cdf0e10cSrcweir         sal_uInt16      nLevel;             // consider outline levels
493cdf0e10cSrcweir         sal_uInt16      nOptions;           // options of alphabetical index
494cdf0e10cSrcweir 	} aData;
495cdf0e10cSrcweir 
496cdf0e10cSrcweir     sal_uInt16      nCreateType;        // sources to create the index from
497cdf0e10cSrcweir 	sal_uInt16		nOLEOptions;		// OLE sources
498cdf0e10cSrcweir 	SwCaptionDisplay eCaptionDisplay;	//
499cdf0e10cSrcweir 	sal_Bool 		bProtected : 1;			// index protected ?
500cdf0e10cSrcweir 	sal_Bool		bFromChapter : 1; 		// create from chapter or document
501cdf0e10cSrcweir 	sal_Bool 		bFromObjectNames : 1; 	// create a table or object index
502cdf0e10cSrcweir 									// from the names rather than the caption
503cdf0e10cSrcweir 	sal_Bool		bLevelFromChapter : 1; // User index: get the level from the source chapter
504*f66c5aafSOliver-Rainer Wittmann 
505*f66c5aafSOliver-Rainer Wittmann protected:
506*f66c5aafSOliver-Rainer Wittmann     // Add a data member, for record the TOC field expression of MS Word binary format
507*f66c5aafSOliver-Rainer Wittmann     // For keeping fedality and may giving a better exporting performance
508*f66c5aafSOliver-Rainer Wittmann     String maMSTOCExpression;
509*f66c5aafSOliver-Rainer Wittmann     sal_Bool mbKeepExpression;
510*f66c5aafSOliver-Rainer Wittmann 
511cdf0e10cSrcweir public:
512cdf0e10cSrcweir 	SwTOXBase( const SwTOXType* pTyp, const SwForm& rForm,
513cdf0e10cSrcweir 			   sal_uInt16 nCreaType, const String& rTitle );
514cdf0e10cSrcweir 	SwTOXBase( const SwTOXBase& rCopy, SwDoc* pDoc = 0 );
515cdf0e10cSrcweir 	virtual ~SwTOXBase();
516cdf0e10cSrcweir 
517cdf0e10cSrcweir 	virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const;
518cdf0e10cSrcweir 
519cdf0e10cSrcweir 	// a kind of CopyCtor - check if the TOXBase is at TOXType of the doc.
520cdf0e10cSrcweir 	// If not, so create it an copy all other used things. The return is this
521cdf0e10cSrcweir 	SwTOXBase& CopyTOXBase( SwDoc*, const SwTOXBase& );
522cdf0e10cSrcweir 
523cdf0e10cSrcweir 	const SwTOXType*	GetTOXType() const;	//
524cdf0e10cSrcweir 
525cdf0e10cSrcweir     sal_uInt16              GetCreateType() const;      // creation types
526cdf0e10cSrcweir 
GetTOXName() const527cdf0e10cSrcweir 	const String&		GetTOXName() const {return aName;}
SetTOXName(const String & rSet)528cdf0e10cSrcweir 	void				SetTOXName(const String& rSet) {aName = rSet;}
529cdf0e10cSrcweir 
530*f66c5aafSOliver-Rainer Wittmann     // for record the TOC field expression of MS Word binary format
GetMSTOCExpression() const531*f66c5aafSOliver-Rainer Wittmann     const String&		GetMSTOCExpression() const{return maMSTOCExpression;}
SetMSTOCExpression(const String & rExp)532*f66c5aafSOliver-Rainer Wittmann     void				SetMSTOCExpression(const String& rExp) {maMSTOCExpression = rExp;}
EnableKeepExpression()533*f66c5aafSOliver-Rainer Wittmann     void				EnableKeepExpression() {mbKeepExpression = sal_True;}
DisableKeepExpression()534*f66c5aafSOliver-Rainer Wittmann     void				DisableKeepExpression() {mbKeepExpression = sal_False;}
535*f66c5aafSOliver-Rainer Wittmann 
536cdf0e10cSrcweir     const String&       GetTitle() const;           // Title
537cdf0e10cSrcweir     const String&       GetTypeName() const;        // Name
538cdf0e10cSrcweir     const SwForm&       GetTOXForm() const;         // description of the lines
539cdf0e10cSrcweir 
540cdf0e10cSrcweir 	void 				SetCreate(sal_uInt16);
541cdf0e10cSrcweir 	void				SetTitle(const String& rTitle);
542cdf0e10cSrcweir 	void				SetTOXForm(const SwForm& rForm);
543cdf0e10cSrcweir 
544cdf0e10cSrcweir 	TOXTypes			GetType() const;
545cdf0e10cSrcweir 
GetMainEntryCharStyle() const546cdf0e10cSrcweir 	const String&		GetMainEntryCharStyle() const {return sMainEntryCharStyle;}
SetMainEntryCharStyle(const String & rSet)547cdf0e10cSrcweir 	void				SetMainEntryCharStyle(const String& rSet)  {sMainEntryCharStyle = rSet;}
548cdf0e10cSrcweir 
549cdf0e10cSrcweir     // content index only
550cdf0e10cSrcweir     inline void             SetLevel(sal_uInt16);                   // consider outline level
551cdf0e10cSrcweir 	inline sal_uInt16	  		GetLevel() const;
552cdf0e10cSrcweir 
553cdf0e10cSrcweir     // alphabetical index only
554cdf0e10cSrcweir     inline sal_uInt16           GetOptions() const;                 // alphabetical index options
555cdf0e10cSrcweir 	inline void   			SetOptions(sal_uInt16 nOpt);
556cdf0e10cSrcweir 
557cdf0e10cSrcweir 	// index of objects
GetOLEOptions() const558cdf0e10cSrcweir 	sal_uInt16 		GetOLEOptions() const {return nOLEOptions;}
SetOLEOptions(sal_uInt16 nOpt)559cdf0e10cSrcweir 	void   		SetOLEOptions(sal_uInt16 nOpt) {nOLEOptions = nOpt;}
560cdf0e10cSrcweir 
561cdf0e10cSrcweir 	// index of objects
562cdf0e10cSrcweir 
563cdf0e10cSrcweir     // user defined index only
564cdf0e10cSrcweir 	inline void				SetTemplateName(const String& rName); // Absatzlayout beachten
565cdf0e10cSrcweir 
GetStyleNames(sal_uInt16 nLevel) const566cdf0e10cSrcweir 	const String&			GetStyleNames(sal_uInt16 nLevel) const
567cdf0e10cSrcweir 								{
568cdf0e10cSrcweir 								DBG_ASSERT( nLevel < MAXLEVEL, "Which level?");
569cdf0e10cSrcweir 								return aStyleNames[nLevel];
570cdf0e10cSrcweir 								}
SetStyleNames(const String & rSet,sal_uInt16 nLevel)571cdf0e10cSrcweir 	void					SetStyleNames(const String& rSet, sal_uInt16 nLevel)
572cdf0e10cSrcweir 								{
573cdf0e10cSrcweir 								DBG_ASSERT( nLevel < MAXLEVEL, "Which level?");
574cdf0e10cSrcweir 								aStyleNames[nLevel] = rSet;
575cdf0e10cSrcweir 								}
IsFromChapter() const576cdf0e10cSrcweir 	sal_Bool					IsFromChapter() const { return bFromChapter;}
SetFromChapter(sal_Bool bSet)577cdf0e10cSrcweir 	void					SetFromChapter(sal_Bool bSet) { bFromChapter = bSet;}
578cdf0e10cSrcweir 
IsFromObjectNames() const579cdf0e10cSrcweir 	sal_Bool					IsFromObjectNames() const {return bFromObjectNames;}
SetFromObjectNames(sal_Bool bSet)580cdf0e10cSrcweir 	void					SetFromObjectNames(sal_Bool bSet) {bFromObjectNames = bSet;}
581cdf0e10cSrcweir 
IsLevelFromChapter() const582cdf0e10cSrcweir 	sal_Bool					IsLevelFromChapter() const {return bLevelFromChapter;}
SetLevelFromChapter(sal_Bool bSet)583cdf0e10cSrcweir 	void					SetLevelFromChapter(sal_Bool bSet) {bLevelFromChapter = bSet;}
584cdf0e10cSrcweir 
IsProtected() const585cdf0e10cSrcweir 	sal_Bool					IsProtected() const { return bProtected; }
SetProtected(sal_Bool bSet)586cdf0e10cSrcweir 	void					SetProtected(sal_Bool bSet) { bProtected = bSet; }
587cdf0e10cSrcweir 
GetSequenceName() const588cdf0e10cSrcweir 	const String&			GetSequenceName() const {return sSequenceName;}
SetSequenceName(const String & rSet)589cdf0e10cSrcweir 	void					SetSequenceName(const String& rSet) {sSequenceName = rSet;}
590cdf0e10cSrcweir 
GetCaptionDisplay() const591cdf0e10cSrcweir 	SwCaptionDisplay		GetCaptionDisplay() const { return eCaptionDisplay;}
SetCaptionDisplay(SwCaptionDisplay eSet)592cdf0e10cSrcweir 	void					SetCaptionDisplay(SwCaptionDisplay eSet) {eCaptionDisplay = eSet;}
593cdf0e10cSrcweir 
594cdf0e10cSrcweir 	sal_Bool 					IsTOXBaseInReadonly() const;
595cdf0e10cSrcweir 
596cdf0e10cSrcweir 	const SfxItemSet*		GetAttrSet() const;
597cdf0e10cSrcweir 	void 					SetAttrSet( const SfxItemSet& );
598cdf0e10cSrcweir 
GetLanguage() const599cdf0e10cSrcweir     LanguageType    GetLanguage() const {return eLanguage;}
SetLanguage(LanguageType nLang)600cdf0e10cSrcweir     void            SetLanguage(LanguageType nLang)  {eLanguage = nLang;}
601cdf0e10cSrcweir 
GetSortAlgorithm() const602cdf0e10cSrcweir     const String&   GetSortAlgorithm()const {return sSortAlgorithm;}
SetSortAlgorithm(const String & rSet)603cdf0e10cSrcweir     void            SetSortAlgorithm(const String& rSet) {sSortAlgorithm = rSet;}
604cdf0e10cSrcweir     // #i21237#
605cdf0e10cSrcweir     void AdjustTabStops(SwDoc & rDoc, sal_Bool bDefaultRightTabStop);
606cdf0e10cSrcweir     SwTOXBase& 			operator=(const SwTOXBase& rSource);
607cdf0e10cSrcweir     void RegisterToTOXType( SwTOXType& rMark );
608cdf0e10cSrcweir };
609cdf0e10cSrcweir 
610cdf0e10cSrcweir 
611cdf0e10cSrcweir /*--------------------------------------------------------------------
612cdf0e10cSrcweir      Description:  Inlines
613cdf0e10cSrcweir  --------------------------------------------------------------------*/
614cdf0e10cSrcweir 
615cdf0e10cSrcweir //
616cdf0e10cSrcweir //SwTOXMark
617cdf0e10cSrcweir //
GetAlternativeText() const618cdf0e10cSrcweir inline const String& SwTOXMark::GetAlternativeText() const
619cdf0e10cSrcweir 	{	return aAltText;	}
620cdf0e10cSrcweir 
GetTOXType() const621cdf0e10cSrcweir inline const SwTOXType* SwTOXMark::GetTOXType() const
622cdf0e10cSrcweir 	{ return (SwTOXType*)GetRegisteredIn(); }
623cdf0e10cSrcweir 
IsAlternativeText() const624cdf0e10cSrcweir inline sal_Bool SwTOXMark::IsAlternativeText() const
625cdf0e10cSrcweir 	{ return aAltText.Len() > 0; }
626cdf0e10cSrcweir 
SetAlternativeText(const String & rAlt)627cdf0e10cSrcweir inline void SwTOXMark::SetAlternativeText(const String& rAlt)
628cdf0e10cSrcweir {
629cdf0e10cSrcweir 	aAltText = rAlt;
630cdf0e10cSrcweir }
631cdf0e10cSrcweir 
SetLevel(sal_uInt16 nLvl)632cdf0e10cSrcweir inline void SwTOXMark::SetLevel( sal_uInt16 nLvl )
633cdf0e10cSrcweir {
634cdf0e10cSrcweir 	ASSERT( !GetTOXType() || GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
635cdf0e10cSrcweir 	nLevel = nLvl;
636cdf0e10cSrcweir }
637cdf0e10cSrcweir 
SetPrimaryKey(const String & rKey)638cdf0e10cSrcweir inline void SwTOXMark::SetPrimaryKey( const String& rKey )
639cdf0e10cSrcweir {
640cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
641cdf0e10cSrcweir 	aPrimaryKey = rKey;
642cdf0e10cSrcweir }
643cdf0e10cSrcweir 
SetSecondaryKey(const String & rKey)644cdf0e10cSrcweir inline void SwTOXMark::SetSecondaryKey( const String& rKey )
645cdf0e10cSrcweir {
646cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
647cdf0e10cSrcweir 	aSecondaryKey = rKey;
648cdf0e10cSrcweir }
649cdf0e10cSrcweir 
SetTextReading(const String & rTxt)650cdf0e10cSrcweir inline void SwTOXMark::SetTextReading( const String& rTxt )
651cdf0e10cSrcweir {
652cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
653cdf0e10cSrcweir     aTextReading = rTxt;
654cdf0e10cSrcweir }
655cdf0e10cSrcweir 
SetPrimaryKeyReading(const String & rKey)656cdf0e10cSrcweir inline void SwTOXMark::SetPrimaryKeyReading( const String& rKey )
657cdf0e10cSrcweir {
658cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
659cdf0e10cSrcweir     aPrimaryKeyReading = rKey;
660cdf0e10cSrcweir }
661cdf0e10cSrcweir 
SetSecondaryKeyReading(const String & rKey)662cdf0e10cSrcweir inline void SwTOXMark::SetSecondaryKeyReading( const String& rKey )
663cdf0e10cSrcweir {
664cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
665cdf0e10cSrcweir     aSecondaryKeyReading = rKey;
666cdf0e10cSrcweir }
667cdf0e10cSrcweir 
GetLevel() const668cdf0e10cSrcweir inline sal_uInt16 SwTOXMark::GetLevel() const
669cdf0e10cSrcweir {
670cdf0e10cSrcweir 	ASSERT( !GetTOXType() || GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
671cdf0e10cSrcweir 	return nLevel;
672cdf0e10cSrcweir }
673cdf0e10cSrcweir 
GetPrimaryKey() const674cdf0e10cSrcweir inline const String& SwTOXMark::GetPrimaryKey() const
675cdf0e10cSrcweir {
676cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
677cdf0e10cSrcweir 	return aPrimaryKey;
678cdf0e10cSrcweir }
679cdf0e10cSrcweir 
GetSecondaryKey() const680cdf0e10cSrcweir inline const String& SwTOXMark::GetSecondaryKey() const
681cdf0e10cSrcweir {
682cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
683cdf0e10cSrcweir 	return aSecondaryKey;
684cdf0e10cSrcweir }
685cdf0e10cSrcweir 
GetTextReading() const686cdf0e10cSrcweir inline const String& SwTOXMark::GetTextReading() const
687cdf0e10cSrcweir {
688cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
689cdf0e10cSrcweir     return aTextReading;
690cdf0e10cSrcweir }
691cdf0e10cSrcweir 
GetPrimaryKeyReading() const692cdf0e10cSrcweir inline const String& SwTOXMark::GetPrimaryKeyReading() const
693cdf0e10cSrcweir {
694cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
695cdf0e10cSrcweir     return aPrimaryKeyReading;
696cdf0e10cSrcweir }
697cdf0e10cSrcweir 
GetSecondaryKeyReading() const698cdf0e10cSrcweir inline const String& SwTOXMark::GetSecondaryKeyReading() const
699cdf0e10cSrcweir {
700cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
701cdf0e10cSrcweir     return aSecondaryKeyReading;
702cdf0e10cSrcweir }
703cdf0e10cSrcweir 
704cdf0e10cSrcweir //
705cdf0e10cSrcweir //SwForm
706cdf0e10cSrcweir //
SetTemplate(sal_uInt16 nLevel,const String & rTemplate)707cdf0e10cSrcweir inline void SwForm::SetTemplate(sal_uInt16 nLevel, const String& rTemplate)
708cdf0e10cSrcweir {
709cdf0e10cSrcweir 	ASSERT(nLevel < GetFormMax(), "Index >= FORM_MAX");
710cdf0e10cSrcweir 	aTemplate[nLevel] = rTemplate;
711cdf0e10cSrcweir }
712cdf0e10cSrcweir 
GetTemplate(sal_uInt16 nLevel) const713cdf0e10cSrcweir inline const String& SwForm::GetTemplate(sal_uInt16 nLevel) const
714cdf0e10cSrcweir {
715cdf0e10cSrcweir 	ASSERT(nLevel < GetFormMax(), "Index >= FORM_MAX");
716cdf0e10cSrcweir 	return aTemplate[nLevel];
717cdf0e10cSrcweir }
718cdf0e10cSrcweir 
GetTOXType() const719cdf0e10cSrcweir inline TOXTypes SwForm::GetTOXType() const
720cdf0e10cSrcweir {
721cdf0e10cSrcweir     return eType;
722cdf0e10cSrcweir }
723cdf0e10cSrcweir 
GetFormMax() const724cdf0e10cSrcweir inline sal_uInt16 SwForm::GetFormMax() const
725cdf0e10cSrcweir {
726cdf0e10cSrcweir 	return nFormMaxLevel;
727cdf0e10cSrcweir }
728cdf0e10cSrcweir 
729cdf0e10cSrcweir 
730cdf0e10cSrcweir //
731cdf0e10cSrcweir //SwTOXType
732cdf0e10cSrcweir //
GetTypeName() const733cdf0e10cSrcweir inline const String& SwTOXType::GetTypeName() const
734cdf0e10cSrcweir 	{	return aName;	}
735cdf0e10cSrcweir 
GetType() const736cdf0e10cSrcweir inline TOXTypes SwTOXType::GetType() const
737cdf0e10cSrcweir 	{	return eType;	}
738cdf0e10cSrcweir 
739cdf0e10cSrcweir //
740cdf0e10cSrcweir // SwTOXBase
741cdf0e10cSrcweir //
GetTOXType() const742cdf0e10cSrcweir inline const SwTOXType* SwTOXBase::GetTOXType() const
743cdf0e10cSrcweir 	{ return (SwTOXType*)GetRegisteredIn(); }
744cdf0e10cSrcweir 
GetCreateType() const745cdf0e10cSrcweir inline sal_uInt16 SwTOXBase::GetCreateType() const
746cdf0e10cSrcweir 	{ return nCreateType; }
747cdf0e10cSrcweir 
GetTitle() const748cdf0e10cSrcweir inline const String& SwTOXBase::GetTitle() const
749cdf0e10cSrcweir 	{ return aTitle; }
750cdf0e10cSrcweir 
GetTypeName() const751cdf0e10cSrcweir inline const String& SwTOXBase::GetTypeName() const
752cdf0e10cSrcweir 	{ return GetTOXType()->GetTypeName();  }
753cdf0e10cSrcweir 
GetTOXForm() const754cdf0e10cSrcweir inline const SwForm& SwTOXBase::GetTOXForm() const
755cdf0e10cSrcweir 	{ return aForm;	}
756cdf0e10cSrcweir 
AdjustTabStops(SwDoc & rDoc,sal_Bool bDefaultRightTabStop)757cdf0e10cSrcweir inline void SwTOXBase::AdjustTabStops(SwDoc & rDoc, sal_Bool bDefaultRightTabStop)
758cdf0e10cSrcweir {
759cdf0e10cSrcweir     aForm.AdjustTabStops(rDoc, bDefaultRightTabStop);
760cdf0e10cSrcweir }
761cdf0e10cSrcweir 
SetCreate(sal_uInt16 nCreate)762cdf0e10cSrcweir inline void SwTOXBase::SetCreate(sal_uInt16 nCreate)
763cdf0e10cSrcweir 	{ nCreateType = nCreate; }
764cdf0e10cSrcweir 
SetTOXForm(const SwForm & rForm)765cdf0e10cSrcweir inline void	SwTOXBase::SetTOXForm(const SwForm& rForm)
766cdf0e10cSrcweir 	{  aForm = rForm; }
767cdf0e10cSrcweir 
GetType() const768cdf0e10cSrcweir inline TOXTypes SwTOXBase::GetType() const
769cdf0e10cSrcweir 	{ return GetTOXType()->GetType(); }
770cdf0e10cSrcweir 
SetLevel(sal_uInt16 nLev)771cdf0e10cSrcweir inline void SwTOXBase::SetLevel(sal_uInt16 nLev)
772cdf0e10cSrcweir {
773cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
774cdf0e10cSrcweir 	aData.nLevel = nLev;
775cdf0e10cSrcweir }
776cdf0e10cSrcweir 
GetLevel() const777cdf0e10cSrcweir inline sal_uInt16 SwTOXBase::GetLevel() const
778cdf0e10cSrcweir {
779cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
780cdf0e10cSrcweir 	return aData.nLevel;
781cdf0e10cSrcweir }
782cdf0e10cSrcweir 
SetTemplateName(const String & rName)783cdf0e10cSrcweir inline void SwTOXBase::SetTemplateName(const String& rName)
784cdf0e10cSrcweir {
785cdf0e10cSrcweir //	ASSERT(GetTOXType()->GetType() == TOX_USER, "Falscher Feldtyp");
786cdf0e10cSrcweir //	ASSERT(aData.pTemplateName, "pTemplateName == 0");
787cdf0e10cSrcweir //	(*aData.pTemplateName) = rName;
788cdf0e10cSrcweir 	DBG_WARNING("SwTOXBase::SetTemplateName obsolete");
789cdf0e10cSrcweir 	aStyleNames[0] = rName;
790cdf0e10cSrcweir 
791cdf0e10cSrcweir }
792cdf0e10cSrcweir 
GetOptions() const793cdf0e10cSrcweir inline sal_uInt16 SwTOXBase::GetOptions() const
794cdf0e10cSrcweir {
795cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
796cdf0e10cSrcweir 	return aData.nOptions;
797cdf0e10cSrcweir }
798cdf0e10cSrcweir 
SetOptions(sal_uInt16 nOpt)799cdf0e10cSrcweir inline void SwTOXBase::SetOptions(sal_uInt16 nOpt)
800cdf0e10cSrcweir {
801cdf0e10cSrcweir 	ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
802cdf0e10cSrcweir 	aData.nOptions = nOpt;
803cdf0e10cSrcweir }
804cdf0e10cSrcweir 
805cdf0e10cSrcweir 
806cdf0e10cSrcweir #endif  // SW_TOX_HXX
807