xref: /AOO41X/main/sc/source/core/inc/ddelink.hxx (revision 38d50f7b14e1cf975d8c6468d9633894cd59b523)
1*38d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*38d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*38d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*38d50f7bSAndrew Rist  * distributed with this work for additional information
6*38d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*38d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*38d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
9*38d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*38d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*38d50f7bSAndrew Rist  * software distributed under the License is distributed on an
15*38d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*38d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
17*38d50f7bSAndrew Rist  * specific language governing permissions and limitations
18*38d50f7bSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*38d50f7bSAndrew Rist  *************************************************************/
21*38d50f7bSAndrew Rist 
22*38d50f7bSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SC_DDELINK_HXX
25cdf0e10cSrcweir #define SC_DDELINK_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "address.hxx"
28cdf0e10cSrcweir #include <sfx2/lnkbase.hxx>
29cdf0e10cSrcweir #include <svl/broadcast.hxx>
30cdf0e10cSrcweir #include "scmatrix.hxx"
31cdf0e10cSrcweir 
32cdf0e10cSrcweir class ScDocument;
33cdf0e10cSrcweir class ScMultipleReadHeader;
34cdf0e10cSrcweir class ScMultipleWriteHeader;
35cdf0e10cSrcweir class SvStream;
36cdf0e10cSrcweir 
37cdf0e10cSrcweir class ScDdeLink : public ::sfx2::SvBaseLink, public SvtBroadcaster
38cdf0e10cSrcweir {
39cdf0e10cSrcweir private:
40cdf0e10cSrcweir static sal_Bool	bIsInUpdate;
41cdf0e10cSrcweir 
42cdf0e10cSrcweir 	ScDocument*		pDoc;
43cdf0e10cSrcweir 
44cdf0e10cSrcweir 	String			aAppl;			// Verbindungsdaten
45cdf0e10cSrcweir 	String			aTopic;
46cdf0e10cSrcweir 	String			aItem;
47cdf0e10cSrcweir 	sal_uInt8			nMode;			// Zahlformat-Modus
48cdf0e10cSrcweir 
49cdf0e10cSrcweir 	sal_Bool			bNeedUpdate;	// wird gesetzt, wenn Update nicht moeglich war
50cdf0e10cSrcweir 
51cdf0e10cSrcweir 	ScMatrixRef		pResult;		// Ergebnis
52cdf0e10cSrcweir 
53cdf0e10cSrcweir public:
54cdf0e10cSrcweir 	TYPEINFO();
55cdf0e10cSrcweir 
56cdf0e10cSrcweir 			ScDdeLink( ScDocument* pD,
57cdf0e10cSrcweir 						const String& rA, const String& rT, const String& rI,
58cdf0e10cSrcweir 						sal_uInt8 nM );
59cdf0e10cSrcweir 			ScDdeLink( ScDocument* pD, SvStream& rStream, ScMultipleReadHeader& rHdr );
60cdf0e10cSrcweir 			ScDdeLink( ScDocument* pD, const ScDdeLink& rOther );
61cdf0e10cSrcweir 	virtual ~ScDdeLink();
62cdf0e10cSrcweir 
63cdf0e10cSrcweir 	void			Store( SvStream& rStream, ScMultipleWriteHeader& rHdr ) const;
64cdf0e10cSrcweir 
65cdf0e10cSrcweir 											// von SvBaseLink ueberladen:
66cdf0e10cSrcweir 	virtual void	DataChanged( const String& rMimeType,
67cdf0e10cSrcweir 								const ::com::sun::star::uno::Any & rValue );
68cdf0e10cSrcweir 
69cdf0e10cSrcweir 											// von SvtBroadcaster ueberladen:
70cdf0e10cSrcweir 	virtual void	ListenersGone();
71cdf0e10cSrcweir 
72cdf0e10cSrcweir 											// fuer Interpreter:
73cdf0e10cSrcweir 
GetResult() const74cdf0e10cSrcweir     const ScMatrix* GetResult() const           { return pResult; }
SetResult(ScMatrix * pRes)75cdf0e10cSrcweir     void            SetResult( ScMatrix* pRes ) { pResult = pRes; }
76cdf0e10cSrcweir 
77cdf0e10cSrcweir                                             // XML and Excel import after NewData()
GetModifiableResult()78cdf0e10cSrcweir     ScMatrixRef     GetModifiableResult()   { return pResult; }
79cdf0e10cSrcweir 
GetAppl() const80cdf0e10cSrcweir 	const String&	GetAppl() const		{ return aAppl; }
GetTopic() const81cdf0e10cSrcweir 	const String&	GetTopic() const	{ return aTopic; }
GetItem() const82cdf0e10cSrcweir 	const String&	GetItem() const		{ return aItem; }
GetMode() const83cdf0e10cSrcweir 	sal_uInt8			GetMode() const		{ return nMode; }
84cdf0e10cSrcweir 
85cdf0e10cSrcweir 	void			ResetValue();			// Wert zuruecksetzen
86cdf0e10cSrcweir 	void			TryUpdate();
87cdf0e10cSrcweir 
NeedsUpdate() const88cdf0e10cSrcweir 	sal_Bool			NeedsUpdate() const { return bNeedUpdate; }
89cdf0e10cSrcweir 
IsInUpdate()90cdf0e10cSrcweir 	static sal_Bool		IsInUpdate()		{ return bIsInUpdate; }
91cdf0e10cSrcweir };
92cdf0e10cSrcweir 
93cdf0e10cSrcweir 
94cdf0e10cSrcweir #endif
95cdf0e10cSrcweir 
96