diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-10-26 15:26:43 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-10-26 17:02:00 +0200 |
commit | 7fe4fa13c1f82524bd7b1f526adb851c67e1706f (patch) | |
tree | 6619d25507c433b8a6a2e03df5883d546bada91e /sc/inc/nameuno.hxx | |
parent | 5fbdd7bf0994f43ad4783f7ff574e11642321016 (diff) |
add uno part for local range names
you can now use e.g. thisComponent.sheets(0).namedRanges
Diffstat (limited to 'sc/inc/nameuno.hxx')
-rw-r--r-- | sc/inc/nameuno.hxx | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/sc/inc/nameuno.hxx b/sc/inc/nameuno.hxx index 5ba41a9f6782..9d7ca9351343 100644 --- a/sc/inc/nameuno.hxx +++ b/sc/inc/nameuno.hxx @@ -50,9 +50,11 @@ #include <cppuhelper/implbase6.hxx> class ScDocShell; +class ScRangeName; class ScRangeData; class ScTokenArray; class ScNamedRangesObj; +class ScTableSheetObj; class ScNamedRangeObj : public ::cppu::WeakImplHelper6< ::com::sun::star::sheet::XNamedRange, @@ -67,6 +69,7 @@ private: ScNamedRangesObj* mpParent; ScDocShell* pDocShell; String aName; + ScTableSheetObj* mpSheet; private: ScRangeData* GetRangeData_Impl(); @@ -74,9 +77,10 @@ private: const ScTokenArray* pNewTokens, const String* pNewContent, const ScAddress* pNewPos, const sal_uInt16* pNewType, const formula::FormulaGrammar::Grammar eGrammar ); + SCTAB GetTab_Impl(); public: - ScNamedRangeObj(ScNamedRangesObj* pParent, ScDocShell* pDocSh, const String& rNm); + ScNamedRangeObj(ScNamedRangesObj* pParent, ScDocShell* pDocSh, const String& rNm, ScTableSheetObj* pSheet = NULL); virtual ~ScNamedRangeObj(); virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); @@ -184,17 +188,21 @@ class ScNamedRangesObj : public ::cppu::WeakImplHelper6< public SfxListener { private: - ScDocShell* pDocShell; // if true, adding new name or modifying existing one will set the // document 'modified' and broadcast the change. We turn this off during // import. sal_Bool mbModifyAndBroadcast; - ScNamedRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); - ScNamedRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + virtual ScNamedRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex) = 0; + virtual ScNamedRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName) = 0; + + virtual ScRangeName* GetRangeName_Impl() = 0; + virtual SCTAB GetTab_Impl() = 0; protected: + + ScDocShell* pDocShell; /** called from the XActionLockable interface methods on initial locking */ virtual void lock(); @@ -304,6 +312,37 @@ public: throw(::com::sun::star::uno::RuntimeException); }; +class ScGlobalNamedRangesObj: public ScNamedRangesObj +{ +private: + + virtual ScNamedRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); + virtual ScNamedRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + + virtual ScRangeName* GetRangeName_Impl(); + virtual SCTAB GetTab_Impl(); + +public: + ScGlobalNamedRangesObj(ScDocShell* pDocSh); + virtual ~ScGlobalNamedRangesObj(); +}; + +class ScLocalNamedRangesObj: public ScNamedRangesObj +{ +private: + + virtual ScNamedRangeObj* GetObjectByIndex_Impl(sal_uInt16 nIndex); + virtual ScNamedRangeObj* GetObjectByName_Impl(const ::rtl::OUString& aName); + + virtual ScRangeName* GetRangeName_Impl(); + virtual SCTAB GetTab_Impl(); + + ScTableSheetObj* mpSheet; +public: + ScLocalNamedRangesObj(ScDocShell* pDocSh, ScTableSheetObj* pSheet); + virtual ~ScLocalNamedRangesObj(); +}; + class ScLabelRangeObj : public ::cppu::WeakImplHelper2< ::com::sun::star::sheet::XLabelRange, |