diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/vcl/status.hxx | 2 | ||||
-rw-r--r-- | vcl/source/window/status.cxx | 19 |
2 files changed, 21 insertions, 0 deletions
diff --git a/vcl/inc/vcl/status.hxx b/vcl/inc/vcl/status.hxx index eed09fe47464..57d081d492b0 100644 --- a/vcl/inc/vcl/status.hxx +++ b/vcl/inc/vcl/status.hxx @@ -147,6 +147,8 @@ public: void HideItems(); sal_Bool AreItemsVisible() const { return mbVisibleItems; } + void RedrawItem( sal_uInt16 nItemId ); + void CopyItems( const StatusBar& rStatusBar ); void Clear(); diff --git a/vcl/source/window/status.cxx b/vcl/source/window/status.cxx index f633e4c7b85b..306cec28d44b 100644 --- a/vcl/source/window/status.cxx +++ b/vcl/source/window/status.cxx @@ -1439,6 +1439,25 @@ void StatusBar::SetItemData( sal_uInt16 nItemId, void* pNewData ) } } +void StatusBar::RedrawItem( sal_uInt16 nItemId ) +{ + if ( mbFormat ) + return; + + sal_uInt16 nPos = GetItemPos( nItemId ); + if ( nPos == STATUSBAR_ITEM_NOTFOUND ) + return; + + ImplStatusItem* pItem = mpItemList->GetObject( nPos ); + if ( pItem && (pItem->mnBits & SIB_USERDRAW) && + pItem->mbVisible && ImplIsItemUpdate() ) + { + Update(); + ImplDrawItem( sal_True, nPos, sal_False, sal_False ); + Flush(); + } +} + // ----------------------------------------------------------------------- void* StatusBar::GetItemData( sal_uInt16 nItemId ) const |