openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arie...@apache.org
Subject svn commit: r1417846 - in /openoffice/trunk/main/vcl: inc/vcl/status.hxx source/window/status.cxx
Date Thu, 06 Dec 2012 13:27:44 GMT
Author: arielch
Date: Thu Dec  6 13:27:43 2012
New Revision: 1417846

URL: http://svn.apache.org/viewvc?rev=1417846&view=rev
Log:
#i121442# - Allow redrawing a single status bar item

A StatusbarController that draws its status bar item may need to trigger
a repainting of its item when the feature state changes. Currently, the
only way to trigger this redraw is by changing the item text or the item
data, so that the vcl implementation calls ImplDrawItem; this is rather
implementation-specific.

Modified:
    openoffice/trunk/main/vcl/inc/vcl/status.hxx
    openoffice/trunk/main/vcl/source/window/status.cxx

Modified: openoffice/trunk/main/vcl/inc/vcl/status.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/vcl/inc/vcl/status.hxx?rev=1417846&r1=1417845&r2=1417846&view=diff
==============================================================================
--- openoffice/trunk/main/vcl/inc/vcl/status.hxx (original)
+++ openoffice/trunk/main/vcl/inc/vcl/status.hxx Thu Dec  6 13:27:43 2012
@@ -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();
 

Modified: openoffice/trunk/main/vcl/source/window/status.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/vcl/source/window/status.cxx?rev=1417846&r1=1417845&r2=1417846&view=diff
==============================================================================
--- openoffice/trunk/main/vcl/source/window/status.cxx (original)
+++ openoffice/trunk/main/vcl/source/window/status.cxx Thu Dec  6 13:27:43 2012
@@ -1439,6 +1439,25 @@ void StatusBar::SetItemData( sal_uInt16 
 	}
 }
 
+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



Mime
View raw message