summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2011-03-04 19:53:14 -0500
committerKohei Yoshida <kyoshida@novell.com>2011-03-05 15:21:08 -0500
commite40df3cb083c365d542395b4b48f575ff287b277 (patch)
tree0e174628bfca07e73b60f5dc4f0bf55d4aabc4fc /sc
parent9b6c3f27f441099a4d07f8ecc3845e3fde46e992 (diff)
Added begin(), end() and implemented FindIndex().
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/rangenam.hxx6
-rw-r--r--sc/source/core/tool/rangenam.cxx24
2 files changed, 22 insertions, 8 deletions
diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx
index 40b0b82aa634..21150a237ea1 100644
--- a/sc/inc/rangenam.hxx
+++ b/sc/inc/rangenam.hxx
@@ -191,6 +191,8 @@ private:
ScDocument* mpDoc;
sal_uInt16 mnSharedMaxIndex;
public:
+ typedef DataType::const_iterator const_iterator;
+
ScRangeName(ScDocument* pDoc = NULL);
ScRangeName(const ScRangeName& r);
@@ -209,12 +211,14 @@ public:
SC_DLLPUBLIC ScRangeData* FindIndex(size_t i);
sal_uInt16 GetSharedMaxIndex();
void SetSharedMaxIndex(sal_uInt16 nInd);
+
+ const_iterator begin() const;
+ const_iterator end() const;
SC_DLLPUBLIC size_t size() const;
bool empty() const;
SC_DLLPUBLIC bool Insert(ScRangeData* p);
void erase(const ScRangeData& r);
void clear();
- SC_DLLPUBLIC ScRangeData* At(size_t i);
bool operator== (const ScRangeName& r) const;
};
diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx
index 900f328f7854..60661ca3fad6 100644
--- a/sc/source/core/tool/rangenam.cxx
+++ b/sc/source/core/tool/rangenam.cxx
@@ -769,7 +769,12 @@ void ScRangeName::UpdateGrow(const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY)
ScRangeData* ScRangeName::FindIndex(size_t i)
{
- return NULL;
+ if (i >= maData.size())
+ return NULL;
+
+ DataType::iterator itr = maData.begin();
+ ::std::advance(itr, i);
+ return &(*itr);
}
sal_uInt16 ScRangeName::GetSharedMaxIndex()
@@ -782,6 +787,16 @@ void ScRangeName::SetSharedMaxIndex(sal_uInt16 nInd)
mnSharedMaxIndex = nInd;
}
+ScRangeName::const_iterator ScRangeName::begin() const
+{
+ return maData.begin();
+}
+
+ScRangeName::const_iterator ScRangeName::end() const
+{
+ return maData.end();
+}
+
size_t ScRangeName::size() const
{
return maData.size();
@@ -811,14 +826,9 @@ void ScRangeName::clear()
maData.clear();
}
-ScRangeData* ScRangeName::At(size_t i)
-{
- return NULL;
-}
-
bool ScRangeName::operator== (const ScRangeName& r) const
{
- return true;
+ return maData == r.maData;
}
#else