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