xref: /trunk/main/sc/source/core/inc/ddelink.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
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
95