|
|
|
@@ -135,8 +135,9 @@ ValueSet::~ValueSet()
|
|
|
|
|
|
|
|
|
|
void ValueSet::ImplDeleteItems()
|
|
|
|
|
{
|
|
|
|
|
for( ValueSetItem* pItem = mpImpl->mpItemList->First(); pItem; pItem = mpImpl->mpItemList->Next() )
|
|
|
|
|
for ( size_t i = 0, n = mpImpl->mpItemList->size(); i < n; ++i )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ i ];
|
|
|
|
|
if( !pItem->maRect.IsEmpty() && ImplHasAccessibleListeners() )
|
|
|
|
|
{
|
|
|
|
|
::com::sun::star::uno::Any aOldAny, aNewAny;
|
|
|
|
@@ -148,7 +149,7 @@ void ValueSet::ImplDeleteItems()
|
|
|
|
|
delete pItem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mpImpl->mpItemList->Clear();
|
|
|
|
|
mpImpl->mpItemList->clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
@@ -342,7 +343,7 @@ void ValueSet::ImplFormatItem( ValueSetItem* pItem )
|
|
|
|
|
void ValueSet::Format()
|
|
|
|
|
{
|
|
|
|
|
Size aWinSize = GetOutputSizePixel();
|
|
|
|
|
ULONG nItemCount = mpImpl->mpItemList->Count();
|
|
|
|
|
size_t nItemCount = mpImpl->mpItemList->size();
|
|
|
|
|
WinBits nStyle = GetStyle();
|
|
|
|
|
long nTxtHeight = GetTextHeight();
|
|
|
|
|
long nOff;
|
|
|
|
@@ -434,8 +435,8 @@ void ValueSet::Format()
|
|
|
|
|
|
|
|
|
|
// Zeilenanzahl berechnen
|
|
|
|
|
mbScroll = FALSE;
|
|
|
|
|
mnLines = (long)mpImpl->mpItemList->Count() / mnCols;
|
|
|
|
|
if ( mpImpl->mpItemList->Count() % mnCols )
|
|
|
|
|
mnLines = (long)mpImpl->mpItemList->size() / mnCols;
|
|
|
|
|
if ( mpImpl->mpItemList->size() % mnCols )
|
|
|
|
|
mnLines++;
|
|
|
|
|
else if ( !mnLines )
|
|
|
|
|
mnLines = 1;
|
|
|
|
@@ -506,9 +507,9 @@ void ValueSet::Format()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for ( ULONG i = 0; i < nItemCount; i++ )
|
|
|
|
|
for ( size_t i = 0; i < nItemCount; i++ )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( i );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ i ];
|
|
|
|
|
pItem->maRect.SetEmpty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -595,9 +596,9 @@ void ValueSet::Format()
|
|
|
|
|
if ( y+(mnVisLines*(nItemHeight+nSpace)) < aWinSize.Height() )
|
|
|
|
|
nLastItem += mnCols;
|
|
|
|
|
}
|
|
|
|
|
for ( ULONG i = 0; i < nItemCount; i++ )
|
|
|
|
|
for ( size_t i = 0; i < nItemCount; i++ )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( i );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ i ];
|
|
|
|
|
|
|
|
|
|
if ( (i >= nFirstItem) && (i < nLastItem) )
|
|
|
|
|
{
|
|
|
|
@@ -736,7 +737,7 @@ void ValueSet::ImplDrawSelect()
|
|
|
|
|
|
|
|
|
|
ValueSetItem* pItem;
|
|
|
|
|
if ( nItemId )
|
|
|
|
|
pItem = mpImpl->mpItemList->GetObject( GetItemPos( nItemId ) );
|
|
|
|
|
pItem = (*mpImpl->mpItemList)[ GetItemPos( nItemId ) ];
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if ( mpNoneItem )
|
|
|
|
@@ -901,7 +902,7 @@ void ValueSet::ImplHideSelect( USHORT nItemId )
|
|
|
|
|
|
|
|
|
|
USHORT nItemPos = GetItemPos( nItemId );
|
|
|
|
|
if ( nItemPos != sal::static_int_cast<USHORT>(LIST_ENTRY_NOTFOUND) )
|
|
|
|
|
aRect = mpImpl->mpItemList->GetObject( nItemPos )->maRect;
|
|
|
|
|
aRect = (*mpImpl->mpItemList)[ nItemPos ]->maRect;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if ( mpNoneItem )
|
|
|
|
@@ -942,15 +943,15 @@ void ValueSet::ImplHighlightItem( USHORT nItemId, BOOL bIsSelection )
|
|
|
|
|
|
|
|
|
|
void ValueSet::ImplDrawDropPos( BOOL bShow )
|
|
|
|
|
{
|
|
|
|
|
if ( (mnDropPos != VALUESET_ITEM_NOTFOUND) && mpImpl->mpItemList->Count() )
|
|
|
|
|
if ( (mnDropPos != VALUESET_ITEM_NOTFOUND) && !mpImpl->mpItemList->empty() )
|
|
|
|
|
{
|
|
|
|
|
USHORT nItemPos = mnDropPos;
|
|
|
|
|
size_t nItemPos = mnDropPos;
|
|
|
|
|
USHORT nItemId1;
|
|
|
|
|
USHORT nItemId2 = 0;
|
|
|
|
|
BOOL bRight;
|
|
|
|
|
if ( nItemPos >= mpImpl->mpItemList->Count() )
|
|
|
|
|
if ( nItemPos >= mpImpl->mpItemList->size() )
|
|
|
|
|
{
|
|
|
|
|
nItemPos = (USHORT)(mpImpl->mpItemList->Count()-1);
|
|
|
|
|
nItemPos = mpImpl->mpItemList->size() - 1;
|
|
|
|
|
bRight = TRUE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@@ -959,7 +960,7 @@ void ValueSet::ImplDrawDropPos( BOOL bShow )
|
|
|
|
|
nItemId1 = GetItemId( nItemPos );
|
|
|
|
|
if ( (nItemId1 != mnSelItemId) && (nItemId1 != mnHighItemId) )
|
|
|
|
|
nItemId1 = 0;
|
|
|
|
|
Rectangle aRect2 = mpImpl->mpItemList->GetObject( nItemPos )->maRect;
|
|
|
|
|
Rectangle aRect2 = (*mpImpl->mpItemList)[ nItemPos ]->maRect;
|
|
|
|
|
Rectangle aRect1;
|
|
|
|
|
if ( bRight )
|
|
|
|
|
{
|
|
|
|
@@ -968,7 +969,7 @@ void ValueSet::ImplDrawDropPos( BOOL bShow )
|
|
|
|
|
}
|
|
|
|
|
else if ( nItemPos > 0 )
|
|
|
|
|
{
|
|
|
|
|
aRect1 = mpImpl->mpItemList->GetObject( nItemPos-1 )->maRect;
|
|
|
|
|
aRect1 = (*mpImpl->mpItemList)[ nItemPos-1 ]->maRect;
|
|
|
|
|
nItemId2 = GetItemId( nItemPos-1 );
|
|
|
|
|
if ( (nItemId2 != mnSelItemId) && (nItemId2 != mnHighItemId) )
|
|
|
|
|
nItemId2 = 0;
|
|
|
|
@@ -1101,7 +1102,7 @@ BOOL ValueSet::ImplScroll( const Point& rPos )
|
|
|
|
|
|
|
|
|
|
long nScrollOffset;
|
|
|
|
|
USHORT nOldLine = mnFirstLine;
|
|
|
|
|
const Rectangle& rTopRect = mpImpl->mpItemList->GetObject( mnFirstLine*mnCols )->maRect;
|
|
|
|
|
const Rectangle& rTopRect = (*mpImpl->mpItemList)[ mnFirstLine * mnCols ]->maRect;
|
|
|
|
|
if ( rTopRect.GetHeight() <= 16 )
|
|
|
|
|
nScrollOffset = VALUESET_SCROLL_OFFSET/2;
|
|
|
|
|
else
|
|
|
|
@@ -1115,7 +1116,7 @@ BOOL ValueSet::ImplScroll( const Point& rPos )
|
|
|
|
|
if ( (mnFirstLine == nOldLine) &&
|
|
|
|
|
(mnFirstLine < (USHORT)(mnLines-mnVisLines)) && (rPos.Y() < aOutSize.Height()) )
|
|
|
|
|
{
|
|
|
|
|
long nBottomPos = mpImpl->mpItemList->GetObject( (mnFirstLine+mnVisLines-1)*mnCols )->maRect.Bottom();
|
|
|
|
|
long nBottomPos = (*mpImpl->mpItemList)[ (mnFirstLine+mnVisLines-1)*mnCols ]->maRect.Bottom();
|
|
|
|
|
if ( (rPos.Y() >= nBottomPos-nScrollOffset) && (rPos.Y() <= nBottomPos) )
|
|
|
|
|
mnFirstLine++;
|
|
|
|
|
}
|
|
|
|
@@ -1132,7 +1133,7 @@ BOOL ValueSet::ImplScroll( const Point& rPos )
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
USHORT ValueSet::ImplGetItem( const Point& rPos, BOOL bMove ) const
|
|
|
|
|
size_t ValueSet::ImplGetItem( const Point& rPos, BOOL bMove ) const
|
|
|
|
|
{
|
|
|
|
|
if ( mpNoneItem )
|
|
|
|
|
{
|
|
|
|
@@ -1143,14 +1144,14 @@ USHORT ValueSet::ImplGetItem( const Point& rPos, BOOL bMove ) const
|
|
|
|
|
Point aDefPos;
|
|
|
|
|
Rectangle aWinRect( aDefPos, maVirDev.GetOutputSizePixel() );
|
|
|
|
|
|
|
|
|
|
ULONG nItemCount = mpImpl->mpItemList->Count();
|
|
|
|
|
for ( ULONG i = 0; i < nItemCount; i++ )
|
|
|
|
|
size_t nItemCount = mpImpl->mpItemList->size();
|
|
|
|
|
for ( size_t i = 0; i < nItemCount; i++ )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( i );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ i ];
|
|
|
|
|
if ( pItem->maRect.IsInside( rPos ) )
|
|
|
|
|
{
|
|
|
|
|
if ( aWinRect.IsInside( rPos ) )
|
|
|
|
|
return (USHORT)i;
|
|
|
|
|
return i;
|
|
|
|
|
else
|
|
|
|
|
return VALUESET_ITEM_NOTFOUND;
|
|
|
|
|
}
|
|
|
|
@@ -1170,27 +1171,23 @@ USHORT ValueSet::ImplGetItem( const Point& rPos, BOOL bMove ) const
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
ValueSetItem* ValueSet::ImplGetItem( USHORT nPos )
|
|
|
|
|
ValueSetItem* ValueSet::ImplGetItem( size_t nPos )
|
|
|
|
|
{
|
|
|
|
|
if ( nPos == VALUESET_ITEM_NONEITEM )
|
|
|
|
|
return mpNoneItem;
|
|
|
|
|
else
|
|
|
|
|
return mpImpl->mpItemList->GetObject( nPos );
|
|
|
|
|
return ( nPos < mpImpl->mpItemList->size() ) ? (*mpImpl->mpItemList)[ nPos ] : NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
ValueSetItem* ValueSet::ImplGetFirstItem()
|
|
|
|
|
{
|
|
|
|
|
USHORT nItemCount = (USHORT)mpImpl->mpItemList->Count();
|
|
|
|
|
USHORT i = 0;
|
|
|
|
|
|
|
|
|
|
while ( i < nItemCount )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( i );
|
|
|
|
|
if ( pItem->meType != VALUESETITEM_SPACE )
|
|
|
|
|
for ( size_t i = 0, nItemCount = mpImpl->mpItemList->size(); i < nItemCount; ++i ) {
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ i ];
|
|
|
|
|
if ( pItem->meType != VALUESETITEM_SPACE ) {
|
|
|
|
|
return pItem;
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
@@ -1202,9 +1199,9 @@ USHORT ValueSet::ImplGetVisibleItemCount() const
|
|
|
|
|
{
|
|
|
|
|
USHORT nRet = 0;
|
|
|
|
|
|
|
|
|
|
for( sal_Int32 n = 0, nItemCount = mpImpl->mpItemList->Count(); n < nItemCount; n++ )
|
|
|
|
|
for( size_t n = 0, nItemCount = mpImpl->mpItemList->size(); n < nItemCount; n++ )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( n );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ n ];
|
|
|
|
|
|
|
|
|
|
if( pItem->meType != VALUESETITEM_SPACE && !pItem->maRect.IsEmpty() )
|
|
|
|
|
nRet++;
|
|
|
|
@@ -1220,9 +1217,9 @@ ValueSetItem* ValueSet::ImplGetVisibleItem( USHORT nVisiblePos )
|
|
|
|
|
ValueSetItem* pRet = NULL;
|
|
|
|
|
USHORT nFoundPos = 0;
|
|
|
|
|
|
|
|
|
|
for( sal_Int32 n = 0, nItemCount = mpImpl->mpItemList->Count(); ( n < nItemCount ) && !pRet; n++ )
|
|
|
|
|
for( sal_Int32 n = 0, nItemCount = mpImpl->mpItemList->size(); ( n < nItemCount ) && !pRet; n++ )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( n );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ n ];
|
|
|
|
|
|
|
|
|
|
if( ( pItem->meType != VALUESETITEM_SPACE ) && !pItem->maRect.IsEmpty() && ( nVisiblePos == nFoundPos++ ) )
|
|
|
|
|
pRet = pItem;
|
|
|
|
@@ -1413,10 +1410,10 @@ void ValueSet::Tracking( const TrackingEvent& rTEvt )
|
|
|
|
|
|
|
|
|
|
void ValueSet::KeyInput( const KeyEvent& rKEvt )
|
|
|
|
|
{
|
|
|
|
|
USHORT nLastItem = (USHORT)mpImpl->mpItemList->Count();
|
|
|
|
|
USHORT nItemPos = VALUESET_ITEM_NOTFOUND;
|
|
|
|
|
USHORT nCurPos = VALUESET_ITEM_NONEITEM;
|
|
|
|
|
USHORT nCalcPos;
|
|
|
|
|
size_t nLastItem = mpImpl->mpItemList->size();
|
|
|
|
|
size_t nItemPos = VALUESET_ITEM_NOTFOUND;
|
|
|
|
|
size_t nCurPos = VALUESET_ITEM_NONEITEM;
|
|
|
|
|
size_t nCalcPos;
|
|
|
|
|
|
|
|
|
|
if ( !nLastItem || !ImplGetFirstItem() )
|
|
|
|
|
{
|
|
|
|
@@ -1504,7 +1501,7 @@ void ValueSet::KeyInput( const KeyEvent& rKEvt )
|
|
|
|
|
if( rKEvt.GetKeyCode().GetCode() != KEY_PAGEUP ||
|
|
|
|
|
( !rKEvt.GetKeyCode().IsShift() && !rKEvt.GetKeyCode().IsMod1() && !rKEvt.GetKeyCode().IsMod2() ) )
|
|
|
|
|
{
|
|
|
|
|
const long nLineCount = ( ( KEY_UP == rKEvt.GetKeyCode().GetCode() ) ? 1 : mnVisLines );
|
|
|
|
|
const size_t nLineCount = ( ( KEY_UP == rKEvt.GetKeyCode().GetCode() ) ? 1 : mnVisLines );
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
if ( nCalcPos == VALUESET_ITEM_NONEITEM )
|
|
|
|
@@ -1697,7 +1694,7 @@ void ValueSet::RequestHelp( const HelpEvent& rHEvt )
|
|
|
|
|
if ( (rHEvt.GetMode() & (HELPMODE_QUICK | HELPMODE_BALLOON)) == HELPMODE_QUICK )
|
|
|
|
|
{
|
|
|
|
|
Point aPos = ScreenToOutputPixel( rHEvt.GetMousePosPixel() );
|
|
|
|
|
USHORT nItemPos = ImplGetItem( aPos );
|
|
|
|
|
size_t nItemPos = ImplGetItem( aPos );
|
|
|
|
|
if ( nItemPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = ImplGetItem( nItemPos );
|
|
|
|
@@ -1804,7 +1801,7 @@ void ValueSet::UserDraw( const UserDrawEvent& )
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, const Image& rImage, USHORT nPos )
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, const Image& rImage, size_t nPos )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" );
|
|
|
|
|
DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND,
|
|
|
|
@@ -1814,7 +1811,13 @@ void ValueSet::InsertItem( USHORT nItemId, const Image& rImage, USHORT nPos )
|
|
|
|
|
pItem->mnId = nItemId;
|
|
|
|
|
pItem->meType = VALUESETITEM_IMAGE;
|
|
|
|
|
pItem->maImage = rImage;
|
|
|
|
|
mpImpl->mpItemList->Insert( pItem, (ULONG)nPos );
|
|
|
|
|
if ( nPos < mpImpl->mpItemList->size() ) {
|
|
|
|
|
ValueItemList::iterator it = mpImpl->mpItemList->begin();
|
|
|
|
|
::std::advance( it, nPos );
|
|
|
|
|
mpImpl->mpItemList->insert( it, pItem );
|
|
|
|
|
} else {
|
|
|
|
|
mpImpl->mpItemList->push_back( pItem );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mbFormat = TRUE;
|
|
|
|
|
if ( IsReallyVisible() && IsUpdateMode() )
|
|
|
|
@@ -1823,7 +1826,7 @@ void ValueSet::InsertItem( USHORT nItemId, const Image& rImage, USHORT nPos )
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, const Color& rColor, USHORT nPos )
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, const Color& rColor, size_t nPos )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" );
|
|
|
|
|
DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND,
|
|
|
|
@@ -1833,7 +1836,13 @@ void ValueSet::InsertItem( USHORT nItemId, const Color& rColor, USHORT nPos )
|
|
|
|
|
pItem->mnId = nItemId;
|
|
|
|
|
pItem->meType = VALUESETITEM_COLOR;
|
|
|
|
|
pItem->maColor = rColor;
|
|
|
|
|
mpImpl->mpItemList->Insert( pItem, (ULONG)nPos );
|
|
|
|
|
if ( nPos < mpImpl->mpItemList->size() ) {
|
|
|
|
|
ValueItemList::iterator it = mpImpl->mpItemList->begin();
|
|
|
|
|
::std::advance( it, nPos );
|
|
|
|
|
mpImpl->mpItemList->insert( it, pItem );
|
|
|
|
|
} else {
|
|
|
|
|
mpImpl->mpItemList->push_back( pItem );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mbFormat = TRUE;
|
|
|
|
|
if ( IsReallyVisible() && IsUpdateMode() )
|
|
|
|
@@ -1843,7 +1852,7 @@ void ValueSet::InsertItem( USHORT nItemId, const Color& rColor, USHORT nPos )
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, const Image& rImage,
|
|
|
|
|
const XubString& rText, USHORT nPos )
|
|
|
|
|
const XubString& rText, size_t nPos )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" );
|
|
|
|
|
DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND,
|
|
|
|
@@ -1854,7 +1863,13 @@ void ValueSet::InsertItem( USHORT nItemId, const Image& rImage,
|
|
|
|
|
pItem->meType = VALUESETITEM_IMAGE;
|
|
|
|
|
pItem->maImage = rImage;
|
|
|
|
|
pItem->maText = rText;
|
|
|
|
|
mpImpl->mpItemList->Insert( pItem, (ULONG)nPos );
|
|
|
|
|
if ( nPos < mpImpl->mpItemList->size() ) {
|
|
|
|
|
ValueItemList::iterator it = mpImpl->mpItemList->begin();
|
|
|
|
|
::std::advance( it, nPos );
|
|
|
|
|
mpImpl->mpItemList->insert( it, pItem );
|
|
|
|
|
} else {
|
|
|
|
|
mpImpl->mpItemList->push_back( pItem );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mbFormat = TRUE;
|
|
|
|
|
if ( IsReallyVisible() && IsUpdateMode() )
|
|
|
|
@@ -1864,7 +1879,7 @@ void ValueSet::InsertItem( USHORT nItemId, const Image& rImage,
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, const Color& rColor,
|
|
|
|
|
const XubString& rText, USHORT nPos )
|
|
|
|
|
const XubString& rText, size_t nPos )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" );
|
|
|
|
|
DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND,
|
|
|
|
@@ -1875,7 +1890,13 @@ void ValueSet::InsertItem( USHORT nItemId, const Color& rColor,
|
|
|
|
|
pItem->meType = VALUESETITEM_COLOR;
|
|
|
|
|
pItem->maColor = rColor;
|
|
|
|
|
pItem->maText = rText;
|
|
|
|
|
mpImpl->mpItemList->Insert( pItem, (ULONG)nPos );
|
|
|
|
|
if ( nPos < mpImpl->mpItemList->size() ) {
|
|
|
|
|
ValueItemList::iterator it = mpImpl->mpItemList->begin();
|
|
|
|
|
::std::advance( it, nPos );
|
|
|
|
|
mpImpl->mpItemList->insert( it, pItem );
|
|
|
|
|
} else {
|
|
|
|
|
mpImpl->mpItemList->push_back( pItem );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mbFormat = TRUE;
|
|
|
|
|
if ( IsReallyVisible() && IsUpdateMode() )
|
|
|
|
@@ -1884,7 +1905,7 @@ void ValueSet::InsertItem( USHORT nItemId, const Color& rColor,
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, USHORT nPos )
|
|
|
|
|
void ValueSet::InsertItem( USHORT nItemId, size_t nPos )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" );
|
|
|
|
|
DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND,
|
|
|
|
@@ -1893,7 +1914,13 @@ void ValueSet::InsertItem( USHORT nItemId, USHORT nPos )
|
|
|
|
|
ValueSetItem* pItem = new ValueSetItem( *this );
|
|
|
|
|
pItem->mnId = nItemId;
|
|
|
|
|
pItem->meType = VALUESETITEM_USERDRAW;
|
|
|
|
|
mpImpl->mpItemList->Insert( pItem, (ULONG)nPos );
|
|
|
|
|
if ( nPos < mpImpl->mpItemList->size() ) {
|
|
|
|
|
ValueItemList::iterator it = mpImpl->mpItemList->begin();
|
|
|
|
|
::std::advance( it, nPos );
|
|
|
|
|
mpImpl->mpItemList->insert( it, pItem );
|
|
|
|
|
} else {
|
|
|
|
|
mpImpl->mpItemList->push_back( pItem );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mbFormat = TRUE;
|
|
|
|
|
if ( IsReallyVisible() && IsUpdateMode() )
|
|
|
|
@@ -1902,7 +1929,7 @@ void ValueSet::InsertItem( USHORT nItemId, USHORT nPos )
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
void ValueSet::InsertSpace( USHORT nItemId, USHORT nPos )
|
|
|
|
|
void ValueSet::InsertSpace( USHORT nItemId, size_t nPos )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( nItemId, "ValueSet::InsertSpace(): ItemId == 0" );
|
|
|
|
|
DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND,
|
|
|
|
@@ -1911,7 +1938,13 @@ void ValueSet::InsertSpace( USHORT nItemId, USHORT nPos )
|
|
|
|
|
ValueSetItem* pItem = new ValueSetItem( *this );
|
|
|
|
|
pItem->mnId = nItemId;
|
|
|
|
|
pItem->meType = VALUESETITEM_SPACE;
|
|
|
|
|
mpImpl->mpItemList->Insert( pItem, (ULONG)nPos );
|
|
|
|
|
if ( nPos < mpImpl->mpItemList->size() ) {
|
|
|
|
|
ValueItemList::iterator it = mpImpl->mpItemList->begin();
|
|
|
|
|
::std::advance( it, nPos );
|
|
|
|
|
mpImpl->mpItemList->insert( it, pItem );
|
|
|
|
|
} else {
|
|
|
|
|
mpImpl->mpItemList->push_back( pItem );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mbFormat = TRUE;
|
|
|
|
|
if ( IsReallyVisible() && IsUpdateMode() )
|
|
|
|
@@ -1922,12 +1955,17 @@ void ValueSet::InsertSpace( USHORT nItemId, USHORT nPos )
|
|
|
|
|
|
|
|
|
|
void ValueSet::RemoveItem( USHORT nItemId )
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos == VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
delete mpImpl->mpItemList->Remove( nPos );
|
|
|
|
|
if ( nPos < mpImpl->mpItemList->size() ) {
|
|
|
|
|
ValueItemList::iterator it = mpImpl->mpItemList->begin();
|
|
|
|
|
::std::advance( it, nPos );
|
|
|
|
|
delete *it;
|
|
|
|
|
mpImpl->mpItemList->erase( it );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Variablen zuruecksetzen
|
|
|
|
|
if ( (mnHighItemId == nItemId) || (mnSelItemId == nItemId) )
|
|
|
|
@@ -1950,9 +1988,9 @@ void ValueSet::CopyItems( const ValueSet& rValueSet )
|
|
|
|
|
{
|
|
|
|
|
ImplDeleteItems();
|
|
|
|
|
|
|
|
|
|
ValueSetItem* pItem = rValueSet.mpImpl->mpItemList->First();
|
|
|
|
|
while ( pItem )
|
|
|
|
|
for ( size_t i = 0, n = rValueSet.mpImpl->mpItemList->size(); i < n; ++i )
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = (*rValueSet.mpImpl->mpItemList)[ i ];
|
|
|
|
|
ValueSetItem* pNewItem = new ValueSetItem( *this );
|
|
|
|
|
|
|
|
|
|
pNewItem->mnId = pItem->mnId;
|
|
|
|
@@ -1964,9 +2002,7 @@ void ValueSet::CopyItems( const ValueSet& rValueSet )
|
|
|
|
|
pNewItem->mpData = pItem->mpData;
|
|
|
|
|
pNewItem->maRect = pItem->maRect;
|
|
|
|
|
pNewItem->mpxAcc = NULL;
|
|
|
|
|
|
|
|
|
|
mpImpl->mpItemList->Insert( pNewItem );
|
|
|
|
|
pItem = rValueSet.mpImpl->mpItemList->Next();
|
|
|
|
|
mpImpl->mpItemList->push_back( pNewItem );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Variablen zuruecksetzen
|
|
|
|
@@ -2003,43 +2039,36 @@ void ValueSet::Clear()
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
USHORT ValueSet::GetItemCount() const
|
|
|
|
|
size_t ValueSet::GetItemCount() const
|
|
|
|
|
{
|
|
|
|
|
return (USHORT)mpImpl->mpItemList->Count();
|
|
|
|
|
return mpImpl->mpItemList->size();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
USHORT ValueSet::GetItemPos( USHORT nItemId ) const
|
|
|
|
|
size_t ValueSet::GetItemPos( USHORT nItemId ) const
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->First();
|
|
|
|
|
while ( pItem )
|
|
|
|
|
{
|
|
|
|
|
if ( pItem->mnId == nItemId )
|
|
|
|
|
return (USHORT)mpImpl->mpItemList->GetCurPos();
|
|
|
|
|
pItem = mpImpl->mpItemList->Next();
|
|
|
|
|
for ( size_t i = 0, n = mpImpl->mpItemList->size(); i < n; ++i ) {
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ i ];
|
|
|
|
|
if ( pItem->mnId == nItemId ) {
|
|
|
|
|
return i;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return VALUESET_ITEM_NOTFOUND;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
USHORT ValueSet::GetItemId( USHORT nPos ) const
|
|
|
|
|
USHORT ValueSet::GetItemId( size_t nPos ) const
|
|
|
|
|
{
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( nPos );
|
|
|
|
|
|
|
|
|
|
if ( pItem )
|
|
|
|
|
return pItem->mnId;
|
|
|
|
|
else
|
|
|
|
|
return 0;
|
|
|
|
|
return ( nPos < mpImpl->mpItemList->size() ) ? (*mpImpl->mpItemList)[ nPos ]->mnId : 0 ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
USHORT ValueSet::GetItemId( const Point& rPos ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nItemPos = ImplGetItem( rPos );
|
|
|
|
|
size_t nItemPos = ImplGetItem( rPos );
|
|
|
|
|
if ( nItemPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return GetItemId( nItemPos );
|
|
|
|
|
|
|
|
|
@@ -2050,10 +2079,10 @@ USHORT ValueSet::GetItemId( const Point& rPos ) const
|
|
|
|
|
|
|
|
|
|
Rectangle ValueSet::GetItemRect( USHORT nItemId ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return mpImpl->mpItemList->GetObject( nPos )->maRect;
|
|
|
|
|
return (*mpImpl->mpItemList)[ nPos ]->maRect;
|
|
|
|
|
else
|
|
|
|
|
return Rectangle();
|
|
|
|
|
}
|
|
|
|
@@ -2134,14 +2163,14 @@ void ValueSet::SetFirstLine( USHORT nNewLine )
|
|
|
|
|
|
|
|
|
|
void ValueSet::SelectItem( USHORT nItemId )
|
|
|
|
|
{
|
|
|
|
|
USHORT nItemPos = 0;
|
|
|
|
|
size_t nItemPos = 0;
|
|
|
|
|
|
|
|
|
|
if ( nItemId )
|
|
|
|
|
{
|
|
|
|
|
nItemPos = GetItemPos( nItemId );
|
|
|
|
|
if ( nItemPos == VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return;
|
|
|
|
|
if ( mpImpl->mpItemList->GetObject( nItemPos )->meType == VALUESETITEM_SPACE )
|
|
|
|
|
if ( (*mpImpl->mpItemList)[ nItemPos ]->meType == VALUESETITEM_SPACE )
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2197,12 +2226,12 @@ void ValueSet::SelectItem( USHORT nItemId )
|
|
|
|
|
// focus event (deselect)
|
|
|
|
|
if( nOldItem )
|
|
|
|
|
{
|
|
|
|
|
const USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
const size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
{
|
|
|
|
|
ValueItemAcc* pItemAcc = ValueItemAcc::getImplementation(
|
|
|
|
|
mpImpl->mpItemList->GetObject( nPos )->GetAccessible( mpImpl->mbIsTransientChildrenDisabled ) );
|
|
|
|
|
(*mpImpl->mpItemList)[ nPos ]->GetAccessible( mpImpl->mbIsTransientChildrenDisabled ) );
|
|
|
|
|
|
|
|
|
|
if( pItemAcc )
|
|
|
|
|
{
|
|
|
|
@@ -2223,11 +2252,11 @@ void ValueSet::SelectItem( USHORT nItemId )
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// focus event (select)
|
|
|
|
|
const USHORT nPos = GetItemPos( mnSelItemId );
|
|
|
|
|
const size_t nPos = GetItemPos( mnSelItemId );
|
|
|
|
|
|
|
|
|
|
ValueSetItem* pItem;
|
|
|
|
|
if( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
pItem = mpImpl->mpItemList->GetObject(nPos);
|
|
|
|
|
pItem = (*mpImpl->mpItemList)[ nPos ];
|
|
|
|
|
else
|
|
|
|
|
pItem = mpNoneItem;
|
|
|
|
|
|
|
|
|
@@ -2275,20 +2304,20 @@ void ValueSet::SetNoSelection()
|
|
|
|
|
|
|
|
|
|
void ValueSet::SetItemBits( USHORT nItemId, USHORT nItemBits )
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
mpImpl->mpItemList->GetObject( nPos )->mnBits = nItemBits;
|
|
|
|
|
(*mpImpl->mpItemList)[ nPos ]->mnBits = nItemBits;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
USHORT ValueSet::GetItemBits( USHORT nItemId ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return mpImpl->mpItemList->GetObject( nPos )->mnBits;
|
|
|
|
|
return (*mpImpl->mpItemList)[ nPos ]->mnBits;
|
|
|
|
|
else
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@@ -2297,12 +2326,12 @@ USHORT ValueSet::GetItemBits( USHORT nItemId ) const
|
|
|
|
|
|
|
|
|
|
void ValueSet::SetItemImage( USHORT nItemId, const Image& rImage )
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos == VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( nPos );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ nPos ];
|
|
|
|
|
pItem->meType = VALUESETITEM_IMAGE;
|
|
|
|
|
pItem->maImage = rImage;
|
|
|
|
|
|
|
|
|
@@ -2319,10 +2348,10 @@ void ValueSet::SetItemImage( USHORT nItemId, const Image& rImage )
|
|
|
|
|
|
|
|
|
|
Image ValueSet::GetItemImage( USHORT nItemId ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return mpImpl->mpItemList->GetObject( nPos )->maImage;
|
|
|
|
|
return (*mpImpl->mpItemList)[ nPos ]->maImage;
|
|
|
|
|
else
|
|
|
|
|
return Image();
|
|
|
|
|
}
|
|
|
|
@@ -2331,12 +2360,12 @@ Image ValueSet::GetItemImage( USHORT nItemId ) const
|
|
|
|
|
|
|
|
|
|
void ValueSet::SetItemColor( USHORT nItemId, const Color& rColor )
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos == VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( nPos );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ nPos ];
|
|
|
|
|
pItem->meType = VALUESETITEM_COLOR;
|
|
|
|
|
pItem->maColor = rColor;
|
|
|
|
|
|
|
|
|
@@ -2353,10 +2382,10 @@ void ValueSet::SetItemColor( USHORT nItemId, const Color& rColor )
|
|
|
|
|
|
|
|
|
|
Color ValueSet::GetItemColor( USHORT nItemId ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return mpImpl->mpItemList->GetObject( nPos )->maColor;
|
|
|
|
|
return (*mpImpl->mpItemList)[ nPos ]->maColor;
|
|
|
|
|
else
|
|
|
|
|
return Color();
|
|
|
|
|
}
|
|
|
|
@@ -2365,12 +2394,12 @@ Color ValueSet::GetItemColor( USHORT nItemId ) const
|
|
|
|
|
|
|
|
|
|
void ValueSet::SetItemData( USHORT nItemId, void* pData )
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos == VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( nPos );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ nPos ];
|
|
|
|
|
pItem->mpData = pData;
|
|
|
|
|
|
|
|
|
|
if ( pItem->meType == VALUESETITEM_USERDRAW )
|
|
|
|
@@ -2389,10 +2418,10 @@ void ValueSet::SetItemData( USHORT nItemId, void* pData )
|
|
|
|
|
|
|
|
|
|
void* ValueSet::GetItemData( USHORT nItemId ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return mpImpl->mpItemList->GetObject( nPos )->mpData;
|
|
|
|
|
return (*mpImpl->mpItemList)[ nPos ]->mpData;
|
|
|
|
|
else
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
@@ -2401,13 +2430,13 @@ void* ValueSet::GetItemData( USHORT nItemId ) const
|
|
|
|
|
|
|
|
|
|
void ValueSet::SetItemText( USHORT nItemId, const XubString& rText )
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos == VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ValueSetItem* pItem = mpImpl->mpItemList->GetObject( nPos );
|
|
|
|
|
ValueSetItem* pItem = (*mpImpl->mpItemList)[ nPos ];
|
|
|
|
|
|
|
|
|
|
// Remember old and new name for accessibility event.
|
|
|
|
|
::com::sun::star::uno::Any aOldName, aNewName;
|
|
|
|
@@ -2444,10 +2473,10 @@ void ValueSet::SetItemText( USHORT nItemId, const XubString& rText )
|
|
|
|
|
|
|
|
|
|
XubString ValueSet::GetItemText( USHORT nItemId ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nPos = GetItemPos( nItemId );
|
|
|
|
|
size_t nPos = GetItemPos( nItemId );
|
|
|
|
|
|
|
|
|
|
if ( nPos != VALUESET_ITEM_NOTFOUND )
|
|
|
|
|
return mpImpl->mpItemList->GetObject( nPos )->maText;
|
|
|
|
|
return (*mpImpl->mpItemList)[ nPos ]->maText;
|
|
|
|
|
else
|
|
|
|
|
return XubString();
|
|
|
|
|
}
|
|
|
|
@@ -2547,13 +2576,13 @@ BOOL ValueSet::StartDrag( const CommandEvent& rCEvt, Region& rRegion )
|
|
|
|
|
Size ValueSet::CalcWindowSizePixel( const Size& rItemSize, USHORT nDesireCols,
|
|
|
|
|
USHORT nDesireLines )
|
|
|
|
|
{
|
|
|
|
|
long nCalcCols = (long)nDesireCols;
|
|
|
|
|
long nCalcLines = (long)nDesireLines;
|
|
|
|
|
size_t nCalcCols = nDesireCols;
|
|
|
|
|
size_t nCalcLines = nDesireLines;
|
|
|
|
|
|
|
|
|
|
if ( !nCalcCols )
|
|
|
|
|
{
|
|
|
|
|
if ( mnUserCols )
|
|
|
|
|
nCalcCols = (long)mnUserCols;
|
|
|
|
|
nCalcCols = mnUserCols;
|
|
|
|
|
else
|
|
|
|
|
nCalcCols = 1;
|
|
|
|
|
}
|
|
|
|
@@ -2568,8 +2597,8 @@ Size ValueSet::CalcWindowSizePixel( const Size& rItemSize, USHORT nDesireCols,
|
|
|
|
|
nCalcLines = mnUserVisLines;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
nCalcLines = (long)mpImpl->mpItemList->Count() / nCalcCols;
|
|
|
|
|
if ( mpImpl->mpItemList->Count() % nCalcCols )
|
|
|
|
|
nCalcLines = mpImpl->mpItemList->size() / nCalcCols;
|
|
|
|
|
if ( mpImpl->mpItemList->size() % nCalcCols )
|
|
|
|
|
nCalcLines++;
|
|
|
|
|
else if ( !nCalcLines )
|
|
|
|
|
nCalcLines = 1;
|
|
|
|
@@ -2679,7 +2708,7 @@ USHORT ValueSet::ShowDropPos( const Point& rPos )
|
|
|
|
|
ImplScroll( rPos );
|
|
|
|
|
|
|
|
|
|
// DropPosition ermitteln
|
|
|
|
|
USHORT nPos = ImplGetItem( rPos, TRUE );
|
|
|
|
|
size_t nPos = ImplGetItem( rPos, TRUE );
|
|
|
|
|
if ( nPos == VALUESET_ITEM_NONEITEM )
|
|
|
|
|
nPos = 0;
|
|
|
|
|
else if ( nPos == VALUESET_ITEM_NOTFOUND )
|
|
|
|
@@ -2689,12 +2718,12 @@ USHORT ValueSet::ShowDropPos( const Point& rPos )
|
|
|
|
|
aOutSize.Height() = mnTextOffset;
|
|
|
|
|
if ( (rPos.X() >= 0) && (rPos.X() < aOutSize.Width()) &&
|
|
|
|
|
(rPos.Y() >= 0) && (rPos.Y() < aOutSize.Height()) )
|
|
|
|
|
nPos = (USHORT)mpImpl->mpItemList->Count();
|
|
|
|
|
nPos = mpImpl->mpItemList->size();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// Im letzten viertel, dann wird ein Item spaeter eingefuegt
|
|
|
|
|
Rectangle aRect = mpImpl->mpItemList->GetObject( nPos )->maRect;
|
|
|
|
|
Rectangle aRect = (*mpImpl->mpItemList)[ nPos ]->maRect;
|
|
|
|
|
if ( rPos.X() > aRect.Left()+aRect.GetWidth()-(aRect.GetWidth()/4) )
|
|
|
|
|
nPos++;
|
|
|
|
|
}
|
|
|
|
|