diff options
author | Joseph Powers <jpowers27@cox.net> | 2011-02-02 07:37:30 -0800 |
---|---|---|
committer | Joseph Powers <jpowers27@cox.net> | 2011-02-02 07:38:02 -0800 |
commit | 9cae2e68cadbcbfe89c80bdb89c36ae3fe066d3f (patch) | |
tree | 40027ae1415f06ce9b8c2551fa21c404b38c7184 | |
parent | f8953be00bf9cdf392a4d834903fe059b79df2eb (diff) |
Remove DECLARE_LIST( BrowserColumns, BrowserColumn* )
-rw-r--r-- | svtools/inc/svtools/brwbox.hxx | 4 | ||||
-rw-r--r-- | svtools/source/brwbox/brwbox1.cxx | 203 | ||||
-rw-r--r-- | svtools/source/brwbox/brwbox2.cxx | 147 | ||||
-rw-r--r-- | svtools/source/brwbox/datwin.cxx | 20 |
4 files changed, 195 insertions, 179 deletions
diff --git a/svtools/inc/svtools/brwbox.hxx b/svtools/inc/svtools/brwbox.hxx index 6d15b186d931..782a6a3df4f0 100644 --- a/svtools/inc/svtools/brwbox.hxx +++ b/svtools/inc/svtools/brwbox.hxx @@ -36,6 +36,7 @@ #include <svtools/transfer.hxx> #include <svtools/AccessibleBrowseBoxObjType.hxx> #include <svtools/accessibletableprovider.hxx> +#include <vector> #ifndef INCLUDED_LIMITS_H #include <limits.h> @@ -48,11 +49,12 @@ #endif class BrowserColumn; -class BrowserColumns; class BrowserDataWin; class MultiSelection; class BrowserHeader; +typedef ::std::vector< BrowserColumn* > BrowserColumns; + namespace svt { class BrowseBoxImpl; class IAccessibleFactory; diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx index 4262c4f1a6a3..76f306295c6b 100644 --- a/svtools/source/brwbox/brwbox1.cxx +++ b/svtools/source/brwbox/brwbox1.cxx @@ -47,8 +47,6 @@ DBG_NAME(BrowseBox) extern const char* BrowseBoxCheckInvariants( const void* pVoid ); -DECLARE_LIST( BrowserColumns, BrowserColumn* ) - #define SCROLL_FLAGS (SCROLL_CLIP | SCROLL_NOCHILDREN) #define getDataWindow() ((BrowserDataWin*)pDataWin) @@ -195,8 +193,9 @@ BrowseBox::~BrowseBox() delete pVScroll; // free columns-space - for ( USHORT n = 0; n < pCols->Count(); ++n ) - delete pCols->GetObject(n); + for ( size_t i = 0, n = pCols->size(); i < n; ++i ) + delete (*pCols)[ i ]; + pCols->clear(); delete pCols; delete pColSel; if ( bMultiSelection ) @@ -283,7 +282,7 @@ void BrowseBox::InsertHandleColumn( ULONG nWidth ) { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - pCols->Insert( new BrowserColumn( 0, Image(), String(), nWidth, GetZoom(), 0 ), (ULONG) 0 ); + pCols->insert( pCols->begin(), new BrowserColumn( 0, Image(), String(), nWidth, GetZoom(), 0 ) ); FreezeColumn( 0 ); // Headerbar anpassen @@ -295,9 +294,6 @@ void BrowseBox::InsertHandleColumn( ULONG nWidth ) ); } - /*if ( getDataWindow()->pHeaderBar ) - getDataWindow()->pHeaderBar->InsertItem( USHRT_MAX - 1, - "", nWidth, HIB_FIXEDPOS|HIB_FIXED, 0 );*/ ColumnInserted( 0 ); } @@ -307,8 +303,16 @@ void BrowseBox::InsertDataColumn( USHORT nItemId, const Image& rImage, { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - pCols->Insert( new BrowserColumn( nItemId, rImage, String(), nWidth, GetZoom(), nBits ), - Min( nPos, (USHORT)(pCols->Count()) ) ); + if ( nPos < pCols->size() ) + { + BrowserColumns::iterator it = pCols->begin(); + ::std::advance( it, nPos ); + pCols->insert( it, new BrowserColumn( nItemId, rImage, String(), nWidth, GetZoom(), nBits ) ); + } + else + { + pCols->push_back( new BrowserColumn( nItemId, rImage, String(), nWidth, GetZoom(), nBits ) ); + } if ( nCurColId == 0 ) nCurColId = nItemId; if ( getDataWindow()->pHeaderBar ) @@ -330,8 +334,16 @@ void BrowseBox::InsertDataColumn( USHORT nItemId, const XubString& rText, { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - pCols->Insert( new BrowserColumn( nItemId, Image(), rText, nWidth, GetZoom(), nBits ), - Min( nPos, (USHORT)(pCols->Count()) ) ); + if ( nPos < pCols->size() ) + { + BrowserColumns::iterator it = pCols->begin(); + ::std::advance( it, nPos ); + pCols->insert( it, new BrowserColumn( nItemId, Image(), rText, nWidth, GetZoom(), nBits ) ); + } + else + { + pCols->push_back( new BrowserColumn( nItemId, Image(), rText, nWidth, GetZoom(), nBits ) ); + } if ( nCurColId == 0 ) nCurColId = nItemId; @@ -356,8 +368,17 @@ void BrowseBox::InsertDataColumn( USHORT nItemId, { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - pCols->Insert( new BrowserColumn( nItemId, rImage, rText, nWidth, GetZoom(), nBits ), - Min( nPos, (USHORT)(pCols->Count()) ) ); + if ( nPos < pCols->size() ) + { + BrowserColumns::iterator it = pCols->begin(); + ::std::advance( it, nPos ); + pCols->insert( it, new BrowserColumn( nItemId, rImage, rText, nWidth, GetZoom(), nBits ) ); + } + else + { + pCols->push_back( new BrowserColumn( nItemId, rImage, rText, nWidth, GetZoom(), nBits ) ); + } + if ( nCurColId == 0 ) nCurColId = nItemId; if ( getDataWindow()->pHeaderBar ) @@ -385,7 +406,7 @@ USHORT BrowseBox::ToggleSelectedColumn() { DoHideCursor( "ToggleSelectedColumn" ); ToggleSelection(); - nSelectedColId = pCols->GetObject(pColSel->FirstSelected())->GetId(); + nSelectedColId = (*pCols)[ pColSel->FirstSelected() ]->GetId(); pColSel->SelectAll(FALSE); } return nSelectedColId; @@ -411,13 +432,13 @@ void BrowseBox::FreezeColumn( USHORT nItemId, BOOL bFreeze ) return; // get the position in the current array - USHORT nItemPos = GetColumnPos( nItemId ); - if ( nItemPos >= pCols->Count() ) + size_t nItemPos = GetColumnPos( nItemId ); + if ( nItemPos >= pCols->size() ) // not available! return; // doesn't the state change? - if ( pCols->GetObject(nItemPos)->IsFrozen() == bFreeze ) + if ( (*pCols)[ nItemPos ]->IsFrozen() == bFreeze ) return; // remark the column selection @@ -427,14 +448,18 @@ void BrowseBox::FreezeColumn( USHORT nItemId, BOOL bFreeze ) if ( bFreeze ) { // to be moved? - if ( nItemPos != 0 && !pCols->GetObject(nItemPos-1)->IsFrozen() ) + if ( nItemPos != 0 && !(*pCols)[ nItemPos-1 ]->IsFrozen() ) { // move to the right of the last frozen column USHORT nFirstScrollable = FrozenColCount(); - BrowserColumn *pColumn = pCols->GetObject(nItemPos); - pCols->Remove( (ULONG) nItemPos ); + BrowserColumn *pColumn = (*pCols)[ nItemPos ]; + BrowserColumns::iterator it = pCols->begin(); + ::std::advance( it, nItemPos ); + pCols->erase( it ); nItemPos = nFirstScrollable; - pCols->Insert( pColumn, (ULONG) nItemPos ); + it = pCols->begin(); + ::std::advance( it, nItemPos ); + pCols->insert( it, pColumn ); } // adjust the number of the first scrollable and visible column @@ -444,14 +469,18 @@ void BrowseBox::FreezeColumn( USHORT nItemId, BOOL bFreeze ) else { // to be moved? - if ( nItemPos != FrozenColCount()-1 ) + if ( (sal_Int32)nItemPos != FrozenColCount()-1 ) { // move to the leftmost scrollable colum USHORT nFirstScrollable = FrozenColCount(); - BrowserColumn *pColumn = pCols->GetObject(nItemPos); - pCols->Remove( (ULONG) nItemPos ); + BrowserColumn *pColumn = (*pCols)[ nItemPos ]; + BrowserColumns::iterator it = pCols->begin(); + ::std::advance( it, nItemPos ); + pCols->erase( it ); nItemPos = nFirstScrollable; - pCols->Insert( pColumn, (ULONG) nItemPos ); + it = pCols->begin(); + ::std::advance( it, nItemPos ); + pCols->insert( it, pColumn ); } // adjust the number of the first scrollable and visible column @@ -459,7 +488,7 @@ void BrowseBox::FreezeColumn( USHORT nItemId, BOOL bFreeze ) } // toggle the freeze-state of the column - pCols->GetObject(nItemPos)->Freeze( bFreeze ); + (*pCols)[ nItemPos ]->Freeze( bFreeze ); // align the scrollbar-range UpdateScrollbars(); @@ -481,12 +510,12 @@ void BrowseBox::SetColumnPos( USHORT nColumnId, USHORT nPos ) return; // do not move handle column - if (nPos == 0 && !pCols->GetObject(0)->GetId()) + if (nPos == 0 && !(*pCols)[ 0 ]->GetId()) return; // get the position in the current array USHORT nOldPos = GetColumnPos( nColumnId ); - if ( nOldPos >= pCols->Count() ) + if ( nOldPos >= pCols->size() ) // not available! return; @@ -508,11 +537,19 @@ void BrowseBox::SetColumnPos( USHORT nColumnId, USHORT nPos ) if ( nOldPos > nPos ) nNextPos = nOldPos - 1; - BrowserColumn *pNextCol = pCols->GetObject(nNextPos); + BrowserColumn *pNextCol = (*pCols)[ nNextPos ]; Rectangle aNextRect(GetFieldRect( pNextCol->GetId() )); // move column internally - pCols->Insert( pCols->Remove( nOldPos ), nPos ); + { + BrowserColumns::iterator it = pCols->begin(); + ::std::advance( it, nOldPos ); + BrowserColumn* pTemp = *it; + pCols->erase( it ); + it = pCols->begin(); + ::std::advance( it, nPos ); + pCols->insert( it, pTemp ); + } // determine new column area Rectangle aToRect( GetFieldRect( nColumnId ) ); @@ -598,13 +635,13 @@ void BrowseBox::SetColumnMode( USHORT nColumnId, BrowserColumnMode nFlags ) return; // get the position in the current array - USHORT nColumnPos = GetColumnPos( nColumnId ); - if ( nColumnPos >= pCols->Count() ) + size_t nColumnPos = GetColumnPos( nColumnId ); + if ( nColumnPos >= pCols->size() ) // not available! return; // does the state change? - BrowserColumn *pCol = pCols->GetObject(nColumnPos); + BrowserColumn *pCol = (*pCols)[ nColumnPos ]; if ( pCol->Flags() != nFlags ) { pCol->Flags() = sal::static_int_cast< HeaderBarItemBits >(nFlags); @@ -628,12 +665,12 @@ void BrowseBox::SetColumnTitle( USHORT nItemId, const String& rTitle ) // get the position in the current array USHORT nItemPos = GetColumnPos( nItemId ); - if ( nItemPos >= pCols->Count() ) + if ( nItemPos >= pCols->size() ) // not available! return; // does the state change? - BrowserColumn *pCol = pCols->GetObject(nItemPos); + BrowserColumn *pCol = (*pCols)[ nItemPos ]; if ( pCol->Title() != rTitle ) { ::rtl::OUString sNew(rTitle); @@ -670,18 +707,18 @@ void BrowseBox::SetColumnWidth( USHORT nItemId, ULONG nWidth ) DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); // get the position in the current array - USHORT nItemPos = GetColumnPos( nItemId ); - if ( nItemPos >= pCols->Count() ) + size_t nItemPos = GetColumnPos( nItemId ); + if ( nItemPos >= pCols->size() ) return; // does the state change? nWidth = QueryColumnResize( nItemId, nWidth ); - if ( nWidth >= LONG_MAX || pCols->GetObject(nItemPos)->Width() != nWidth ) + if ( nWidth >= LONG_MAX || (*pCols)[ nItemPos ]->Width() != nWidth ) { - long nOldWidth = pCols->GetObject(nItemPos)->Width(); + long nOldWidth = (*pCols)[ nItemPos ]->Width(); // ggf. letzte Spalte anpassen - if ( IsVisible() && nItemPos == pCols->Count() - 1 ) + if ( IsVisible() && nItemPos == pCols->size() - 1 ) { long nMaxWidth = pDataWin->GetSizePixel().Width(); nMaxWidth -= getDataWindow()->bAutoSizeLastCol @@ -703,7 +740,7 @@ void BrowseBox::SetColumnWidth( USHORT nItemId, ULONG nWidth ) // soll die Aenderung sofort dargestellt werden? BOOL bUpdate = GetUpdateMode() && - ( pCols->GetObject(nItemPos)->IsFrozen() || nItemPos >= nFirstCol ); + ( (*pCols)[ nItemPos ]->IsFrozen() || nItemPos >= nFirstCol ); if ( bUpdate ) { @@ -715,7 +752,7 @@ void BrowseBox::SetColumnWidth( USHORT nItemId, ULONG nWidth ) } // Breite setzen - pCols->GetObject(nItemPos)->SetWidth(nWidth, GetZoom()); + (*pCols)[ nItemPos ]->SetWidth(nWidth, GetZoom()); // scroll and invalidate if ( bUpdate ) @@ -724,7 +761,7 @@ void BrowseBox::SetColumnWidth( USHORT nItemId, ULONG nWidth ) long nX = 0; for ( USHORT nCol = 0; nCol < nItemPos; ++nCol ) { - BrowserColumn *pCol = pCols->GetObject(nCol); + BrowserColumn *pCol = (*pCols)[ nCol ]; if ( pCol->IsFrozen() || nCol >= nFirstCol ) nX += pCol->Width(); } @@ -767,7 +804,7 @@ void BrowseBox::SetColumnWidth( USHORT nItemId, ULONG nWidth ) nItemId ? nItemId : USHRT_MAX - 1, nWidth ); // adjust last column - if ( nItemPos != pCols->Count() - 1 ) + if ( nItemPos != pCols->size() - 1 ) AutoSizeLastColumn(); } @@ -780,7 +817,7 @@ void BrowseBox::AutoSizeLastColumn() if ( getDataWindow()->bAutoSizeLastCol && getDataWindow()->GetUpdateMode() ) { - USHORT nId = GetColumnId( (USHORT)pCols->Count() - 1 ); + USHORT nId = GetColumnId( (USHORT)pCols->size() - 1 ); SetColumnWidth( nId, LONG_MAX ); ColumnResized( nId ); } @@ -807,7 +844,10 @@ void BrowseBox::RemoveColumn( USHORT nItemId ) nCurColId = 0; // Spalte entfernen - delete( pCols->Remove( (ULONG) nPos )); + BrowserColumns::iterator it = pCols->begin(); + ::std::advance( it, nPos ); + delete *it; + pCols->erase( it ); // OJ #93534# if ( nFirstCol >= nPos && nFirstCol > FrozenColCount() ) { @@ -874,10 +914,12 @@ void BrowseBox::RemoveColumns() { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - unsigned int nOldCount = pCols->Count(); + size_t nOldCount = pCols->size(); + // alle Spalten entfernen - while ( pCols->Count() ) - delete ( pCols->Remove( (ULONG) 0 )); + for ( size_t i = 0; i < nOldCount; ++i ) + delete (*pCols)[ i ]; + pCols->clear(); // Spaltenselektion korrigieren if ( pColSel ) @@ -905,7 +947,7 @@ void BrowseBox::RemoveColumns() if ( isAccessibleAlive() ) { - if ( pCols->Count() != nOldCount ) + if ( pCols->size() != nOldCount ) { // all columns should be removed, so we remove the column header bar and append it again // to avoid to notify every column remove @@ -945,9 +987,9 @@ String BrowseBox::GetColumnTitle( USHORT nId ) const DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); USHORT nItemPos = GetColumnPos( nId ); - if ( nItemPos >= pCols->Count() ) + if ( nItemPos >= pCols->size() ) return String(); - return pCols->GetObject(nItemPos)->Title(); + return (*pCols)[ nItemPos ]->Title(); } //------------------------------------------------------------------- @@ -963,7 +1005,7 @@ USHORT BrowseBox::ColCount() const { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - return (USHORT) pCols->Count(); + return (USHORT) pCols->size(); } //------------------------------------------------------------------- @@ -1006,8 +1048,7 @@ long BrowseBox::ScrollColumns( long nCols ) DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); if ( nFirstCol + nCols < 0 || - nFirstCol + nCols >= (long)pCols->Count() ) - //?MI: pCols->GetObject( nFirstCol + nCols )->IsFrozen() ) + nFirstCol + nCols >= (long)pCols->size() ) return 0; // implicitly hides cursor while scrolling @@ -1029,7 +1070,7 @@ long BrowseBox::ScrollColumns( long nCols ) } else { - long nDelta = pCols->GetObject(nFirstCol-1)->Width(); + long nDelta = (*pCols)[ nFirstCol-1 ]->Width(); long nFrozenWidth = GetFrozenWidth(); Rectangle aScrollRect( Point( nFrozenWidth + nDelta, 0 ), @@ -1075,7 +1116,7 @@ long BrowseBox::ScrollColumns( long nCols ) } else { - long nDelta = pCols->GetObject(nFirstCol)->Width(); + long nDelta = (*pCols)[ nFirstCol ]->Width(); long nFrozenWidth = GetFrozenWidth(); Rectangle aScrollRect( Point( nFrozenWidth, 0 ), @@ -1114,13 +1155,13 @@ long BrowseBox::ScrollColumns( long nCols ) if ( getDataWindow()->pHeaderBar ) { long nWidth = 0; - for ( USHORT nCol = 0; - nCol < pCols->Count() && nCol < nFirstCol; + for ( size_t nCol = 0; + nCol < pCols->size() && nCol < nFirstCol; ++nCol ) { // HandleColumn nicht - if ( pCols->GetObject(nCol)->GetId() ) - nWidth += pCols->GetObject(nCol)->Width(); + if ( (*pCols)[ nCol ]->GetId() ) + nWidth += (*pCols)[ nCol ]->Width(); } getDataWindow()->pHeaderBar->SetOffset( nWidth ); @@ -1694,7 +1735,7 @@ BOOL BrowseBox::GoToColumnId( USHORT nColId, BOOL bMakeVisible, BOOL bRowColMove if ( nColId != nCurColId || (bMakeVisible && !IsFieldVisible(nCurRow, nColId, TRUE))) { USHORT nNewPos = GetColumnPos(nColId); - BrowserColumn* pColumn = pCols->GetObject( nNewPos ); + BrowserColumn* pColumn = (nNewPos < pCols->size()) ? (*pCols)[ nNewPos ] : NULL; DBG_ASSERT( pColumn, "no column object - invalid id?" ); if ( !pColumn ) return FALSE; @@ -1852,7 +1893,7 @@ void BrowseBox::SelectAll() uRow.pSel->SelectAll(TRUE); // Handle-Column nicht highlighten - BrowserColumn *pFirstCol = pCols->GetObject(0); + BrowserColumn *pFirstCol = (*pCols)[ 0 ]; long nOfsX = pFirstCol->GetId() ? 0 : pFirstCol->Width(); // highlight the row selection @@ -1941,7 +1982,7 @@ void BrowseBox::SelectRow( long nRow, BOOL _bSelect, BOOL bExpand ) ) { // Handle-Column nicht highlighten - BrowserColumn *pFirstCol = pCols->GetObject(0); + BrowserColumn *pFirstCol = (*pCols)[ 0 ]; long nOfsX = pFirstCol->GetId() ? 0 : pFirstCol->Width(); // highlight only newly selected part @@ -1997,12 +2038,12 @@ void BrowseBox::SelectColumnPos( USHORT nNewColPos, BOOL _bSelect, BOOL bMakeVis if ( !bMultiSelection ) { if ( _bSelect ) - GoToColumnId( pCols->GetObject(nNewColPos)->GetId(), bMakeVisible ); + GoToColumnId( (*pCols)[ nNewColPos ]->GetId(), bMakeVisible ); return; } else { - if ( !GoToColumnId( pCols->GetObject( nNewColPos )->GetId(), bMakeVisible ) ) + if ( !GoToColumnId( (*pCols)[ nNewColPos ]->GetId(), bMakeVisible ) ) return; } @@ -2023,7 +2064,7 @@ void BrowseBox::SelectColumnPos( USHORT nNewColPos, BOOL _bSelect, BOOL bMakeVis Rectangle aFieldRectPix( GetFieldRectPixel( nCurRow, nCurColId, FALSE ) ); Rectangle aRect( Point( aFieldRectPix.Left() - MIN_COLUMNWIDTH, 0 ), - Size( pCols->GetObject(nNewColPos)->Width(), + Size( (*pCols)[ nNewColPos ]->Width(), pDataWin->GetOutputSizePixel().Height() ) ); pDataWin->Invalidate( aRect ); if ( !bSelecting ) @@ -2307,14 +2348,14 @@ Rectangle BrowseBox::ImplFieldRectPixel( long nRow, USHORT nColumnId ) const // compute the X-coordinte realtiv to DataWin by accumulation long nColX = 0; USHORT nFrozenCols = FrozenColCount(); - USHORT nCol; + size_t nCol; for ( nCol = 0; - nCol < pCols->Count() && pCols->GetObject(nCol)->GetId() != nColumnId; + nCol < pCols->size() && (*pCols)[ nCol ]->GetId() != nColumnId; ++nCol ) - if ( pCols->GetObject(nCol)->IsFrozen() || nCol >= nFirstCol ) - nColX += pCols->GetObject(nCol)->Width(); + if ( (*pCols)[ nCol ]->IsFrozen() || nCol >= nFirstCol ) + nColX += (*pCols)[ nCol ]->Width(); - if ( nCol >= pCols->Count() || ( nCol >= nFrozenCols && nCol < nFirstCol ) ) + if ( nCol >= pCols->size() || ( nCol >= nFrozenCols && nCol < nFirstCol ) ) return Rectangle(); // compute the Y-coordinate relative to DataWin @@ -2325,7 +2366,7 @@ Rectangle BrowseBox::ImplFieldRectPixel( long nRow, USHORT nColumnId ) const // assemble the Rectangle relative to DataWin return Rectangle( Point( nColX + MIN_COLUMNWIDTH, nRowY ), - Size( pCols->GetObject(nCol)->Width() - 2*MIN_COLUMNWIDTH, + Size( (*pCols)[ nCol ]->Width() - 2*MIN_COLUMNWIDTH, GetDataRowHeight() - 1 ) ); } @@ -2367,10 +2408,9 @@ USHORT BrowseBox::GetColumnAtXPosPixel( long nX, BOOL ) const // accumulate the withds of the visible columns long nColX = 0; - USHORT nCol; - for ( nCol = 0; nCol < USHORT(pCols->Count()); ++nCol ) + for ( size_t nCol = 0; nCol < pCols->size(); ++nCol ) { - BrowserColumn *pCol = pCols->GetObject(nCol); + BrowserColumn *pCol = (*pCols)[ nCol ]; if ( pCol->IsFrozen() || nCol >= nFirstCol ) nColX += pCol->Width(); @@ -2416,21 +2456,14 @@ void BrowseBox::SetMode( BrowserMode nMode ) #ifdef DBG_MIx Sound::Beep(); nMode = -// BROWSER_COLUMNSELECTION | -// BROWSER_MULTISELECTION | BROWSER_THUMBDRAGGING | BROWSER_KEEPHIGHLIGHT | BROWSER_HLINES | BROWSER_VLINES | -// BROWSER_HIDECURSOR | -// BROWSER_NO_HSCROLL | -// BROWSER_NO_SCROLLBACK | BROWSER_AUTO_VSCROLL | BROWSER_AUTO_HSCROLL | BROWSER_TRACKING_TIPS | -// BROWSER_HIGHLIGHT_NONE | BROWSER_HEADERBAR_NEW | -// BROWSER_AUTOSIZE_LASTCOL | 0; #endif @@ -2519,7 +2552,7 @@ void BrowseBox::SetMode( BrowserMode nMode ) if ( bColumnCursor ) { pColSel = pOldColSel ? pOldColSel : new MultiSelection; - pColSel->SetTotalRange( Range( 0, pCols->Count()-1 ) ); + pColSel->SetTotalRange( Range( 0, pCols->size()-1 ) ); } else { diff --git a/svtools/source/brwbox/brwbox2.cxx b/svtools/source/brwbox/brwbox2.cxx index 4e0752656837..21f51de760bc 100644 --- a/svtools/source/brwbox/brwbox2.cxx +++ b/svtools/source/brwbox/brwbox2.cxx @@ -50,8 +50,6 @@ DBG_NAMEEX(BrowseBox) extern const char* BrowseBoxCheckInvariants( const void * pVoid ); -DECLARE_LIST( BrowserColumns, BrowserColumn* ) - //=================================================================== void BrowseBox::StartDrag( sal_Int8 /* _nAction */, const Point& /* _rPosPixel */ ) @@ -204,11 +202,11 @@ void BrowseBox::StateChanged( StateChangedType nStateChange ) pHeaderBar->SetZoom(GetZoom()); // let the cols calc their new widths and adjust the header bar - for ( USHORT nPos = 0; nPos < pCols->Count(); ++nPos ) + for ( size_t nPos = 0; nPos < pCols->size(); ++nPos ) { - pCols->GetObject(nPos)->ZoomChanged(GetZoom()); + (*pCols)[ nPos ]->ZoomChanged(GetZoom()); if ( pHeaderBar ) - pHeaderBar->SetItemSize( pCols->GetObject(nPos)->GetId(), pCols->GetObject(nPos)->Width() ); + pHeaderBar->SetItemSize( (*pCols)[ nPos ]->GetId(), (*pCols)[ nPos ]->Width() ); } // all our controls have to be repositioned @@ -217,7 +215,7 @@ void BrowseBox::StateChanged( StateChangedType nStateChange ) else if (STATE_CHANGE_ENABLE == nStateChange) { // do we have a handle column? - sal_Bool bHandleCol = pCols->Count() && (0 == pCols->GetObject(0)->GetId()); + sal_Bool bHandleCol = !pCols->empty() && (0 == (*pCols)[ 0 ]->GetId()); // do we have a header bar sal_Bool bHeaderBar = (NULL != static_cast<BrowserDataWin&>(GetDataWindow()).pHeaderBar); @@ -309,7 +307,6 @@ void BrowseBox::ColumnMoved( USHORT ) void BrowseBox::StartScroll() { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - //((Control*)pDataWin)->HideFocus(); DoHideCursor( "StartScroll" ); } @@ -350,7 +347,7 @@ void BrowseBox::ToggleSelection( BOOL bForce ) long nLastRowInRect = 0; // fuer den CFront // Handle-Column nicht highlighten - BrowserColumn *pFirstCol = pCols->GetObject(0); + BrowserColumn *pFirstCol = pCols->empty() ? NULL : (*pCols)[ 0 ]; long nOfsX = (!pFirstCol || pFirstCol->GetId()) ? 0 : pFirstCol->Width(); // accumulate old row selection @@ -389,7 +386,7 @@ void BrowseBox::ToggleSelection( BOOL bForce ) nColId = pColSel->NextSelected() ) { Rectangle aRect( GetFieldRectPixel(nCurRow, - pCols->GetObject(nColId)->GetId(), + (*pCols)[ nColId ]->GetId(), FALSE ) ); aRect.Left() -= MIN_COLUMNWIDTH; aRect.Right() += MIN_COLUMNWIDTH; @@ -436,15 +433,14 @@ void BrowseBox::DrawCursor() if ( bColumnCursor ) { aCursor = GetFieldRectPixel( nCurRow, nCurColId, FALSE ); - //! --aCursor.Bottom(); aCursor.Left() -= MIN_COLUMNWIDTH; aCursor.Right() += 1; aCursor.Bottom() += 1; } else aCursor = Rectangle( - Point( ( pCols->Count() && pCols->GetObject(0)->GetId() == 0 ) ? - pCols->GetObject(0)->Width() : 0, + Point( ( !pCols->empty() && (*pCols)[ 0 ]->GetId() == 0 ) ? + (*pCols)[ 0 ]->Width() : 0, (nCurRow - nTopRow) * GetDataRowHeight() + 1 ), Size( pDataWin->GetOutputSizePixel().Width() + 1, GetDataRowHeight() - 2 ) ); @@ -455,8 +451,6 @@ void BrowseBox::DrawCursor() --aCursor.Bottom(); } - //!mi_mac pDataWin->Update(); - if (m_aCursorColor == COL_TRANSPARENT) { // auf diesem Plattformen funktioniert der StarView-Focus richtig @@ -485,9 +479,9 @@ ULONG BrowseBox::GetColumnWidth( USHORT nId ) const DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); USHORT nItemPos = GetColumnPos( nId ); - if ( nItemPos >= pCols->Count() ) + if ( nItemPos >= pCols->size() ) return 0; - return pCols->GetObject(nItemPos)->Width(); + return (*pCols)[ nItemPos ]->Width(); } //------------------------------------------------------------------- @@ -496,9 +490,9 @@ USHORT BrowseBox::GetColumnId( USHORT nPos ) const { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - if ( nPos >= pCols->Count() ) + if ( nPos >= pCols->size() ) return 0; - return pCols->GetObject(nPos)->GetId(); + return (*pCols)[ nPos ]->GetId(); } //------------------------------------------------------------------- @@ -507,8 +501,8 @@ USHORT BrowseBox::GetColumnPos( USHORT nId ) const { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - for ( USHORT nPos = 0; nPos < pCols->Count(); ++nPos ) - if ( pCols->GetObject(nPos)->GetId() == nId ) + for ( USHORT nPos = 0; nPos < pCols->size(); ++nPos ) + if ( (*pCols)[ nPos ]->GetId() == nId ) return nPos; return BROWSER_INVALIDID; } @@ -519,9 +513,9 @@ BOOL BrowseBox::IsFrozen( USHORT nColumnId ) const { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); - for ( USHORT nPos = 0; nPos < pCols->Count(); ++nPos ) - if ( pCols->GetObject(nPos)->GetId() == nColumnId ) - return pCols->GetObject(nPos)->IsFrozen(); + for ( size_t nPos = 0; nPos < pCols->size(); ++nPos ) + if ( (*pCols)[ nPos ]->GetId() == nColumnId ) + return (*pCols)[ nPos ]->IsFrozen(); return FALSE; } @@ -598,7 +592,7 @@ void BrowseBox::Resize() DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); if ( !bBootstrapped && IsReallyVisible() ) BrowseBox::StateChanged( STATE_CHANGE_INITSHOW ); - if ( !pCols->Count() ) + if ( pCols->empty() ) { getDataWindow()->bResizeOnPaint = TRUE; return; @@ -618,7 +612,7 @@ void BrowseBox::Resize() // did we need a horiz. scroll bar oder gibt es eine Control Area? if ( !getDataWindow()->bNoHScroll && - ( ( pCols->Count() - FrozenColCount() ) > 1 ) ) + ( ( pCols->size() - FrozenColCount() ) > 1 ) ) aHScroll.Show(); else aHScroll.Hide(); @@ -658,7 +652,7 @@ void BrowseBox::Resize() if ( pHeaderBar ) { // Handle-Column beruecksichtigen - BrowserColumn *pFirstCol = pCols->GetObject(0); + BrowserColumn *pFirstCol = (*pCols)[ 0 ]; long nOfsX = pFirstCol->GetId() ? 0 : pFirstCol->Width(); pHeaderBar->SetPosSizePixel( Point( nOfsX, 0 ), Size( GetOutputSizePixel().Width() - nOfsX, GetTitleHeight() ) ); } @@ -676,10 +670,10 @@ void BrowseBox::Paint( const Rectangle& rRect ) // initializations if ( !bBootstrapped && IsReallyVisible() ) BrowseBox::StateChanged( STATE_CHANGE_INITSHOW ); - if ( !pCols->Count() ) + if ( pCols->empty() ) return; - BrowserColumn *pFirstCol = pCols->GetObject(0); + BrowserColumn *pFirstCol = (*pCols)[ 0 ]; BOOL bHandleCol = pFirstCol && pFirstCol->GetId() == 0; BOOL bHeaderBar = getDataWindow()->pHeaderBar != NULL; @@ -708,20 +702,20 @@ void BrowseBox::Paint( const Rectangle& rRect ) { // iterate through columns to redraw long nX = 0; - USHORT nCol; + size_t nCol; for ( nCol = 0; - nCol < pCols->Count() && nX < rRect.Right(); + nCol < pCols->size() && nX < rRect.Right(); ++nCol ) { // skip invisible colums between frozen and scrollable area - if ( nCol < nFirstCol && !pCols->GetObject(nCol)->IsFrozen() ) + if ( nCol < nFirstCol && !(*pCols)[ nCol ]->IsFrozen() ) nCol = nFirstCol; // nur die HandleCol ? if (bHeaderBar && bHandleCol && nCol > 0) break; - BrowserColumn *pCol = pCols->GetObject(nCol); + BrowserColumn *pCol = (*pCols)[ nCol ]; // draw the column and increment position if ( pCol->Width() > 4 ) @@ -748,7 +742,7 @@ void BrowseBox::Paint( const Rectangle& rRect ) } // retouching - if ( !bHeaderBar && nCol == pCols->Count() ) + if ( !bHeaderBar && nCol == pCols->size() ) { const StyleSettings &rSettings = GetSettings().GetStyleSettings(); Color aColFace( rSettings.GetFaceColor() ); @@ -819,10 +813,10 @@ void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, nDataRowHeight = nForeignHeightPixel; // this counts for the column widths, too - USHORT nPos; - for ( nPos = 0; nPos < pCols->Count(); ++nPos ) + size_t nPos; + for ( nPos = 0; nPos < pCols->size(); ++nPos ) { - BrowserColumn* pCurrent = pCols->GetObject(nPos); + BrowserColumn* pCurrent = (*pCols)[ nPos ]; long nWidthLogic = PixelToLogic(Size(pCurrent->Width(), 0), MAP_10TH_MM).Width(); long nForeignWidthPixel = pDev->LogicToPixel(Size(nWidthLogic, 0), MAP_10TH_MM).Width(); @@ -845,7 +839,7 @@ void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, long nTitleHeight = PixelToLogic(Size(0, GetTitleHeight()), MAP_10TH_MM).Height(); nTitleHeight = pDev->LogicToPixel(Size(0, nTitleHeight), MAP_10TH_MM).Height(); - BrowserColumn* pFirstCol = pCols->Count() ? pCols->GetObject(0) : NULL; + BrowserColumn* pFirstCol = !pCols->empty() ? (*pCols)[ 0 ] : NULL; Point aHeaderPos(pFirstCol && (pFirstCol->GetId() == 0) ? pFirstCol->Width() : 0, 0); Size aHeaderSize(aRealSize.Width() - aHeaderPos.X(), nTitleHeight); @@ -899,9 +893,9 @@ void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, // restore the column widths/data row height nDataRowHeight = nOriginalHeight; - for ( nPos = 0; nPos < pCols->Count(); ++nPos ) + for ( nPos = 0; nPos < pCols->size(); ++nPos ) { - BrowserColumn* pCurrent = pCols->GetObject(nPos); + BrowserColumn* pCurrent = (*pCols)[ nPos ]; long nForeignWidthLogic = pDev->PixelToLogic(Size(pCurrent->Width(), 0), MAP_10TH_MM).Width(); long nWidthPixel = LogicToPixel(Size(nForeignWidthLogic, 0), MAP_10TH_MM).Width(); @@ -938,9 +932,7 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, BOOL Color aOldTextColor = _rOut.GetTextColor(); Color aOldFillColor = _rOut.GetFillColor(); Color aOldLineColor = _rOut.GetLineColor(); - long nHLineX = 0 == pCols->GetObject(0)->GetId() - ? pCols->GetObject(0)->Width() - : 0; + long nHLineX = 0 == (*pCols)[ 0 ]->GetId() ? (*pCols)[ 0 ]->Width() : 0; nHLineX += aOverallAreaPos.X(); Color aDelimiterLineColor( ::svtools::ColorConfig().GetColorValue( ::svtools::CALCGRID ).nColor ); @@ -983,11 +975,11 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, BOOL } // iterate through columns to redraw - USHORT nCol; - for ( nCol = 0; nCol < pCols->Count(); ++nCol ) + size_t nCol; + for ( nCol = 0; nCol < pCols->size(); ++nCol ) { // get column - BrowserColumn *pCol = pCols->GetObject(nCol); + BrowserColumn *pCol = (*pCols)[ nCol ]; // at end of invalid area if ( aPos.X() >= _rRect.Right() ) @@ -997,7 +989,7 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, BOOL if ( nCol < nFirstCol && !pCol->IsFrozen() ) { nCol = nFirstCol; - pCol = pCols->GetObject(nCol); + pCol = (nCol < pCols->size() ) ? (*pCols)[ nCol ] : NULL; if (!pCol) { // FS - 21.05.99 - 66325 // ist zwar eigentlich woanders (an der richtigen Stelle) gefixt, aber sicher ist sicher ... @@ -1098,14 +1090,14 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, BOOL aOldLineColor = _rOut.GetLineColor(); aOldFillColor = _rOut.GetFillColor(); _rOut.SetFillColor( rSettings.GetFaceColor() ); - if ( pCols->Count() && ( pCols->GetObject(0)->GetId() == 0 ) && ( aPos.Y() <= _rRect.Bottom() ) ) + if ( !pCols->empty() && ( (*pCols)[ 0 ]->GetId() == 0 ) && ( aPos.Y() <= _rRect.Bottom() ) ) { // fill rectangle gray below handle column // DG: fill it only until the end of the drawing rect and not to the end, as this may overpaint handle columns _rOut.SetLineColor( Color( COL_BLACK ) ); _rOut.DrawRect( Rectangle( Point( aOverallAreaPos.X() - 1, aPos.Y() - 1 ), - Point( aOverallAreaPos.X() + pCols->GetObject(0)->Width() - 1, + Point( aOverallAreaPos.X() + (*pCols)[ 0 ]->Width() - 1, _rRect.Bottom() + 1) ) ); } _rOut.SetFillColor( aOldFillColor ); @@ -1124,16 +1116,16 @@ void BrowseBox::ImplPaintData(OutputDevice& _rOut, const Rectangle& _rRect, BOOL _rOut.SetLineColor( aDelimiterLineColor ); Point aVertPos( aOverallAreaPos.X() - 1, aOverallAreaPos.Y() ); long nDeltaY = aOverallAreaBRPos.Y(); - for ( USHORT nCol = 0; nCol < pCols->Count(); ++nCol ) + for ( size_t nCol = 0; nCol < pCols->size(); ++nCol ) { // get column - BrowserColumn *pCol = pCols->GetObject(nCol); + BrowserColumn *pCol = (*pCols)[ nCol ]; // skip invisible colums between frozen and scrollable area if ( nCol < nFirstCol && !pCol->IsFrozen() ) { nCol = nFirstCol; - pCol = pCols->GetObject(nCol); + pCol = (*pCols)[ nCol ]; } // skip column @@ -1166,7 +1158,7 @@ void BrowseBox::PaintData( Window& rWin, const Rectangle& rRect ) BrowseBox::StateChanged( STATE_CHANGE_INITSHOW ); // initializations - if ( !pCols || !pCols->Count() || !rWin.IsUpdateMode() ) + if ( !pCols || pCols->empty() || !rWin.IsUpdateMode() ) return; if ( getDataWindow()->bResizeOnPaint ) Resize(); @@ -1226,7 +1218,7 @@ void BrowseBox::UpdateScrollbars() USHORT nFrozenCols = FrozenColCount(); BOOL bNeedsHScroll = getDataWindow()->bAutoHScroll - ? ( nFirstCol > nFrozenCols ) || ( nLastCol <= pCols->Count() ) + ? ( nFirstCol > nFrozenCols ) || ( nLastCol <= pCols->size() ) : !getDataWindow()->bNoHScroll; if ( !bNeedsHScroll ) { @@ -1255,19 +1247,11 @@ void BrowseBox::UpdateScrollbars() Size( aDataWinSize.Width() - nHScrX, nCornerSize ) ); // Scrollable Columns insgesamt - short nScrollCols = short(pCols->Count()) - (short)nFrozenCols; - /*short nVisibleHSize= std::max(nLastCol == BROWSER_INVALIDID - ? pCols->Count() - nFirstCol -1 - : nLastCol - nFirstCol - 1, 0); - - aHScroll.SetVisibleSize( nVisibleHSize ); - aHScroll.SetRange( Range( 0, Max( std::min(nScrollCols, nVisibleHSize), (short)0 ) ) ); - if ( bNeedsHScroll && !aHScroll.IsVisible() ) - aHScroll.Show();*/ + short nScrollCols = short(pCols->size()) - (short)nFrozenCols; // Sichtbare Columns short nVisibleHSize = nLastCol == BROWSER_INVALIDID - ? (short)( pCols->Count() - nFirstCol ) + ? (short)( pCols->size() - nFirstCol ) : (short)( nLastCol - nFirstCol ); short nRange = Max( nScrollCols, (short)0 ); @@ -1333,13 +1317,13 @@ void BrowseBox::UpdateScrollbars() if ( getDataWindow()->pHeaderBar ) { long nWidth = 0; - for ( USHORT nCol = 0; - nCol < pCols->Count() && nCol < nFirstCol; + for ( size_t nCol = 0; + nCol < pCols->size() && nCol < nFirstCol; ++nCol ) { // HandleColumn nicht - if ( pCols->GetObject(nCol)->GetId() ) - nWidth += pCols->GetObject(nCol)->Width(); + if ( (*pCols)[ nCol ]->GetId() ) + nWidth += (*pCols)[ nCol ]->Width(); } getDataWindow()->pHeaderBar->SetOffset( nWidth ); @@ -1401,10 +1385,10 @@ long BrowseBox::GetFrozenWidth() const DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); long nWidth = 0; - for ( USHORT nCol = 0; - nCol < pCols->Count() && pCols->GetObject(nCol)->IsFrozen(); + for ( size_t nCol = 0; + nCol < pCols->size() && (*pCols)[ nCol ]->IsFrozen(); ++nCol ) - nWidth += pCols->GetObject(nCol)->Width(); + nWidth += (*pCols)[ nCol ]->Width(); return nWidth; } @@ -1426,7 +1410,7 @@ USHORT BrowseBox::FrozenColCount() const DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); USHORT nCol; for ( nCol = 0; - nCol < pCols->Count() && pCols->GetObject(nCol)->IsFrozen(); + nCol < pCols->size() && (*pCols)[ nCol ]->IsFrozen(); ++nCol ) /* empty loop */; return nCol; @@ -1464,9 +1448,8 @@ IMPL_LINK( BrowseBox,EndScrollHdl,ScrollBar*, EMPTYARG ) // kein Focus grabben! /// GrabFocus(); - if ( /*pBar->GetDelta() <= 0 &&*/ getDataWindow()->bNoScrollBack ) + if ( getDataWindow()->bNoScrollBack ) { - // UpdateScrollbars(); EndScroll(); return 0; } @@ -1501,10 +1484,10 @@ void BrowseBox::MouseButtonDown( const MouseEvent& rEvt ) long nX = 0; long nWidth = GetOutputSizePixel().Width(); - for ( USHORT nCol = 0; nCol < pCols->Count() && nX < nWidth; ++nCol ) + for ( size_t nCol = 0; nCol < pCols->size() && nX < nWidth; ++nCol ) { // is this column visible? - BrowserColumn *pCol = pCols->GetObject(nCol); + BrowserColumn *pCol = (*pCols)[ nCol ]; if ( pCol->IsFrozen() || nCol >= nFirstCol ) { // compute right end of column @@ -1556,15 +1539,15 @@ void BrowseBox::MouseMove( const MouseEvent& rEvt ) Pointer aNewPointer; USHORT nX = 0; - for ( USHORT nCol = 0; - nCol < USHORT(pCols->Count()) && - ( nX + pCols->GetObject(nCol)->Width() ) < USHORT(GetOutputSizePixel().Width()); + for ( size_t nCol = 0; + nCol < pCols->size() && + ( nX + (*pCols)[ nCol ]->Width() ) < USHORT(GetOutputSizePixel().Width()); ++nCol ) // is this column visible? - if ( pCols->GetObject(nCol)->IsFrozen() || nCol >= nFirstCol ) + if ( (*pCols)[ nCol ]->IsFrozen() || nCol >= nFirstCol ) { // compute right end of column - BrowserColumn *pCol = pCols->GetObject(nCol); + BrowserColumn *pCol = (*pCols)[ nCol ]; USHORT nR = (USHORT)(nX + pCol->Width() - 1); // show resize-pointer? @@ -1613,7 +1596,7 @@ void BrowseBox::MouseButtonUp( const MouseEvent & rEvt ) // width changed? nDragX = Max( rEvt.GetPosPixel().X(), nMinResizeX ); - if ( (nDragX - nResizeX) != (long)pCols->GetObject(nResizeCol)->Width() ) + if ( (nDragX - nResizeX) != (long)(*pCols)[ nResizeCol ]->Width() ) { // resize column long nMaxX = pDataWin->GetSizePixel().Width(); @@ -1661,7 +1644,7 @@ void BrowseBox::MouseButtonDown( const BrowserMouseEvent& rEvt ) { if ( bColumnCursor && rEvt.GetColumn() != 0 ) { - if ( rEvt.GetColumn() < pCols->Count() ) + if ( rEvt.GetColumn() < pCols->size() ) SelectColumnPos( rEvt.GetColumn(), TRUE, FALSE); } } diff --git a/svtools/source/brwbox/datwin.cxx b/svtools/source/brwbox/datwin.cxx index 36a70672f7e3..6db9ee471ced 100644 --- a/svtools/source/brwbox/datwin.cxx +++ b/svtools/source/brwbox/datwin.cxx @@ -38,8 +38,6 @@ #include <tools/debug.hxx> -DECLARE_LIST( BrowserColumns, BrowserColumn* ) - //=================================================================== void ButtonFrame::Draw( OutputDevice& rDev ) { @@ -344,28 +342,28 @@ BrowseEvent BrowserDataWin::CreateBrowseEvent( const Point& rPosPixel ) // find column under mouse long nMouseX = rPosPixel.X(); long nColX = 0; - USHORT nCol; + size_t nCol; for ( nCol = 0; - nCol < pBox->pCols->Count() && nColX < GetSizePixel().Width(); + nCol < pBox->pCols->size() && nColX < GetSizePixel().Width(); ++nCol ) - if ( pBox->pCols->GetObject(nCol)->IsFrozen() || nCol >= pBox->nFirstCol ) + if ( (*pBox->pCols)[ nCol ]->IsFrozen() || nCol >= pBox->nFirstCol ) { - nColX += pBox->pCols->GetObject(nCol)->Width(); + nColX += (*pBox->pCols)[ nCol ]->Width(); if ( nMouseX < nColX ) break; } USHORT nColId = BROWSER_INVALIDID; - if ( nCol < pBox->pCols->Count() ) - nColId = pBox->pCols->GetObject(nCol)->GetId(); + if ( nCol < pBox->pCols->size() ) + nColId = (*pBox->pCols)[ nCol ]->GetId(); // compute the field rectangle and field relative MouseEvent Rectangle aFieldRect; - if ( nCol < pBox->pCols->Count() ) + if ( nCol < pBox->pCols->size() ) { - nColX -= pBox->pCols->GetObject(nCol)->Width(); + nColX -= (*pBox->pCols)[ nCol ]->Width(); aFieldRect = Rectangle( Point( nColX, nRelRow * pBox->GetDataRowHeight() ), - Size( pBox->pCols->GetObject(nCol)->Width(), + Size( (*pBox->pCols)[ nCol ]->Width(), pBox->GetDataRowHeight() ) ); } |