diff options
author | Matteo Casalin <matteo.casalin@gmx.com> | 2012-02-13 21:48:44 +0100 |
---|---|---|
committer | Matteo Casalin <matteo.casalin@gmx.com> | 2012-02-17 18:57:47 +0100 |
commit | e0cdd2d72da6f6c4f1605fc210ba45f5b9a41c35 (patch) | |
tree | d310de59fa288039499fbef5abdda38aa8a15dac /svtools | |
parent | ff3ddcfb73188e17a266d123d310b118ce4f4abe (diff) |
ValueSet: factor out duplicated code in InsertItem
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/inc/svtools/valueset.hxx | 1 | ||||
-rw-r--r-- | svtools/source/control/valueset.cxx | 79 |
2 files changed, 16 insertions, 64 deletions
diff --git a/svtools/inc/svtools/valueset.hxx b/svtools/inc/svtools/valueset.hxx index 8cf463c84ca2..b6e0f2f6d974 100644 --- a/svtools/inc/svtools/valueset.hxx +++ b/svtools/inc/svtools/valueset.hxx @@ -268,6 +268,7 @@ private: SVT_DLLPRIVATE ValueSetItem* ImplGetFirstItem(); SVT_DLLPRIVATE sal_uInt16 ImplGetVisibleItemCount() const; SVT_DLLPRIVATE ValueSetItem* ImplGetVisibleItem( sal_uInt16 nVisiblePos ); + SVT_DLLPRIVATE void ImplInsertItem( ValueSetItem *const pItem, const size_t nPos ); SVT_DLLPRIVATE void ImplFireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue ); SVT_DLLPRIVATE bool ImplHasAccessibleListeners(); SVT_DLLPRIVATE void ImplTracking( const Point& rPos, bool bRepeat ); diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx index decbc99ba31d..f655517e5239 100644 --- a/svtools/source/control/valueset.cxx +++ b/svtools/source/control/valueset.cxx @@ -1655,50 +1655,22 @@ void ValueSet::UserDraw( const UserDrawEvent& ) void ValueSet::InsertItem( sal_uInt16 nItemId, const Image& rImage, size_t nPos ) { - DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" ); - DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND, - "ValueSet::InsertItem(): ItemId already exists" ); - ValueSetItem* pItem = new ValueSetItem( *this ); pItem->mnId = nItemId; pItem->meType = VALUESETITEM_IMAGE; pItem->maImage = rImage; - if ( nPos < mItemList.size() ) { - ValueItemList::iterator it = mItemList.begin(); - ::std::advance( it, nPos ); - mItemList.insert( it, pItem ); - } else { - mItemList.push_back( pItem ); - } - - mbFormat = true; - if ( IsReallyVisible() && IsUpdateMode() ) - Invalidate(); + ImplInsertItem( pItem, nPos ); } // ----------------------------------------------------------------------- void ValueSet::InsertItem( sal_uInt16 nItemId, const Color& rColor, size_t nPos ) { - DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" ); - DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND, - "ValueSet::InsertItem(): ItemId already exists" ); - ValueSetItem* pItem = new ValueSetItem( *this ); pItem->mnId = nItemId; pItem->meType = VALUESETITEM_COLOR; pItem->maColor = rColor; - if ( nPos < mItemList.size() ) { - ValueItemList::iterator it = mItemList.begin(); - ::std::advance( it, nPos ); - mItemList.insert( it, pItem ); - } else { - mItemList.push_back( pItem ); - } - - mbFormat = true; - if ( IsReallyVisible() && IsUpdateMode() ) - Invalidate(); + ImplInsertItem( pItem, nPos ); } // ----------------------------------------------------------------------- @@ -1706,26 +1678,12 @@ void ValueSet::InsertItem( sal_uInt16 nItemId, const Color& rColor, size_t nPos void ValueSet::InsertItem( sal_uInt16 nItemId, const Image& rImage, const XubString& rText, size_t nPos ) { - DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" ); - DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND, - "ValueSet::InsertItem(): ItemId already exists" ); - ValueSetItem* pItem = new ValueSetItem( *this ); pItem->mnId = nItemId; pItem->meType = VALUESETITEM_IMAGE; pItem->maImage = rImage; pItem->maText = rText; - if ( nPos < mItemList.size() ) { - ValueItemList::iterator it = mItemList.begin(); - ::std::advance( it, nPos ); - mItemList.insert( it, pItem ); - } else { - mItemList.push_back( pItem ); - } - - mbFormat = true; - if ( IsReallyVisible() && IsUpdateMode() ) - Invalidate(); + ImplInsertItem( pItem, nPos ); } // ----------------------------------------------------------------------- @@ -1733,39 +1691,32 @@ void ValueSet::InsertItem( sal_uInt16 nItemId, const Image& rImage, void ValueSet::InsertItem( sal_uInt16 nItemId, const Color& rColor, const XubString& rText, size_t nPos ) { - DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" ); - DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND, - "ValueSet::InsertItem(): ItemId already exists" ); - ValueSetItem* pItem = new ValueSetItem( *this ); pItem->mnId = nItemId; pItem->meType = VALUESETITEM_COLOR; pItem->maColor = rColor; pItem->maText = rText; - if ( nPos < mItemList.size() ) { - ValueItemList::iterator it = mItemList.begin(); - ::std::advance( it, nPos ); - mItemList.insert( it, pItem ); - } else { - mItemList.push_back( pItem ); - } - - mbFormat = true; - if ( IsReallyVisible() && IsUpdateMode() ) - Invalidate(); + ImplInsertItem( pItem, nPos ); } // ----------------------------------------------------------------------- void ValueSet::InsertItem( sal_uInt16 nItemId, size_t nPos ) { - DBG_ASSERT( nItemId, "ValueSet::InsertItem(): ItemId == 0" ); - DBG_ASSERT( GetItemPos( nItemId ) == VALUESET_ITEM_NOTFOUND, - "ValueSet::InsertItem(): ItemId already exists" ); - ValueSetItem* pItem = new ValueSetItem( *this ); pItem->mnId = nItemId; pItem->meType = VALUESETITEM_USERDRAW; + ImplInsertItem( pItem, nPos ); +} + +// ----------------------------------------------------------------------- + +void ValueSet::ImplInsertItem( ValueSetItem *const pItem, const size_t nPos ) +{ + DBG_ASSERT( pItem->mnId, "ValueSet::InsertItem(): ItemId == 0" ); + DBG_ASSERT( GetItemPos( pItem->mnId ) == VALUESET_ITEM_NOTFOUND, + "ValueSet::InsertItem(): ItemId already exists" ); + if ( nPos < mItemList.size() ) { ValueItemList::iterator it = mItemList.begin(); ::std::advance( it, nPos ); |