summaryrefslogtreecommitdiff
path: root/sw/inc/tox.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/inc/tox.hxx')
-rw-r--r--sw/inc/tox.hxx793
1 files changed, 793 insertions, 0 deletions
diff --git a/sw/inc/tox.hxx b/sw/inc/tox.hxx
new file mode 100644
index 000000000000..fea15cfafb82
--- /dev/null
+++ b/sw/inc/tox.hxx
@@ -0,0 +1,793 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef SW_TOX_HXX
+#define SW_TOX_HXX
+
+#include <cppuhelper/weakref.hxx>
+
+#include <i18npool/lang.h>
+#include <tools/string.hxx>
+
+#include <editeng/svxenum.hxx>
+#include <svl/svarray.hxx>
+#include <svl/poolitem.hxx>
+#include "swdllapi.h"
+#include <swtypes.hxx>
+#include <toxe.hxx>
+#include <calbck.hxx>
+#include <errhdl.hxx>
+
+#ifndef INCLUDED_VECTOR
+#include <vector> // #i21237#
+#define INCLUDED_VECTOR
+#endif
+
+
+namespace com { namespace sun { namespace star {
+ namespace text { class XDocumentIndexMark; }
+} } }
+
+class SwTOXType;
+class SwTOXMark;
+class SwTxtTOXMark;
+class SwDoc;
+
+SV_DECL_PTRARR(SwTOXMarks, SwTOXMark*, 0, 10)
+
+/*--------------------------------------------------------------------
+ Description: Entry of content index, alphabetical index or user defined index
+ --------------------------------------------------------------------*/
+
+#define IVER_TOXMARK_STRPOOL ((USHORT)1)
+#define IVER_TOXMARK_NEWTOX ((USHORT)2)
+
+class SW_DLLPUBLIC SwTOXMark
+ : public SfxPoolItem
+ , public SwModify
+{
+ friend void _InitCore();
+ friend class SwTxtTOXMark;
+
+ String aAltText; // Der Text des Eintrages ist unterschiedlich
+ String aPrimaryKey, aSecondaryKey;
+
+ // three more strings for phonetic sorting
+ String aTextReading;
+ String aPrimaryKeyReading;
+ String aSecondaryKeyReading;
+
+ SwTxtTOXMark* pTxtAttr;
+
+ USHORT nLevel;
+ BOOL bAutoGenerated : 1; // generated using a concordance file
+ BOOL bMainEntry : 1; // main entry emphasized by character style
+
+ ::com::sun::star::uno::WeakReference<
+ ::com::sun::star::text::XDocumentIndexMark> m_wXDocumentIndexMark;
+
+ SwTOXMark(); // to create the dflt. atr. in _InitCore
+
+public:
+ TYPEINFO(); // rtti
+
+ // single argument ctors shall be explicit.
+ explicit SwTOXMark( const SwTOXType* pTyp );
+ virtual ~SwTOXMark();
+
+ SwTOXMark( const SwTOXMark& rCopy );
+ SwTOXMark& operator=( const SwTOXMark& rCopy );
+
+ // "pure virtual methods" of SfxPoolItem
+ virtual int operator==( const SfxPoolItem& ) const;
+ virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
+
+ // SwClient
+ virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew );
+
+ void InvalidateTOXMark();
+
+ String GetText() const;
+
+ inline BOOL IsAlternativeText() const;
+ inline const String& GetAlternativeText() const;
+
+ inline void SetAlternativeText( const String& rAlt );
+
+ // content or user defined index
+ inline void SetLevel(USHORT nLevel);
+ inline USHORT GetLevel() const;
+
+ // for alphabetical index only
+ inline void SetPrimaryKey(const String& rStr );
+ inline void SetSecondaryKey(const String& rStr);
+ inline void SetTextReading(const String& rStr);
+ inline void SetPrimaryKeyReading(const String& rStr );
+ inline void SetSecondaryKeyReading(const String& rStr);
+
+ inline const String& GetPrimaryKey() const;
+ inline const String& GetSecondaryKey() const;
+ inline const String& GetTextReading() const;
+ inline const String& GetPrimaryKeyReading() const;
+ inline const String& GetSecondaryKeyReading() const;
+
+ BOOL IsAutoGenerated() const {return bAutoGenerated;}
+ void SetAutoGenerated(BOOL bSet) {bAutoGenerated = bSet;}
+
+ BOOL IsMainEntry() const {return bMainEntry;}
+ void SetMainEntry(BOOL bSet) { bMainEntry = bSet;}
+
+ inline const SwTOXType* GetTOXType() const;
+
+ const SwTxtTOXMark* GetTxtTOXMark() const { return pTxtAttr; }
+ SwTxtTOXMark* GetTxtTOXMark() { return pTxtAttr; }
+
+ SW_DLLPRIVATE ::com::sun::star::uno::WeakReference<
+ ::com::sun::star::text::XDocumentIndexMark> const& GetXTOXMark() const
+ { return m_wXDocumentIndexMark; }
+ SW_DLLPRIVATE void SetXTOXMark(::com::sun::star::uno::Reference<
+ ::com::sun::star::text::XDocumentIndexMark> const& xMark)
+ { m_wXDocumentIndexMark = xMark; }
+
+};
+
+/*--------------------------------------------------------------------
+ Description: index types
+ --------------------------------------------------------------------*/
+
+class SwTOXType : public SwModify
+{
+public:
+ SwTOXType(TOXTypes eTyp, const String& aName);
+
+ // @@@ public copy ctor, but no copy assignment?
+ SwTOXType(const SwTOXType& rCopy);
+
+ inline const String& GetTypeName() const;
+ inline TOXTypes GetType() const;
+
+private:
+ String aName;
+ TOXTypes eType;
+
+ // @@@ public copy ctor, but no copy assignment?
+ SwTOXType & operator= (const SwTOXType &);
+};
+
+/*--------------------------------------------------------------------
+ Description: Structure of the index lines
+ --------------------------------------------------------------------*/
+
+#define FORM_TITLE 0
+#define FORM_ALPHA_DELIMITTER 1
+#define FORM_PRIMARY_KEY 2
+#define FORM_SECONDARY_KEY 3
+#define FORM_ENTRY 4
+
+/*
+ Pattern structure
+
+ <E#> - entry number <E# CharStyleName,PoolId>
+ <ET> - entry text <ET CharStyleName,PoolId>
+ <E> - entry text and number <E CharStyleName,PoolId>
+ <T> - tab stop <T,,Position,Adjust>
+ <C> - chapter info n = {0, 1, 2, 3, 4 } values of SwChapterFormat <C CharStyleName,PoolId>
+ <TX> - text token <X CharStyleName,PoolId, TOX_STYLE_DELIMITERTextContentTOX_STYLE_DELIMITER>
+ <#> - Page number <# CharStyleName,PoolId>
+ <LS> - Link start <LS>
+ <LE> - Link end <LE>
+ <A00> - Authority entry field <A02 CharStyleName, PoolId>
+ */
+
+// These enum values are stored and must not be changed!
+enum FormTokenType
+{
+ TOKEN_ENTRY_NO,
+ TOKEN_ENTRY_TEXT,
+ TOKEN_ENTRY,
+ TOKEN_TAB_STOP,
+ TOKEN_TEXT,
+ TOKEN_PAGE_NUMS,
+ TOKEN_CHAPTER_INFO,
+ TOKEN_LINK_START,
+ TOKEN_LINK_END,
+ TOKEN_AUTHORITY,
+ TOKEN_END
+};
+
+struct SW_DLLPUBLIC SwFormToken
+{
+ String sText;
+ String sCharStyleName;
+ SwTwips nTabStopPosition;
+ FormTokenType eTokenType;
+ USHORT nPoolId;
+ SvxTabAdjust eTabAlign;
+ USHORT nChapterFormat; //SwChapterFormat;
+ USHORT nOutlineLevel;//the maximum permitted outline level in numbering
+ USHORT nAuthorityField; //enum ToxAuthorityField
+ sal_Unicode cTabFillChar;
+ sal_Bool bWithTab; // TRUE: do generate tab
+ // character only the tab stop
+ // #i21237#
+
+ SwFormToken(FormTokenType eType ) :
+ nTabStopPosition(0),
+ eTokenType(eType),
+ nPoolId(USHRT_MAX),
+ eTabAlign( SVX_TAB_ADJUST_LEFT ),
+ nChapterFormat(0 /*CF_NUMBER*/),
+ nOutlineLevel(MAXLEVEL), //default to maximum outline level
+ nAuthorityField(0 /*AUTH_FIELD_IDENTIFIER*/),
+ cTabFillChar(' '),
+ bWithTab(sal_True) // #i21237#
+ {}
+
+ String GetString() const;
+};
+
+// -> #i21237#
+/**
+ Functor that is true when a given token has a certain token type.
+
+ @param _eType the type to check for
+ @param rToken the token to check
+
+ @retval TRUE the token has the given type
+ @retval FALSE else
+*/
+struct SwFormTokenEqualToFormTokenType
+{
+ FormTokenType eType;
+
+ SwFormTokenEqualToFormTokenType(FormTokenType _eType) : eType(_eType) {}
+ bool operator()(const SwFormToken & rToken)
+ {
+ return rToken.eTokenType == eType;
+ }
+};
+
+/**
+ Functor that appends the string representation of a given token to a string.
+
+ @param _rText string to append the string representation to
+ @param rToken token whose string representation is appended
+*/
+struct SwFormTokenToString
+{
+ String & rText;
+ SwFormTokenToString(String & _rText) : rText(_rText) {}
+ void operator()(const SwFormToken & rToken) { rText += rToken.GetString(); }
+};
+
+/// Vector of tokens.
+typedef std::vector<SwFormToken> SwFormTokens;
+
+/**
+ Helper class that converts vectors of tokens to strings and vice
+ versa.
+ */
+class SW_DLLPUBLIC SwFormTokensHelper
+{
+ /// the tokens
+ SwFormTokens aTokens;
+
+ /**
+ Builds a token from its string representation.
+
+ @sPattern the whole pattern
+ @nCurPatternPos starting position of the token
+
+ @return the token
+ */
+ SW_DLLPRIVATE SwFormToken BuildToken( const String & sPattern,
+ xub_StrLen & nCurPatternPos ) const;
+
+ /**
+ Returns the string of a token.
+
+ @param sPattern the whole pattern
+ @param nStt starting position of the token
+
+ @return the string representation of the token
+ */
+ SW_DLLPRIVATE String SearchNextToken( const String & sPattern,
+ xub_StrLen nStt ) const;
+
+ /**
+ Returns the type of a token.
+
+ @param sToken the string representation of the token
+ @param pTokenLen return parameter the length of the head of the token
+
+ If pTokenLen is non-NULL the length of the token's head is
+ written to *pTokenLen
+
+ @return the type of the token
+ */
+ SW_DLLPRIVATE FormTokenType GetTokenType(const String & sToken,
+ xub_StrLen * pTokenLen) const;
+
+public:
+ /**
+ contructor
+
+ @param rTokens vector of tokens
+ */
+ SwFormTokensHelper(const SwFormTokens & rTokens) : aTokens(rTokens) {}
+
+ /**
+ constructor
+
+ @param rStr string representation of the tokens
+ */
+ SwFormTokensHelper(const String & rStr);
+
+ /**
+ Returns vector of tokens.
+
+ @return vector of tokens
+ */
+ const SwFormTokens & GetTokens() const { return aTokens; }
+};
+// <- #i21237#
+
+class SW_DLLPUBLIC SwForm
+{
+ SwFormTokens aPattern[ AUTH_TYPE_END + 1 ]; // #i21237#
+ String aTemplate[ AUTH_TYPE_END + 1 ];
+
+ TOXTypes eType;
+ USHORT nFormMaxLevel;
+
+ //USHORT nFirstTabPos; -> Value in tab token
+// BOOL bHasFirstTabPos : 1;
+ BOOL bGenerateTabPos : 1;
+ BOOL bIsRelTabPos : 1;
+ BOOL bCommaSeparated : 1;
+
+public:
+ SwForm( TOXTypes eTOXType = TOX_CONTENT );
+ SwForm( const SwForm& rForm );
+
+ SwForm& operator=( const SwForm& rForm );
+
+ inline void SetTemplate(USHORT nLevel, const String& rName);
+ inline const String& GetTemplate(USHORT nLevel) const;
+
+ // #i21237#
+ void SetPattern(USHORT nLevel, const SwFormTokens& rName);
+ void SetPattern(USHORT nLevel, const String& rStr);
+ const SwFormTokens& GetPattern(USHORT nLevel) const;
+
+ // fill tab stop positions from template to pattern
+ // #i21237#
+ void AdjustTabStops(SwDoc& rDoc,
+ BOOL bInsertNewTabStops = FALSE);
+
+ inline TOXTypes GetTOXType() const;
+ inline USHORT GetFormMax() const;
+
+ BOOL IsRelTabPos() const { return bIsRelTabPos; }
+ void SetRelTabPos( BOOL b ) { bIsRelTabPos = b; }
+
+ BOOL IsCommaSeparated() const { return bCommaSeparated;}
+ void SetCommaSeparated( BOOL b) { bCommaSeparated = b;}
+
+ static USHORT GetFormMaxLevel( TOXTypes eType );
+
+ static const sal_Char* aFormEntry; // <E>
+ static BYTE nFormEntryLen; // 3 characters
+ static const sal_Char* aFormTab; // <T>
+ static BYTE nFormTabLen; // 3 characters
+ static const sal_Char* aFormPageNums; // <P>
+ static BYTE nFormPageNumsLen; // 3 characters
+ static const sal_Char* aFormLinkStt; // <LS>
+ static BYTE nFormLinkSttLen; // 4 characters
+ static const sal_Char* aFormLinkEnd; // <LE>
+ static BYTE nFormLinkEndLen; // 4 characters
+ static const sal_Char* aFormEntryNum; // <E#>
+ static BYTE nFormEntryNumLen; // 4 characters
+ static const sal_Char* aFormEntryTxt; // <ET>
+ static BYTE nFormEntryTxtLen; // 4 characters
+ static const sal_Char* aFormChapterMark; // <C>
+ static BYTE nFormChapterMarkLen; // 3 characters
+ static const sal_Char* aFormText; // <TX>
+ static BYTE nFormTextLen; // 4 characters
+ static const sal_Char* aFormAuth; // <Axx> xx - decimal enum value
+ static BYTE nFormAuthLen; // 3 characters
+};
+
+/*--------------------------------------------------------------------
+ Description: Content to create indexes of
+ --------------------------------------------------------------------*/
+
+typedef USHORT SwTOXElement;
+namespace nsSwTOXElement
+{
+ const SwTOXElement TOX_MARK = 1;
+ const SwTOXElement TOX_OUTLINELEVEL = 2;
+ const SwTOXElement TOX_TEMPLATE = 4;
+ const SwTOXElement TOX_OLE = 8;
+ const SwTOXElement TOX_TABLE = 16;
+ const SwTOXElement TOX_GRAPHIC = 32;
+ const SwTOXElement TOX_FRAME = 64;
+ const SwTOXElement TOX_SEQUENCE = 128;
+}
+
+typedef USHORT SwTOIOptions;
+namespace nsSwTOIOptions
+{
+ const SwTOIOptions TOI_SAME_ENTRY = 1;
+ const SwTOIOptions TOI_FF = 2;
+ const SwTOIOptions TOI_CASE_SENSITIVE = 4;
+ const SwTOIOptions TOI_KEY_AS_ENTRY = 8;
+ const SwTOIOptions TOI_ALPHA_DELIMITTER = 16;
+ const SwTOIOptions TOI_DASH = 32;
+ const SwTOIOptions TOI_INITIAL_CAPS = 64;
+}
+
+//which part of the caption is to be displayed
+enum SwCaptionDisplay
+{
+ CAPTION_COMPLETE,
+ CAPTION_NUMBER,
+ CAPTION_TEXT
+};
+
+typedef USHORT SwTOOElements;
+namespace nsSwTOOElements
+{
+ const SwTOOElements TOO_MATH = 0x01;
+ const SwTOOElements TOO_CHART = 0x02;
+ const SwTOOElements TOO_CALC = 0x08;
+ const SwTOOElements TOO_DRAW_IMPRESS = 0x10;
+// const SwTOOElements TOO_IMPRESS = 0x20;
+ const SwTOOElements TOO_OTHER = 0x80;
+}
+
+#define TOX_STYLE_DELIMITER ((sal_Unicode)0x01) //JP 19.07.00: use a control char
+
+/*--------------------------------------------------------------------
+ Description: Class for all indexes
+ --------------------------------------------------------------------*/
+
+class SW_DLLPUBLIC SwTOXBase : public SwClient
+{
+ SwForm aForm; // description of the lines
+ String aName; // unique name
+ String aTitle; // title
+
+ String sMainEntryCharStyle; // name of the character style applied to main index entries
+
+ String aStyleNames[MAXLEVEL]; // (additional) style names TOX_CONTENT, TOX_USER
+ String sSequenceName; // FieldTypeName of a caption sequence
+
+ LanguageType eLanguage;
+ String sSortAlgorithm;
+
+ union {
+ USHORT nLevel; // consider outline levels
+ USHORT nOptions; // options of alphabetical index
+ } aData;
+
+ USHORT nCreateType; // sources to create the index from
+ USHORT nOLEOptions; // OLE sources
+ SwCaptionDisplay eCaptionDisplay; //
+ BOOL bProtected : 1; // index protected ?
+ BOOL bFromChapter : 1; // create from chapter or document
+ BOOL bFromObjectNames : 1; // create a table or object index
+ // from the names rather than the caption
+ BOOL bLevelFromChapter : 1; // User index: get the level from the source chapter
+public:
+ SwTOXBase( const SwTOXType* pTyp, const SwForm& rForm,
+ USHORT nCreaType, const String& rTitle );
+ SwTOXBase( const SwTOXBase& rCopy, SwDoc* pDoc = 0 );
+ virtual ~SwTOXBase();
+
+ virtual BOOL GetInfo( SfxPoolItem& rInfo ) const;
+
+ // a kind of CopyCtor - check if the TOXBase is at TOXType of the doc.
+ // If not, so create it an copy all other used things. The return is this
+ SwTOXBase& CopyTOXBase( SwDoc*, const SwTOXBase& );
+
+ const SwTOXType* GetTOXType() const; //
+
+ USHORT GetCreateType() const; // creation types
+
+ const String& GetTOXName() const {return aName;}
+ void SetTOXName(const String& rSet) {aName = rSet;}
+
+ const String& GetTitle() const; // Title
+ const String& GetTypeName() const; // Name
+ const SwForm& GetTOXForm() const; // description of the lines
+
+ void SetCreate(USHORT);
+ void SetTitle(const String& rTitle);
+ void SetTOXForm(const SwForm& rForm);
+
+ TOXTypes GetType() const;
+
+ const String& GetMainEntryCharStyle() const {return sMainEntryCharStyle;}
+ void SetMainEntryCharStyle(const String& rSet) {sMainEntryCharStyle = rSet;}
+
+ // content index only
+ inline void SetLevel(USHORT); // consider outline level
+ inline USHORT GetLevel() const;
+
+ // alphabetical index only
+ inline USHORT GetOptions() const; // alphabetical index options
+ inline void SetOptions(USHORT nOpt);
+
+ // index of objects
+ USHORT GetOLEOptions() const {return nOLEOptions;}
+ void SetOLEOptions(USHORT nOpt) {nOLEOptions = nOpt;}
+
+ // index of objects
+
+ // user defined index only
+ inline void SetTemplateName(const String& rName); // Absatzlayout beachten
+
+ const String& GetStyleNames(USHORT nLevel) const
+ {
+ DBG_ASSERT( nLevel < MAXLEVEL, "Which level?");
+ return aStyleNames[nLevel];
+ }
+ void SetStyleNames(const String& rSet, USHORT nLevel)
+ {
+ DBG_ASSERT( nLevel < MAXLEVEL, "Which level?");
+ aStyleNames[nLevel] = rSet;
+ }
+ BOOL IsFromChapter() const { return bFromChapter;}
+ void SetFromChapter(BOOL bSet) { bFromChapter = bSet;}
+
+ BOOL IsFromObjectNames() const {return bFromObjectNames;}
+ void SetFromObjectNames(BOOL bSet) {bFromObjectNames = bSet;}
+
+ BOOL IsLevelFromChapter() const {return bLevelFromChapter;}
+ void SetLevelFromChapter(BOOL bSet) {bLevelFromChapter = bSet;}
+
+ BOOL IsProtected() const { return bProtected; }
+ void SetProtected(BOOL bSet) { bProtected = bSet; }
+
+ const String& GetSequenceName() const {return sSequenceName;}
+ void SetSequenceName(const String& rSet) {sSequenceName = rSet;}
+
+ SwCaptionDisplay GetCaptionDisplay() const { return eCaptionDisplay;}
+ void SetCaptionDisplay(SwCaptionDisplay eSet) {eCaptionDisplay = eSet;}
+
+ BOOL IsTOXBaseInReadonly() const;
+
+ const SfxItemSet* GetAttrSet() const;
+ void SetAttrSet( const SfxItemSet& );
+
+ LanguageType GetLanguage() const {return eLanguage;}
+ void SetLanguage(LanguageType nLang) {eLanguage = nLang;}
+
+ const String& GetSortAlgorithm()const {return sSortAlgorithm;}
+ void SetSortAlgorithm(const String& rSet) {sSortAlgorithm = rSet;}
+ // #i21237#
+ void AdjustTabStops(SwDoc & rDoc, BOOL bDefaultRightTabStop);
+ SwTOXBase& operator=(const SwTOXBase& rSource);
+};
+
+
+/*--------------------------------------------------------------------
+ Description: Inlines
+ --------------------------------------------------------------------*/
+
+//
+//SwTOXMark
+//
+inline const String& SwTOXMark::GetAlternativeText() const
+ { return aAltText; }
+
+inline const SwTOXType* SwTOXMark::GetTOXType() const
+ { return (SwTOXType*)GetRegisteredIn(); }
+
+inline BOOL SwTOXMark::IsAlternativeText() const
+ { return aAltText.Len() > 0; }
+
+inline void SwTOXMark::SetAlternativeText(const String& rAlt)
+{
+ aAltText = rAlt;
+}
+
+inline void SwTOXMark::SetLevel( USHORT nLvl )
+{
+ ASSERT( !GetTOXType() || GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
+ nLevel = nLvl;
+}
+
+inline void SwTOXMark::SetPrimaryKey( const String& rKey )
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ aPrimaryKey = rKey;
+}
+
+inline void SwTOXMark::SetSecondaryKey( const String& rKey )
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ aSecondaryKey = rKey;
+}
+
+inline void SwTOXMark::SetTextReading( const String& rTxt )
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ aTextReading = rTxt;
+}
+
+inline void SwTOXMark::SetPrimaryKeyReading( const String& rKey )
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ aPrimaryKeyReading = rKey;
+}
+
+inline void SwTOXMark::SetSecondaryKeyReading( const String& rKey )
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ aSecondaryKeyReading = rKey;
+}
+
+inline USHORT SwTOXMark::GetLevel() const
+{
+ ASSERT( !GetTOXType() || GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
+ return nLevel;
+}
+
+inline const String& SwTOXMark::GetPrimaryKey() const
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ return aPrimaryKey;
+}
+
+inline const String& SwTOXMark::GetSecondaryKey() const
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ return aSecondaryKey;
+}
+
+inline const String& SwTOXMark::GetTextReading() const
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ return aTextReading;
+}
+
+inline const String& SwTOXMark::GetPrimaryKeyReading() const
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ return aPrimaryKeyReading;
+}
+
+inline const String& SwTOXMark::GetSecondaryKeyReading() const
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ return aSecondaryKeyReading;
+}
+
+//
+//SwForm
+//
+inline void SwForm::SetTemplate(USHORT nLevel, const String& rTemplate)
+{
+ ASSERT(nLevel < GetFormMax(), "Index >= FORM_MAX");
+ aTemplate[nLevel] = rTemplate;
+}
+
+inline const String& SwForm::GetTemplate(USHORT nLevel) const
+{
+ ASSERT(nLevel < GetFormMax(), "Index >= FORM_MAX");
+ return aTemplate[nLevel];
+}
+
+inline TOXTypes SwForm::GetTOXType() const
+{
+ return eType;
+}
+
+inline USHORT SwForm::GetFormMax() const
+{
+ return nFormMaxLevel;
+}
+
+
+//
+//SwTOXType
+//
+inline const String& SwTOXType::GetTypeName() const
+ { return aName; }
+
+inline TOXTypes SwTOXType::GetType() const
+ { return eType; }
+
+//
+// SwTOXBase
+//
+inline const SwTOXType* SwTOXBase::GetTOXType() const
+ { return (SwTOXType*)GetRegisteredIn(); }
+
+inline USHORT SwTOXBase::GetCreateType() const
+ { return nCreateType; }
+
+inline const String& SwTOXBase::GetTitle() const
+ { return aTitle; }
+
+inline const String& SwTOXBase::GetTypeName() const
+ { return GetTOXType()->GetTypeName(); }
+
+inline const SwForm& SwTOXBase::GetTOXForm() const
+ { return aForm; }
+
+inline void SwTOXBase::AdjustTabStops(SwDoc & rDoc, BOOL bDefaultRightTabStop)
+{
+ aForm.AdjustTabStops(rDoc, bDefaultRightTabStop);
+}
+
+inline void SwTOXBase::SetCreate(USHORT nCreate)
+ { nCreateType = nCreate; }
+
+inline void SwTOXBase::SetTOXForm(const SwForm& rForm)
+ { aForm = rForm; }
+
+inline TOXTypes SwTOXBase::GetType() const
+ { return GetTOXType()->GetType(); }
+
+inline void SwTOXBase::SetLevel(USHORT nLev)
+{
+ ASSERT(GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
+ aData.nLevel = nLev;
+}
+
+inline USHORT SwTOXBase::GetLevel() const
+{
+ ASSERT(GetTOXType()->GetType() != TOX_INDEX, "Falscher Feldtyp");
+ return aData.nLevel;
+}
+
+inline void SwTOXBase::SetTemplateName(const String& rName)
+{
+// ASSERT(GetTOXType()->GetType() == TOX_USER, "Falscher Feldtyp");
+// ASSERT(aData.pTemplateName, "pTemplateName == 0");
+// (*aData.pTemplateName) = rName;
+ DBG_WARNING("SwTOXBase::SetTemplateName obsolete");
+ aStyleNames[0] = rName;
+
+}
+
+inline USHORT SwTOXBase::GetOptions() const
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ return aData.nOptions;
+}
+
+inline void SwTOXBase::SetOptions(USHORT nOpt)
+{
+ ASSERT(GetTOXType()->GetType() == TOX_INDEX, "Falscher Feldtyp");
+ aData.nOptions = nOpt;
+}
+
+
+#endif // SW_TOX_HXX