1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir #ifndef _FTNINFO_HXX 28*cdf0e10cSrcweir #define _FTNINFO_HXX 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir #include <tools/string.hxx> 31*cdf0e10cSrcweir #include "swdllapi.h" 32*cdf0e10cSrcweir #include <calbck.hxx> 33*cdf0e10cSrcweir #include <editeng/numitem.hxx> 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir class SwTxtFmtColl; 36*cdf0e10cSrcweir class SwPageDesc; 37*cdf0e10cSrcweir class SwCharFmt; 38*cdf0e10cSrcweir class SwDoc; 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir class SW_DLLPUBLIC SwEndNoteInfo : public SwClient 41*cdf0e10cSrcweir { 42*cdf0e10cSrcweir SwDepend aPageDescDep; 43*cdf0e10cSrcweir SwDepend aCharFmtDep, aAnchorCharFmtDep; 44*cdf0e10cSrcweir String sPrefix; 45*cdf0e10cSrcweir String sSuffix; 46*cdf0e10cSrcweir protected: 47*cdf0e10cSrcweir bool m_bEndNote; 48*cdf0e10cSrcweir virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir public: 51*cdf0e10cSrcweir SvxNumberType aFmt; 52*cdf0e10cSrcweir sal_uInt16 nFtnOffset; 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir void ChgPageDesc( SwPageDesc *pDesc ); 55*cdf0e10cSrcweir SwPageDesc* GetPageDesc( SwDoc &rDoc ) const; 56*cdf0e10cSrcweir bool KnowsPageDesc() const; 57*cdf0e10cSrcweir bool DependsOn( const SwPageDesc* ) const; 58*cdf0e10cSrcweir 59*cdf0e10cSrcweir void SetFtnTxtColl(SwTxtFmtColl& rColl); 60*cdf0e10cSrcweir SwTxtFmtColl* GetFtnTxtColl() const { return (SwTxtFmtColl*) GetRegisteredIn(); } // kann 0 sein 61*cdf0e10cSrcweir 62*cdf0e10cSrcweir SwCharFmt* GetCharFmt(SwDoc &rDoc) const; 63*cdf0e10cSrcweir void SetCharFmt( SwCharFmt* ); 64*cdf0e10cSrcweir SwClient *GetCharFmtDep() const { return (SwClient*)&aCharFmtDep; } 65*cdf0e10cSrcweir 66*cdf0e10cSrcweir SwCharFmt* GetAnchorCharFmt(SwDoc &rDoc) const; 67*cdf0e10cSrcweir void SetAnchorCharFmt( SwCharFmt* ); 68*cdf0e10cSrcweir SwClient *GetAnchorCharFmtDep() const { return (SwClient*)&aAnchorCharFmtDep; } 69*cdf0e10cSrcweir 70*cdf0e10cSrcweir SwEndNoteInfo & operator=(const SwEndNoteInfo&); 71*cdf0e10cSrcweir sal_Bool operator==( const SwEndNoteInfo &rInf ) const; 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir SwEndNoteInfo( SwTxtFmtColl *pTxtColl = 0); 74*cdf0e10cSrcweir SwEndNoteInfo(const SwEndNoteInfo&); 75*cdf0e10cSrcweir 76*cdf0e10cSrcweir const String& GetPrefix() const { return sPrefix; } 77*cdf0e10cSrcweir const String& GetSuffix() const { return sSuffix; } 78*cdf0e10cSrcweir 79*cdf0e10cSrcweir void SetPrefix(const String& rSet) { sPrefix = rSet; } 80*cdf0e10cSrcweir void SetSuffix(const String& rSet) { sSuffix = rSet; } 81*cdf0e10cSrcweir void ReleaseCollection() { if ( GetRegisteredInNonConst() ) GetRegisteredInNonConst()->Remove( this ); } 82*cdf0e10cSrcweir }; 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir enum SwFtnPos 85*cdf0e10cSrcweir { 86*cdf0e10cSrcweir //Derzeit nur PAGE und CHAPTER. CHAPTER == Dokumentendenoten. 87*cdf0e10cSrcweir FTNPOS_PAGE = 1, 88*cdf0e10cSrcweir FTNPOS_CHAPTER = 8 89*cdf0e10cSrcweir }; 90*cdf0e10cSrcweir 91*cdf0e10cSrcweir enum SwFtnNum 92*cdf0e10cSrcweir { 93*cdf0e10cSrcweir FTNNUM_PAGE, FTNNUM_CHAPTER, FTNNUM_DOC 94*cdf0e10cSrcweir }; 95*cdf0e10cSrcweir 96*cdf0e10cSrcweir class SW_DLLPUBLIC SwFtnInfo: public SwEndNoteInfo 97*cdf0e10cSrcweir { 98*cdf0e10cSrcweir using SwEndNoteInfo::operator ==; 99*cdf0e10cSrcweir 100*cdf0e10cSrcweir public: 101*cdf0e10cSrcweir String aQuoVadis; 102*cdf0e10cSrcweir String aErgoSum; 103*cdf0e10cSrcweir SwFtnPos ePos; 104*cdf0e10cSrcweir SwFtnNum eNum; 105*cdf0e10cSrcweir 106*cdf0e10cSrcweir 107*cdf0e10cSrcweir SwFtnInfo& operator=(const SwFtnInfo&); 108*cdf0e10cSrcweir 109*cdf0e10cSrcweir sal_Bool operator==( const SwFtnInfo &rInf ) const; 110*cdf0e10cSrcweir 111*cdf0e10cSrcweir SwFtnInfo(SwTxtFmtColl* pTxtColl = 0); 112*cdf0e10cSrcweir SwFtnInfo(const SwFtnInfo&); 113*cdf0e10cSrcweir }; 114*cdf0e10cSrcweir 115*cdf0e10cSrcweir 116*cdf0e10cSrcweir #endif 117