diff options
author | Joseph Powers <jpowers27@cox.net> | 2011-02-10 21:48:39 -0800 |
---|---|---|
committer | Joseph Powers <jpowers27@cox.net> | 2011-02-10 21:48:39 -0800 |
commit | 5bd709c6ab5c8e8ca6aee75af2b14b0b30281286 (patch) | |
tree | 845f251129d626599ea2247edb377ff693762c4d | |
parent | 19935f3676014b02f6aee6ed133408d1a2fabbe1 (diff) |
Remove DECLARE_LIST( ComponentEntryList, ComponentEntry* )
-rw-r--r-- | toolkit/inc/toolkit/controls/stdtabcontrollermodel.hxx | 4 | ||||
-rw-r--r-- | toolkit/source/controls/stdtabcontroller.cxx | 20 |
2 files changed, 14 insertions, 10 deletions
diff --git a/toolkit/inc/toolkit/controls/stdtabcontrollermodel.hxx b/toolkit/inc/toolkit/controls/stdtabcontrollermodel.hxx index 436a8d1d0361..2393aa0de0b4 100644 --- a/toolkit/inc/toolkit/controls/stdtabcontrollermodel.hxx +++ b/toolkit/inc/toolkit/controls/stdtabcontrollermodel.hxx @@ -46,7 +46,6 @@ #include <vector> struct UnoControlModelEntry; - typedef ::std::vector< UnoControlModelEntry* > UnoControlModelEntryListBase; class UnoControlModelEntryList @@ -80,14 +79,13 @@ struct UnoControlModelEntry }; }; -// Keine Referenz halten, nur temporaer fuer AutoTabOrder struct ComponentEntry { ::com::sun::star::awt::XWindow* pComponent; Point aPos; }; -DECLARE_LIST( ComponentEntryList, ComponentEntry* ) +typedef ::std::vector< ComponentEntry* > ComponentEntryList; #define CONTROLPOS_NOTFOUND 0xFFFFFFFF diff --git a/toolkit/source/controls/stdtabcontroller.cxx b/toolkit/source/controls/stdtabcontroller.cxx index 47cb26e89453..40d0eb25836a 100644 --- a/toolkit/source/controls/stdtabcontroller.cxx +++ b/toolkit/source/controls/stdtabcontroller.cxx @@ -263,7 +263,7 @@ void StdTabController::autoTabOrder( ) throw(RuntimeException) Reference< XWindow > * pComponents = aCompSeq.getArray(); ComponentEntryList aCtrls; - sal_uInt32 n; + size_t n; for ( n = 0; n < nCtrls; n++ ) { XWindow* pC = (XWindow*)pComponents[n].get(); @@ -274,31 +274,37 @@ void StdTabController::autoTabOrder( ) throw(RuntimeException) pE->aPos.Y() = aPosSize.Y; sal_uInt16 nPos; - for ( nPos = 0; nPos < aCtrls.Count(); nPos++ ) + for ( nPos = 0; nPos < aCtrls.size(); nPos++ ) { - ComponentEntry* pEntry = aCtrls.GetObject( nPos ); + ComponentEntry* pEntry = aCtrls[ nPos ]; if ( pEntry->aPos.Y() >= pE->aPos.Y() ) { while ( pEntry && ( pEntry->aPos.Y() == pE->aPos.Y() ) && ( pEntry->aPos.X() < pE->aPos.X() ) ) { - pEntry = aCtrls.GetObject( ++nPos ); + pEntry = aCtrls[ ++nPos ]; } break; } } - aCtrls.Insert( pE, nPos ); + if ( nPos < aCtrls.size() ) { + ComponentEntryList::iterator it = aCtrls.begin(); + ::std::advance( it, nPos ); + aCtrls.insert( it, pE ); + } else { + aCtrls.push_back( pE ); + } } Sequence< Reference< XControlModel > > aNewSeq( nCtrls ); for ( n = 0; n < nCtrls; n++ ) { - ComponentEntry* pE = aCtrls.GetObject( n ); + ComponentEntry* pE = aCtrls[ n ]; Reference< XControl > xUC( pE->pComponent, UNO_QUERY ); aNewSeq.getArray()[n] = xUC->getModel(); delete pE; } - aCtrls.Clear(); + aCtrls.clear(); mxModel->setControlModels( aNewSeq ); } |