Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #ifndef INCLUDED_SW_INC_TOX_HXX
20 : #define INCLUDED_SW_INC_TOX_HXX
21 :
22 : #include <cppuhelper/weakref.hxx>
23 :
24 : #include <i18nlangtag/lang.h>
25 : #include <svl/poolitem.hxx>
26 :
27 : #include <editeng/svxenum.hxx>
28 : #include <swtypes.hxx>
29 : #include <toxe.hxx>
30 : #include <calbck.hxx>
31 :
32 : #include <vector>
33 :
34 : namespace com { namespace sun { namespace star {
35 : namespace text { class XDocumentIndexMark; }
36 : } } }
37 :
38 : class SwTOXType;
39 : class SwTOXMark;
40 : class SwTxtTOXMark;
41 : class SwDoc;
42 :
43 : typedef std::vector<SwTOXMark*> SwTOXMarks;
44 :
45 : // Entry of content index, alphabetical index or user defined index
46 :
47 : extern const sal_Unicode C_NUM_REPL;
48 : extern const sal_Unicode C_END_PAGE_NUM;
49 : extern const OUString S_PAGE_DELI;
50 :
51 : class SW_DLLPUBLIC SwTOXMark
52 : : public SfxPoolItem
53 : , public SwModify
54 : {
55 : friend void _InitCore();
56 : friend class SwTxtTOXMark;
57 :
58 : OUString aAltText; // Text of caption is different.
59 : OUString aPrimaryKey;
60 : OUString aSecondaryKey;
61 : OUString aCitationKeyReading;
62 :
63 : // three more strings for phonetic sorting
64 : OUString aTextReading;
65 : OUString aPrimaryKeyReading;
66 : OUString aSecondaryKeyReading;
67 :
68 : SwTxtTOXMark* pTxtAttr;
69 :
70 : sal_uInt16 nLevel;
71 : OUString m_aBookmarkName;
72 : OUString m_aEntryTypeName; // stored specific entry type name for INDEX field \f
73 : bool bAutoGenerated : 1; // generated using a concordance file
74 : bool bMainEntry : 1; // main entry emphasized by character style
75 :
76 : ::com::sun::star::uno::WeakReference<
77 : ::com::sun::star::text::XDocumentIndexMark> m_wXDocumentIndexMark;
78 :
79 : SwTOXMark(); // to create the default attribute in _InitCore
80 :
81 : protected:
82 : // SwClient
83 : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ) SAL_OVERRIDE;
84 :
85 : public:
86 : TYPEINFO_OVERRIDE(); // rtti
87 :
88 : // single argument ctors shall be explicit.
89 : explicit SwTOXMark( const SwTOXType* pTyp );
90 : virtual ~SwTOXMark();
91 :
92 : SwTOXMark( const SwTOXMark& rCopy );
93 : SwTOXMark& operator=( const SwTOXMark& rCopy );
94 :
95 : // "pure virtual methods" of SfxPoolItem
96 : virtual bool operator==( const SfxPoolItem& ) const SAL_OVERRIDE;
97 : virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const SAL_OVERRIDE;
98 :
99 : void InvalidateTOXMark();
100 :
101 : OUString GetText() const;
102 :
103 : inline bool IsAlternativeText() const;
104 : inline OUString GetAlternativeText() const;
105 :
106 : inline void SetAlternativeText( const OUString& rAlt );
107 :
108 : // content or user defined index
109 : inline void SetLevel(sal_uInt16 nLevel);
110 : inline sal_uInt16 GetLevel() const;
111 : inline void SetBookmarkName( const OUString& bName);
112 : inline OUString GetBookmarkName() const;
113 : inline void SetEntryTypeName( const OUString& sName);
114 : inline OUString GetEntryTypeName() const;
115 :
116 : // for alphabetical index only
117 : inline void SetPrimaryKey(const OUString& rStr );
118 : inline void SetSecondaryKey(const OUString& rStr);
119 : inline void SetTextReading(const OUString& rStr);
120 : inline void SetPrimaryKeyReading(const OUString& rStr );
121 : inline void SetSecondaryKeyReading(const OUString& rStr);
122 : inline void SetCitationKeyReading(const OUString& rStr);
123 :
124 : inline OUString GetPrimaryKey() const;
125 : inline OUString GetSecondaryKey() const;
126 : inline OUString GetTextReading() const;
127 : inline OUString GetPrimaryKeyReading() const;
128 : inline OUString GetSecondaryKeyReading() const;
129 : inline OUString GetCitationKeyReading() const;
130 :
131 0 : bool IsAutoGenerated() const {return bAutoGenerated;}
132 0 : void SetAutoGenerated(bool bSet) {bAutoGenerated = bSet;}
133 :
134 6 : bool IsMainEntry() const {return bMainEntry;}
135 336 : void SetMainEntry(bool bSet) { bMainEntry = bSet;}
136 :
137 : inline const SwTOXType* GetTOXType() const;
138 :
139 110 : const SwTxtTOXMark* GetTxtTOXMark() const { return pTxtAttr; }
140 4 : SwTxtTOXMark* GetTxtTOXMark() { return pTxtAttr; }
141 :
142 : SAL_DLLPRIVATE ::com::sun::star::uno::WeakReference<
143 90 : ::com::sun::star::text::XDocumentIndexMark> const& GetXTOXMark() const
144 90 : { return m_wXDocumentIndexMark; }
145 64 : SAL_DLLPRIVATE void SetXTOXMark(::com::sun::star::uno::Reference<
146 : ::com::sun::star::text::XDocumentIndexMark> const& xMark)
147 64 : { m_wXDocumentIndexMark = xMark; }
148 26 : void DeRegister() { GetRegisteredInNonConst()->Remove( this ); }
149 : void RegisterToTOXType( SwTOXType& rMark );
150 : static void InsertTOXMarks( SwTOXMarks& aMarks, const SwTOXType& rType );
151 : };
152 :
153 : // index types
154 81328 : class SwTOXType : public SwModify
155 : {
156 : public:
157 : SwTOXType(TOXTypes eTyp, const OUString& aName);
158 :
159 : // @@@ public copy ctor, but no copy assignment?
160 : SwTOXType(const SwTOXType& rCopy);
161 :
162 : inline OUString GetTypeName() const;
163 : inline TOXTypes GetType() const;
164 :
165 : private:
166 : OUString aName;
167 : TOXTypes eType;
168 :
169 : // @@@ public copy ctor, but no copy assignment?
170 : SwTOXType & operator= (const SwTOXType &);
171 : };
172 :
173 : // Structure of the index lines
174 : #define FORM_TITLE 0
175 : #define FORM_ALPHA_DELIMITTER 1
176 : #define FORM_PRIMARY_KEY 2
177 : #define FORM_SECONDARY_KEY 3
178 : #define FORM_ENTRY 4
179 :
180 : /*
181 : Pattern structure
182 :
183 : <E#> - entry number <E# CharStyleName,PoolId>
184 : <ET> - entry text <ET CharStyleName,PoolId>
185 : <E> - entry text and number <E CharStyleName,PoolId>
186 : <T> - tab stop <T,,Position,Adjust>
187 : <C> - chapter info n = {0, 1, 2, 3, 4 } values of SwChapterFormat <C CharStyleName,PoolId>
188 : <TX> - text token <X CharStyleName,PoolId, TOX_STYLE_DELIMITERTextContentTOX_STYLE_DELIMITER>
189 : <#> - Page number <# CharStyleName,PoolId>
190 : <LS> - Link start <LS>
191 : <LE> - Link end <LE>
192 : <A00> - Authority entry field <A02 CharStyleName, PoolId>
193 : */
194 :
195 : // These enum values are stored and must not be changed!
196 : enum FormTokenType
197 : {
198 : TOKEN_ENTRY_NO,
199 : TOKEN_ENTRY_TEXT,
200 : TOKEN_ENTRY,
201 : TOKEN_TAB_STOP,
202 : TOKEN_TEXT,
203 : TOKEN_PAGE_NUMS,
204 : TOKEN_CHAPTER_INFO,
205 : TOKEN_LINK_START,
206 : TOKEN_LINK_END,
207 : TOKEN_AUTHORITY,
208 : TOKEN_END
209 : };
210 :
211 656420 : struct SW_DLLPUBLIC SwFormToken
212 : {
213 : OUString sText;
214 : OUString sCharStyleName;
215 : SwTwips nTabStopPosition;
216 : FormTokenType eTokenType;
217 : sal_uInt16 nPoolId;
218 : SvxTabAdjust eTabAlign;
219 : sal_uInt16 nChapterFormat; //SwChapterFormat;
220 : sal_uInt16 nOutlineLevel;//the maximum permitted outline level in numbering
221 : sal_uInt16 nAuthorityField; //enum ToxAuthorityField
222 : sal_Unicode cTabFillChar;
223 : bool bWithTab; // sal_True: do generate tab
224 : // character only the tab stop
225 : // #i21237#
226 :
227 24646 : SwFormToken(FormTokenType eType ) :
228 : nTabStopPosition(0),
229 : eTokenType(eType),
230 : nPoolId(USHRT_MAX),
231 : eTabAlign( SVX_TAB_ADJUST_LEFT ),
232 : nChapterFormat(0 /*CF_NUMBER*/),
233 : nOutlineLevel(MAXLEVEL), //default to maximum outline level
234 : nAuthorityField(0 /*AUTH_FIELD_IDENTIFIER*/),
235 : cTabFillChar(' '),
236 24646 : bWithTab(true) // #i21237#
237 24646 : {}
238 :
239 : OUString GetString() const;
240 : };
241 :
242 : struct SwFormTokenEqualToFormTokenType
243 : {
244 : FormTokenType eType;
245 :
246 0 : SwFormTokenEqualToFormTokenType(FormTokenType _eType) : eType(_eType) {}
247 0 : bool operator()(const SwFormToken & rToken)
248 : {
249 0 : return rToken.eTokenType == eType;
250 : }
251 : };
252 :
253 : /// Vector of tokens.
254 : typedef std::vector<SwFormToken> SwFormTokens;
255 :
256 : /**
257 : Helper class that converts vectors of tokens to strings and vice
258 : versa.
259 : */
260 1204 : class SW_DLLPUBLIC SwFormTokensHelper
261 : {
262 : /// the tokens
263 : SwFormTokens m_Tokens;
264 :
265 : public:
266 : /**
267 : contructor
268 :
269 : @param rTokens vector of tokens
270 : */
271 : SwFormTokensHelper(const SwFormTokens & rTokens) : m_Tokens(rTokens) {}
272 :
273 : /**
274 : constructor
275 :
276 : @param rStr string representation of the tokens
277 : */
278 : SwFormTokensHelper(const OUString & rStr);
279 :
280 : /**
281 : Returns vector of tokens.
282 :
283 : @return vector of tokens
284 : */
285 1204 : const SwFormTokens & GetTokens() const { return m_Tokens; }
286 : };
287 :
288 3372 : class SW_DLLPUBLIC SwForm
289 : {
290 : SwFormTokens aPattern[ AUTH_TYPE_END + 1 ]; // #i21237#
291 : OUString aTemplate[ AUTH_TYPE_END + 1 ];
292 :
293 : TOXTypes eType;
294 : sal_uInt16 nFormMaxLevel;
295 :
296 : bool bGenerateTabPos : 1;
297 : bool bIsRelTabPos : 1;
298 : bool bCommaSeparated : 1;
299 :
300 : public:
301 : SwForm( TOXTypes eTOXType = TOX_CONTENT );
302 : SwForm( const SwForm& rForm );
303 :
304 : SwForm& operator=( const SwForm& rForm );
305 :
306 : inline void SetTemplate(sal_uInt16 nLevel, const OUString& rName);
307 : inline OUString GetTemplate(sal_uInt16 nLevel) const;
308 :
309 : // #i21237#
310 : void SetPattern(sal_uInt16 nLevel, const SwFormTokens& rName);
311 : void SetPattern(sal_uInt16 nLevel, const OUString& rStr);
312 : const SwFormTokens& GetPattern(sal_uInt16 nLevel) const;
313 :
314 : // fill tab stop positions from template to pattern- #i21237#
315 : void AdjustTabStops( SwDoc& rDoc );
316 :
317 : inline TOXTypes GetTOXType() const;
318 : inline sal_uInt16 GetFormMax() const;
319 :
320 22 : bool IsRelTabPos() const { return bIsRelTabPos; }
321 34 : void SetRelTabPos( bool b ) { bIsRelTabPos = b; }
322 :
323 36 : bool IsCommaSeparated() const { return bCommaSeparated;}
324 4 : void SetCommaSeparated( bool b) { bCommaSeparated = b;}
325 :
326 : static sal_uInt16 GetFormMaxLevel( TOXTypes eType );
327 :
328 : static OUString GetFormEntry();
329 : static OUString GetFormTab();
330 : static OUString GetFormPageNums();
331 : static OUString GetFormLinkStt();
332 : static OUString GetFormLinkEnd();
333 : static OUString GetFormEntryNum();
334 : static OUString GetFormEntryTxt();
335 : static OUString GetFormChapterMark();
336 : static OUString GetFormText();
337 : static OUString GetFormAuth();
338 : };
339 :
340 : // Content to create indexes of
341 : typedef sal_uInt16 SwTOXElement;
342 : namespace nsSwTOXElement
343 : {
344 : const SwTOXElement TOX_MARK = 1;
345 : const SwTOXElement TOX_OUTLINELEVEL = 2;
346 : const SwTOXElement TOX_TEMPLATE = 4;
347 : const SwTOXElement TOX_OLE = 8;
348 : const SwTOXElement TOX_TABLE = 16;
349 : const SwTOXElement TOX_GRAPHIC = 32;
350 : const SwTOXElement TOX_FRAME = 64;
351 : const SwTOXElement TOX_SEQUENCE = 128;
352 : const SwTOXElement TOX_TABLEADER = 256;
353 : const SwTOXElement TOX_TAB_IN_TOC = 512;
354 : const SwTOXElement TOX_BOOKMARK = 1024;
355 : const SwTOXElement TOX_NEWLINE = 2048;
356 : const SwTOXElement TOX_PARAGRAPH_OUTLINE_LEVEL = 4096;
357 : const SwTOXElement TOX_INDEX_ENTRY_TYPE = 8192;
358 : }
359 :
360 : typedef sal_uInt16 SwTOIOptions;
361 : namespace nsSwTOIOptions
362 : {
363 : const SwTOIOptions TOI_SAME_ENTRY = 1;
364 : const SwTOIOptions TOI_FF = 2;
365 : const SwTOIOptions TOI_CASE_SENSITIVE = 4;
366 : const SwTOIOptions TOI_KEY_AS_ENTRY = 8;
367 : const SwTOIOptions TOI_ALPHA_DELIMITTER = 16;
368 : const SwTOIOptions TOI_DASH = 32;
369 : const SwTOIOptions TOI_INITIAL_CAPS = 64;
370 : }
371 :
372 : //which part of the caption is to be displayed
373 : enum SwCaptionDisplay
374 : {
375 : CAPTION_COMPLETE,
376 : CAPTION_NUMBER,
377 : CAPTION_TEXT
378 : };
379 :
380 : typedef sal_uInt16 SwTOOElements;
381 : namespace nsSwTOOElements
382 : {
383 : const SwTOOElements TOO_MATH = 0x01;
384 : const SwTOOElements TOO_CHART = 0x02;
385 : const SwTOOElements TOO_CALC = 0x08;
386 : const SwTOOElements TOO_DRAW_IMPRESS = 0x10;
387 : const SwTOOElements TOO_OTHER = 0x80;
388 : }
389 :
390 : #define TOX_STYLE_DELIMITER ((sal_Unicode)0x01)
391 :
392 : // Class for all indexes
393 : class SW_DLLPUBLIC SwTOXBase : public SwClient
394 : {
395 : SwForm aForm; // description of the lines
396 : OUString aName; // unique name
397 : OUString aTitle; // title
398 : OUString m_aBookmarkName; //Bookmark Name
399 : OUString m_aEntryTypeName; // Type name
400 :
401 : OUString sMainEntryCharStyle; // name of the character style applied to main index entries
402 :
403 : OUString aStyleNames[MAXLEVEL]; // (additional) style names TOX_CONTENT, TOX_USER
404 : OUString sSequenceName; // FieldTypeName of a caption sequence
405 :
406 : LanguageType eLanguage;
407 : OUString sSortAlgorithm;
408 :
409 : union {
410 : sal_uInt16 nLevel; // consider outline levels
411 : sal_uInt16 nOptions; // options of alphabetical index
412 : } aData;
413 :
414 : sal_uInt16 nCreateType; // sources to create the index from
415 : sal_uInt16 nOLEOptions; // OLE sources
416 : SwCaptionDisplay eCaptionDisplay;
417 : bool bProtected : 1; // index protected ?
418 : bool bFromChapter : 1; // create from chapter or document
419 : bool bFromObjectNames : 1; // create a table or object index
420 : // from the names rather than the caption
421 : bool bLevelFromChapter : 1; // User index: get the level from the source chapter
422 :
423 : protected:
424 : // Add a data member, for record the TOC field expression of MS Word binary format
425 : // For keeping fedality and may giving a better exporting performance
426 : OUString maMSTOCExpression;
427 : bool mbKeepExpression;
428 :
429 : public:
430 : SwTOXBase( const SwTOXType* pTyp, const SwForm& rForm,
431 : sal_uInt16 nCreaType, const OUString& rTitle );
432 : SwTOXBase( const SwTOXBase& rCopy, SwDoc* pDoc = 0 );
433 : virtual ~SwTOXBase();
434 :
435 : virtual bool GetInfo( SfxPoolItem& rInfo ) const SAL_OVERRIDE;
436 :
437 : // a kind of CopyCtor - check if the TOXBase is at TOXType of the doc.
438 : // If not, so create it an copy all other used things. The return is this
439 : SwTOXBase& CopyTOXBase( SwDoc*, const SwTOXBase& );
440 :
441 : const SwTOXType* GetTOXType() const;
442 :
443 : sal_uInt16 GetCreateType() const; // creation types
444 :
445 1062 : OUString GetTOXName() const {return aName;}
446 264 : void SetTOXName(const OUString& rSet) {aName = rSet;}
447 :
448 : // for record the TOC field expression of MS Word binary format
449 58 : const OUString& GetMSTOCExpression() const{return maMSTOCExpression;}
450 0 : void SetMSTOCExpression(const OUString& rExp) {maMSTOCExpression = rExp;}
451 0 : void EnableKeepExpression() {mbKeepExpression = true;}
452 0 : void DisableKeepExpression() {mbKeepExpression = false;}
453 :
454 : OUString GetTitle() const; // Title
455 : OUString GetBookmarkName() const;
456 : OUString GetTypeName() const; // Name
457 : const SwForm& GetTOXForm() const; // description of the lines
458 :
459 : void SetCreate(sal_uInt16);
460 : void SetTitle(const OUString& rTitle);
461 : void SetTOXForm(const SwForm& rForm);
462 : void SetBookmarkName(const OUString& bName);
463 :
464 : TOXTypes GetType() const;
465 :
466 6 : OUString GetMainEntryCharStyle() const {return sMainEntryCharStyle;}
467 2 : void SetMainEntryCharStyle(const OUString& rSet) {sMainEntryCharStyle = rSet;}
468 :
469 : // for record the Index field expression of MS Word
470 : OUString GetEntryTypeName() const;
471 : void SetEntryTypeName(const OUString& sName);
472 :
473 : // content index only
474 : inline void SetLevel(sal_uInt16); // consider outline level
475 : inline sal_uInt16 GetLevel() const;
476 :
477 : // alphabetical index only
478 : inline sal_uInt16 GetOptions() const; // alphabetical index options
479 : inline void SetOptions(sal_uInt16 nOpt);
480 :
481 : // index of objects
482 2480 : sal_uInt16 GetOLEOptions() const {return nOLEOptions;}
483 1474 : void SetOLEOptions(sal_uInt16 nOpt) {nOLEOptions = nOpt;}
484 :
485 : // index of objects
486 :
487 : // user defined index only
488 : inline void SetTemplateName(const OUString& rName); // Absatzlayout beachten
489 :
490 68 : OUString GetStyleNames(sal_uInt16 nLevel) const
491 : {
492 : SAL_WARN_IF( nLevel >= MAXLEVEL, "sw", "Which level?");
493 68 : return aStyleNames[nLevel];
494 : }
495 6 : void SetStyleNames(const OUString& rSet, sal_uInt16 nLevel)
496 : {
497 : SAL_WARN_IF( nLevel >= MAXLEVEL, "sw", "Which level?");
498 6 : aStyleNames[nLevel] = rSet;
499 6 : }
500 34 : bool IsFromChapter() const { return bFromChapter;}
501 36 : void SetFromChapter(bool bSet) { bFromChapter = bSet;}
502 :
503 8 : bool IsFromObjectNames() const {return bFromObjectNames;}
504 10 : void SetFromObjectNames(bool bSet) {bFromObjectNames = bSet;}
505 :
506 2 : bool IsLevelFromChapter() const {return bLevelFromChapter;}
507 4 : void SetLevelFromChapter(bool bSet) {bLevelFromChapter = bSet;}
508 :
509 254 : bool IsProtected() const { return bProtected; }
510 40 : void SetProtected(bool bSet) { bProtected = bSet; }
511 :
512 16 : OUString GetSequenceName() const {return sSequenceName;}
513 16 : void SetSequenceName(const OUString& rSet) {sSequenceName = rSet;}
514 :
515 4 : SwCaptionDisplay GetCaptionDisplay() const { return eCaptionDisplay;}
516 10 : void SetCaptionDisplay(SwCaptionDisplay eSet) {eCaptionDisplay = eSet;}
517 :
518 : bool IsTOXBaseInReadonly() const;
519 :
520 : const SfxItemSet* GetAttrSet() const;
521 : void SetAttrSet( const SfxItemSet& );
522 :
523 20 : LanguageType GetLanguage() const {return eLanguage;}
524 6 : void SetLanguage(LanguageType nLang) {eLanguage = nLang;}
525 :
526 20 : OUString GetSortAlgorithm()const {return sSortAlgorithm;}
527 6 : void SetSortAlgorithm(const OUString& rSet) {sSortAlgorithm = rSet;}
528 : // #i21237#
529 0 : void AdjustTabStops( SwDoc & rDoc )
530 : {
531 0 : aForm.AdjustTabStops( rDoc );
532 0 : }
533 :
534 : SwTOXBase& operator=(const SwTOXBase& rSource);
535 : void RegisterToTOXType( SwTOXType& rMark );
536 : };
537 :
538 : //SwTOXMark
539 :
540 776 : inline OUString SwTOXMark::GetAlternativeText() const
541 776 : { return aAltText; }
542 :
543 0 : inline OUString SwTOXMark::GetBookmarkName() const
544 0 : { return m_aBookmarkName; }
545 :
546 0 : inline OUString SwTOXMark::GetEntryTypeName() const
547 0 : { return m_aEntryTypeName; }
548 :
549 208 : inline const SwTOXType* SwTOXMark::GetTOXType() const
550 208 : { return (SwTOXType*)GetRegisteredIn(); }
551 :
552 0 : inline bool SwTOXMark::IsAlternativeText() const
553 0 : { return !aAltText.isEmpty(); }
554 :
555 308 : inline void SwTOXMark::SetAlternativeText(const OUString& rAlt)
556 : {
557 308 : aAltText = rAlt;
558 308 : }
559 :
560 0 : inline void SwTOXMark::SetBookmarkName(const OUString& bName)
561 : {
562 0 : m_aBookmarkName = bName;
563 0 : }
564 :
565 0 : inline void SwTOXMark::SetEntryTypeName(const OUString& sName)
566 : {
567 0 : m_aEntryTypeName = sName;
568 0 : }
569 0 : inline void SwTOXMark::SetLevel( sal_uInt16 nLvl )
570 : {
571 : SAL_WARN_IF( GetTOXType() && GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
572 0 : nLevel = nLvl;
573 0 : }
574 :
575 330 : inline void SwTOXMark::SetPrimaryKey( const OUString& rKey )
576 : {
577 : SAL_WARN_IF( GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
578 330 : aPrimaryKey = rKey;
579 330 : }
580 :
581 2 : inline void SwTOXMark::SetSecondaryKey( const OUString& rKey )
582 : {
583 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
584 2 : aSecondaryKey = rKey;
585 2 : }
586 :
587 0 : inline void SwTOXMark::SetTextReading( const OUString& rTxt )
588 : {
589 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
590 0 : aTextReading = rTxt;
591 0 : }
592 :
593 0 : inline void SwTOXMark::SetPrimaryKeyReading( const OUString& rKey )
594 : {
595 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
596 0 : aPrimaryKeyReading = rKey;
597 0 : }
598 :
599 0 : inline void SwTOXMark::SetCitationKeyReading( const OUString& rKey )
600 : {
601 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_CITATION, "sw", "Wrong type");
602 0 : aCitationKeyReading = rKey;
603 0 : }
604 :
605 0 : inline void SwTOXMark::SetSecondaryKeyReading( const OUString& rKey )
606 : {
607 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
608 0 : aSecondaryKeyReading = rKey;
609 0 : }
610 :
611 0 : inline sal_uInt16 SwTOXMark::GetLevel() const
612 : {
613 : SAL_WARN_IF( GetTOXType() && GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
614 0 : return nLevel;
615 : }
616 :
617 272 : inline OUString SwTOXMark::GetPrimaryKey() const
618 : {
619 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
620 272 : return aPrimaryKey;
621 : }
622 :
623 92 : inline OUString SwTOXMark::GetSecondaryKey() const
624 : {
625 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
626 92 : return aSecondaryKey;
627 : }
628 :
629 2 : inline OUString SwTOXMark::GetTextReading() const
630 : {
631 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
632 2 : return aTextReading;
633 : }
634 :
635 0 : inline OUString SwTOXMark::GetPrimaryKeyReading() const
636 : {
637 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
638 0 : return aPrimaryKeyReading;
639 : }
640 :
641 0 : inline OUString SwTOXMark::GetSecondaryKeyReading() const
642 : {
643 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
644 0 : return aSecondaryKeyReading;
645 : }
646 :
647 : inline OUString SwTOXMark::GetCitationKeyReading() const
648 : {
649 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_CITATION, "sw", "Wrong type");
650 : return aCitationKeyReading;
651 : }
652 :
653 : //SwForm
654 :
655 5102 : inline void SwForm::SetTemplate(sal_uInt16 nLevel, const OUString& rTemplate)
656 : {
657 : SAL_WARN_IF(nLevel >= GetFormMax(), "sw", "Index >= GetFormMax()");
658 5102 : aTemplate[nLevel] = rTemplate;
659 5102 : }
660 :
661 168 : inline OUString SwForm::GetTemplate(sal_uInt16 nLevel) const
662 : {
663 : SAL_WARN_IF(nLevel >= GetFormMax(), "sw", "Index >= GetFormMax()");
664 168 : return aTemplate[nLevel];
665 : }
666 :
667 0 : inline TOXTypes SwForm::GetTOXType() const
668 : {
669 0 : return eType;
670 : }
671 :
672 7116 : inline sal_uInt16 SwForm::GetFormMax() const
673 : {
674 7116 : return nFormMaxLevel;
675 : }
676 :
677 : //SwTOXType
678 :
679 940 : inline OUString SwTOXType::GetTypeName() const
680 940 : { return aName; }
681 :
682 7776 : inline TOXTypes SwTOXType::GetType() const
683 7776 : { return eType; }
684 :
685 : // SwTOXBase
686 :
687 6486 : inline const SwTOXType* SwTOXBase::GetTOXType() const
688 6486 : { return (SwTOXType*)GetRegisteredIn(); }
689 :
690 2804 : inline sal_uInt16 SwTOXBase::GetCreateType() const
691 2804 : { return nCreateType; }
692 :
693 262 : inline OUString SwTOXBase::GetTitle() const
694 262 : { return aTitle; }
695 :
696 2 : inline OUString SwTOXBase::GetBookmarkName() const
697 2 : { return m_aBookmarkName; }
698 :
699 2 : inline OUString SwTOXBase::GetEntryTypeName() const
700 2 : { return m_aEntryTypeName; }
701 :
702 0 : inline OUString SwTOXBase::GetTypeName() const
703 0 : { return GetTOXType()->GetTypeName(); }
704 :
705 7344 : inline const SwForm& SwTOXBase::GetTOXForm() const
706 7344 : { return aForm; }
707 :
708 1486 : inline void SwTOXBase::SetCreate(sal_uInt16 nCreate)
709 1486 : { nCreateType = nCreate; }
710 :
711 1310 : inline void SwTOXBase::SetTOXForm(const SwForm& rForm)
712 1310 : { aForm = rForm; }
713 :
714 1584 : inline TOXTypes SwTOXBase::GetType() const
715 1584 : { return GetTOXType()->GetType(); }
716 :
717 228 : inline void SwTOXBase::SetLevel(sal_uInt16 nLev)
718 : {
719 : SAL_WARN_IF(GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
720 228 : aData.nLevel = nLev;
721 228 : }
722 :
723 42 : inline sal_uInt16 SwTOXBase::GetLevel() const
724 : {
725 : SAL_WARN_IF(GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
726 42 : return aData.nLevel;
727 : }
728 :
729 : inline void SwTOXBase::SetTemplateName(const OUString& rName)
730 : {
731 : SAL_WARN("sw", "SwTOXBase::SetTemplateName obsolete");
732 : aStyleNames[0] = rName;
733 : }
734 :
735 514 : inline sal_uInt16 SwTOXBase::GetOptions() const
736 : {
737 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
738 514 : return aData.nOptions;
739 : }
740 :
741 238 : inline void SwTOXBase::SetOptions(sal_uInt16 nOpt)
742 : {
743 : SAL_WARN_IF(GetTOXType()->GetType() != TOX_INDEX, "sw", "Wrong type");
744 238 : aData.nOptions = nOpt;
745 238 : }
746 :
747 : #endif // INCLUDED_SW_INC_TOX_HXX
748 :
749 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|