xref: /aoo41x/main/sfx2/inc/sfx2/linksrc.hxx (revision 353d8f4d)
1*353d8f4dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*353d8f4dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*353d8f4dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*353d8f4dSAndrew Rist  * distributed with this work for additional information
6*353d8f4dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*353d8f4dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*353d8f4dSAndrew Rist  * "License"); you may not use this file except in compliance
9*353d8f4dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*353d8f4dSAndrew Rist  *
11*353d8f4dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*353d8f4dSAndrew Rist  *
13*353d8f4dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*353d8f4dSAndrew Rist  * software distributed under the License is distributed on an
15*353d8f4dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*353d8f4dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*353d8f4dSAndrew Rist  * specific language governing permissions and limitations
18*353d8f4dSAndrew Rist  * under the License.
19*353d8f4dSAndrew Rist  *
20*353d8f4dSAndrew Rist  *************************************************************/
21*353d8f4dSAndrew Rist 
22*353d8f4dSAndrew Rist 
23cdf0e10cSrcweir #ifndef _LINKSRC_HXX
24cdf0e10cSrcweir #define _LINKSRC_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include "sal/config.h"
27cdf0e10cSrcweir #include "sfx2/dllapi.h"
28cdf0e10cSrcweir 
29cdf0e10cSrcweir #ifndef _TOOLS_REF_HXX
30cdf0e10cSrcweir #include <tools/ref.hxx>
31cdf0e10cSrcweir #endif
32cdf0e10cSrcweir #include <tools/rtti.hxx>
33cdf0e10cSrcweir #include <com/sun/star/io/XInputStream.hpp>
34cdf0e10cSrcweir 
35cdf0e10cSrcweir #ifndef _SAL_CONFIG_H
36cdf0e10cSrcweir #include <sal/config.h>
37cdf0e10cSrcweir #define _SAL_CONFIG_H
38cdf0e10cSrcweir #endif
39cdf0e10cSrcweir 
40cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace uno
41cdf0e10cSrcweir {
42cdf0e10cSrcweir 	class Any;
43cdf0e10cSrcweir 	//class Type;
44cdf0e10cSrcweir }}}}
45cdf0e10cSrcweir class Window;
46cdf0e10cSrcweir class String;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir #ifndef ADVISEMODE_NODATA
49cdf0e10cSrcweir // Muessen die gleichen Werte wie Ole2 ADVF_* sein
50cdf0e10cSrcweir #define ADVISEMODE_NODATA       0x01
51cdf0e10cSrcweir //#define ADVISEMODE_PRIMEFIRST   0x02
52cdf0e10cSrcweir #define ADVISEMODE_ONLYONCE     0x04
53cdf0e10cSrcweir //#define ADVISEMODE_DATAONSTOP   0x40
54cdf0e10cSrcweir #endif
55cdf0e10cSrcweir 
56cdf0e10cSrcweir namespace sfx2
57cdf0e10cSrcweir {
58cdf0e10cSrcweir 
59cdf0e10cSrcweir class SvBaseLink;
60cdf0e10cSrcweir struct SvLinkSource_Impl;
61cdf0e10cSrcweir 
62cdf0e10cSrcweir class SFX2_DLLPUBLIC SvLinkSource : public SvRefBase
63cdf0e10cSrcweir {
64cdf0e10cSrcweir private:
65cdf0e10cSrcweir     SvLinkSource_Impl*  pImpl; // compatible area
66cdf0e10cSrcweir 
67cdf0e10cSrcweir public:
68cdf0e10cSrcweir 						TYPEINFO();
69cdf0e10cSrcweir 
70cdf0e10cSrcweir 						SvLinkSource();
71cdf0e10cSrcweir 	virtual				~SvLinkSource();
72cdf0e10cSrcweir 
73cdf0e10cSrcweir //	SvBaseLink*			GetDataBaseLink() const;
74cdf0e10cSrcweir 	sal_Bool				HasDataLinks( const SvBaseLink* = 0 ) const;
75cdf0e10cSrcweir 
76cdf0e10cSrcweir 	void				Closed();
77cdf0e10cSrcweir 
78cdf0e10cSrcweir 	sal_uIntPtr 				GetUpdateTimeout() const;
79cdf0e10cSrcweir 	void				SetUpdateTimeout( sal_uIntPtr nTime );
80cdf0e10cSrcweir 						// notify the sink, the mime type is not
81cdf0e10cSrcweir 						// a selection criterion
82cdf0e10cSrcweir 	void				DataChanged( const String & rMimeType,
83cdf0e10cSrcweir 									const ::com::sun::star::uno::Any & rVal );
84cdf0e10cSrcweir 	void				SendDataChanged();
85cdf0e10cSrcweir 	void				NotifyDataChanged();
86cdf0e10cSrcweir 
87cdf0e10cSrcweir     virtual sal_Bool        Connect( SvBaseLink* );
88cdf0e10cSrcweir 	virtual sal_Bool		GetData( ::com::sun::star::uno::Any & rData /*out param*/,
89cdf0e10cSrcweir 								const String & rMimeType,
90cdf0e10cSrcweir 								sal_Bool bSynchron = sal_False );
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 						// sal_True => waitinmg for data
93cdf0e10cSrcweir 	virtual sal_Bool		IsPending() const;
94cdf0e10cSrcweir 						// sal_True => data complete loaded
95cdf0e10cSrcweir 	virtual sal_Bool		IsDataComplete() const;
96cdf0e10cSrcweir 
97cdf0e10cSrcweir     // Link impl: DECL_LINK( MyEndEditHdl, sfx2::FileDialogHelper* ); <= param is the dialog
98cdf0e10cSrcweir     virtual void        Edit( Window *, SvBaseLink *, const Link& rEndEditHdl );
99cdf0e10cSrcweir 
100cdf0e10cSrcweir 
101cdf0e10cSrcweir 	void				AddDataAdvise( SvBaseLink *, const String & rMimeType,
102cdf0e10cSrcweir 										sal_uInt16 nAdviceMode );
103cdf0e10cSrcweir 	void				RemoveAllDataAdvise( SvBaseLink * );
104cdf0e10cSrcweir 
105cdf0e10cSrcweir 	void				AddConnectAdvise( SvBaseLink * );
106cdf0e10cSrcweir 	void				RemoveConnectAdvise( SvBaseLink * );
107cdf0e10cSrcweir 
108cdf0e10cSrcweir     struct StreamToLoadFrom{
StreamToLoadFromsfx2::SvLinkSource::StreamToLoadFrom109cdf0e10cSrcweir         StreamToLoadFrom(
110cdf0e10cSrcweir             const com::sun::star::uno::Reference<com::sun::star::io::XInputStream>& xInputStream,sal_Bool bIsReadOnly )
111cdf0e10cSrcweir             :m_xInputStreamToLoadFrom(xInputStream),
112cdf0e10cSrcweir              m_bIsReadOnly(bIsReadOnly)
113cdf0e10cSrcweir         {
114cdf0e10cSrcweir         }
115cdf0e10cSrcweir 
116cdf0e10cSrcweir         com::sun::star::uno::Reference<com::sun::star::io::XInputStream>
117cdf0e10cSrcweir         m_xInputStreamToLoadFrom;
118cdf0e10cSrcweir         sal_Bool m_bIsReadOnly;
119cdf0e10cSrcweir     };
120cdf0e10cSrcweir 
121cdf0e10cSrcweir     StreamToLoadFrom getStreamToLoadFrom();
122cdf0e10cSrcweir     void setStreamToLoadFrom(const com::sun::star::uno::Reference<com::sun::star::io::XInputStream>& xInputStream,sal_Bool bIsReadOnly );
123cdf0e10cSrcweir     // --> OD 2008-06-18 #i88291#
124cdf0e10cSrcweir     void clearStreamToLoadFrom();
125cdf0e10cSrcweir     // <--
126cdf0e10cSrcweir };
127cdf0e10cSrcweir 
128cdf0e10cSrcweir SV_DECL_IMPL_REF(SvLinkSource);
129cdf0e10cSrcweir 
130cdf0e10cSrcweir }
131cdf0e10cSrcweir #endif
132