diff options
Diffstat (limited to 'sw/inc/swbaslnk.hxx')
-rw-r--r-- | sw/inc/swbaslnk.hxx | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/sw/inc/swbaslnk.hxx b/sw/inc/swbaslnk.hxx new file mode 100644 index 000000000000..979cea067648 --- /dev/null +++ b/sw/inc/swbaslnk.hxx @@ -0,0 +1,98 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: swbaslnk.hxx,v $ + * $Revision: 1.9 $ + * + * 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 _SWBASLNK_HXX +#define _SWBASLNK_HXX + +#include <sfx2/lnkbase.hxx> + +class SwNode; +class SwCntntNode; +class ReReadThread; +long GrfNodeChanged( void* pLink, void* pCaller ); + +class SwBaseLink : public ::sfx2::SvBaseLink +{ + friend long GrfNodeChanged( void* pLink, void* pCaller ); + + SwCntntNode* pCntntNode; + BOOL bSwapIn : 1; + BOOL bNoDataFlag : 1; + BOOL bIgnoreDataChanged : 1; + ReReadThread* m_pReReadThread; + +protected: + SwBaseLink(): m_pReReadThread(0) {} + + SwBaseLink( const String& rNm, USHORT nObjectType, ::sfx2::SvLinkSource* pObj, + SwCntntNode* pNode = 0 ) + : ::sfx2::SvBaseLink( rNm, nObjectType, pObj ), pCntntNode( pNode ), + bSwapIn( FALSE ), bNoDataFlag( FALSE ), bIgnoreDataChanged( FALSE ), + m_pReReadThread(0) + {} + +public: + TYPEINFO(); + + SwBaseLink( USHORT nMode, USHORT nFormat, SwCntntNode* pNode = 0 ) + : ::sfx2::SvBaseLink( nMode, nFormat ), pCntntNode( pNode ), + bSwapIn( FALSE ), bNoDataFlag( FALSE ), bIgnoreDataChanged( FALSE ), + m_pReReadThread(0) + {} + virtual ~SwBaseLink(); + + virtual void DataChanged( const String& rMimeType, + const ::com::sun::star::uno::Any & rValue ); + + virtual void Closed(); + + virtual const SwNode* GetAnchor() const; + + SwCntntNode *GetCntntNode() { return pCntntNode; } + + // nur fuer Grafiken + BOOL SwapIn( BOOL bWaitForData = FALSE, BOOL bNativFormat = FALSE ); + + BOOL Connect() { return 0 != SvBaseLink::GetRealObject(); } + + // nur fuer Grafik-Links ( zum Umschalten zwischen DDE / Grf-Link) + void SetObjType( USHORT nType ) { SvBaseLink::SetObjType( nType ); } + + BOOL IsRecursion( const SwBaseLink* pChkLnk ) const; + virtual BOOL IsInRange( ULONG nSttNd, ULONG nEndNd, xub_StrLen nStt = 0, + xub_StrLen nEnd = STRING_NOTFOUND ) const; + + void SetNoDataFlag() { bNoDataFlag = TRUE; } + BOOL ChkNoDataFlag() { BOOL bRet = bNoDataFlag; bNoDataFlag = FALSE; return bRet; } + BOOL IsNoDataFlag() const { return bNoDataFlag; } +}; + + +#endif + |