summaryrefslogtreecommitdiff
path: root/sc/inc/nameuno.hxx
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-10-26 15:26:43 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-10-26 17:02:00 +0200
commit7fe4fa13c1f82524bd7b1f526adb851c67e1706f (patch)
tree6619d25507c433b8a6a2e03df5883d546bada91e /sc/inc/nameuno.hxx
parent5fbdd7bf0994f43ad4783f7ff574e11642321016 (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.hxx47
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,