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