xref: /AOO41X/main/sc/inc/arealink.hxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef SC_AREALINK_HXX
29 #define SC_AREALINK_HXX
30 
31 #include "global.hxx"
32 #include "refreshtimer.hxx"
33 #include "address.hxx"
34 #include <sfx2/lnkbase.hxx>
35 #include "scdllapi.h"
36 
37 class ScDocShell;
38 class SfxObjectShell;
39 class AbstractScLinkedAreaDlg;
40 struct AreaLink_Impl;
41 
42 class SC_DLLPUBLIC ScAreaLink : public ::sfx2::SvBaseLink, public ScRefreshTimer
43 {
44 private:
45     AreaLink_Impl*  pImpl;
46     String          aFileName;
47     String          aFilterName;
48     String          aOptions;
49     String          aSourceArea;
50     ScRange         aDestArea;
51     sal_Bool            bAddUndo;
52     sal_Bool            bInCreate;
53     sal_Bool            bDoInsert;      // wird fuer das erste Update auf sal_False gesetzt
54 
55 	sal_Bool		FindExtRange( ScRange& rRange, ScDocument* pSrcDoc, const String& rAreaName );
56 
57 public:
58 	TYPEINFO();
59 	ScAreaLink( SfxObjectShell* pShell, const String& rFile,
60 					const String& rFilter, const String& rOpt,
61 					const String& rArea, const ScRange& rDest, sal_uLong nRefresh );
62 	virtual ~ScAreaLink();
63 
64 	virtual void Closed();
65 	virtual void DataChanged( const String& rMimeType,
66 							  const ::com::sun::star::uno::Any & rValue );
67 
68     virtual void    Edit( Window*, const Link& rEndEditHdl );
69 
70 	sal_Bool	Refresh( const String& rNewFile, const String& rNewFilter,
71 					const String& rNewArea, sal_uLong nNewRefresh );
72 
73 	void	SetInCreate(sal_Bool bSet)					{ bInCreate = bSet; }
74 	void	SetDoInsert(sal_Bool bSet)					{ bDoInsert = bSet; }
75 	void	SetDestArea(const ScRange& rNew);
76 	void	SetSource(const String& rDoc, const String& rFlt, const String& rOpt,
77 						const String& rArea);
78 
79 	sal_Bool	IsEqual( const String& rFile, const String& rFilter, const String& rOpt,
80 						const String& rSource, const ScRange& rDest ) const;
81 
82 	const String&	GetFile() const			{ return aFileName;		}
83 	const String&	GetFilter() const		{ return aFilterName;	}
84 	const String&	GetOptions() const		{ return aOptions;		}
85 	const String&	GetSource() const		{ return aSourceArea;	}
86 	const ScRange&	GetDestArea() const		{ return aDestArea;		}
87 
88     DECL_LINK( RefreshHdl, ScAreaLink* );
89     DECL_LINK( AreaEndEditHdl, void* );
90 };
91 
92 #endif
93 
94