[Libreoffice-commits] .: binfilter/inc
Joseph Powers
jpowers at kemper.freedesktop.org
Fri Jan 14 22:48:12 PST 2011
binfilter/inc/bf_sc/rangelst.hxx | 74 +++++++++++++++++++++++++++++++++------
1 file changed, 64 insertions(+), 10 deletions(-)
New commits:
commit 6c7a4a364ad941558013cb54d7ceaf21ad2cde50
Author: Joseph Powers <jpowers27 at cox.net>
Date: Fri Jan 14 22:48:02 2011 -0800
Remove DECLARE_LIST( ScRangePairListBase, ScRangePair* )
diff --git a/binfilter/inc/bf_sc/rangelst.hxx b/binfilter/inc/bf_sc/rangelst.hxx
index 831fa0d..ce9167c 100644
--- a/binfilter/inc/bf_sc/rangelst.hxx
+++ b/binfilter/inc/bf_sc/rangelst.hxx
@@ -154,12 +154,12 @@ SV_DECL_IMPL_REF( ScRangeList );
// RangePairList: erster Range (aRange[0]) eigentlicher Range, zweiter
// Range (aRange[1]) Daten zu diesem Range, z.B. Rows eines ColName
-DECLARE_LIST( ScRangePairListBase, ScRangePair* )
-class ScRangePairList : public ScRangePairListBase, public SvRefBase
+typedef ::std::vector< ScRangePair* > ScRangePairListBase;
+class ScRangePairList : public SvRefBase
{
-#if defined( ICC ) && defined( OS2 )
-#endif
private:
+ ScRangePairListBase maPairList;
+ size_t current;
public:
virtual ~ScRangePairList();
@@ -167,21 +167,75 @@ public:
void Append( const ScRangePair& rRangePair )
{
ScRangePair* pR = new ScRangePair( rRangePair );
- Insert( pR, LIST_APPEND );
+ maPairList.push_back( pR );
}
+ size_t Count() const { return maPairList.size(); }
void Join( const ScRangePair&, BOOL bIsInList = FALSE );
BOOL UpdateReference( UpdateRefMode, ScDocument*,
const ScRange& rWhere,
short nDx, short nDy, short nDz );
ScRangePair* Find( const ScRange& ) const;
-/*N*/ BOOL Load( SvStream&, USHORT nVer );
-/*N*/ BOOL Store( SvStream& ) const;
+ BOOL Load( SvStream&, USHORT nVer );
+ BOOL Store( SvStream& ) const;
+
+ size_t GetPos( ScRangePair* item )
+ {
+ for ( size_t i = 0, n = maPairList.size(); i < n; ++i )
+ if ( maPairList[ i ] == item ) return i;
+ return size_t(-1);
+ }
+
+ ScRangePair* Remove( size_t i )
+ {
+ if ( i < maPairList.size() )
+ {
+ ScRangePairListBase::iterator it = maPairList.begin();
+ ::std::advance( it, i );
+ maPairList.erase( it );
+ current = i;
+ }
+ return NULL;
+ }
+
+ ScRangePair* Remove( ScRangePair* item )
+ {
+ size_t i = GetPos( item );
+ return Remove( i );
+ }
+
+ ScRangePair* GetObject( size_t i )
+ {
+ if ( i >= maPairList.size() ) return NULL;
+ return maPairList[ i ];
+ }
+
+ ScRangePair* GetObject( size_t i ) const
+ {
+ if ( i >= maPairList.size() ) return NULL;
+ return maPairList[ i ];
+ }
+
+ void Seek( size_t i ) { current = i; }
+
+ ScRangePair* First()
+ {
+ current = 0;
+ return maPairList.empty() ? NULL : maPairList[ current ];
+ }
+
+ ScRangePair* Next()
+ {
+ if ( current+1 < maPairList.size() )
+ {
+ ++current;
+ return maPairList[ current ];
+ }
+ return NULL;
+ }
+
};
SV_DECL_IMPL_REF( ScRangePairList );
-#if defined( ICC ) && defined( SC_RANGELST_CXX ) && defined( OS2 )
-#endif
-
} //namespace binfilter
#endif
More information about the Libreoffice-commits
mailing list