[Libreoffice-commits] .: Branch 'feature/template-dialog' - sfx2/inc sfx2/source

Rafael Dominguez rdominguez at kemper.freedesktop.org
Wed Jun 13 03:12:14 PDT 2012


 sfx2/inc/sfx2/thumbnailviewitem.hxx       |    1 
 sfx2/source/control/thumbnailview.cxx     |   55 ++++++++++++++++++++++++++----
 sfx2/source/control/thumbnailviewitem.cxx |    1 
 3 files changed, 50 insertions(+), 7 deletions(-)

New commits:
commit 8b1f29815022100e853d6c646838e52f83b4d548
Author: Rafael Dominguez <venccsralph at gmail.com>
Date:   Wed Jun 13 05:42:31 2012 -0430

    Highlight item on mouse hover.
    
    Change-Id: I5f838f045dd4182803820516cfb6b706a6c4fe02

diff --git a/sfx2/inc/sfx2/thumbnailviewitem.hxx b/sfx2/inc/sfx2/thumbnailviewitem.hxx
index f878494..a84e209 100644
--- a/sfx2/inc/sfx2/thumbnailviewitem.hxx
+++ b/sfx2/inc/sfx2/thumbnailviewitem.hxx
@@ -44,6 +44,7 @@ struct ThumbnailViewItem
     sal_uInt16 mnId;
     bool mbVisible;
     bool mbSelected;
+    bool mbHover;
     Image maImage;
     rtl::OUString maText;
     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >* mpxAcc;
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index 44d0f7d..3fcba83 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -322,7 +322,7 @@ void ThumbnailView::DrawItem (ThumbnailViewItem *pItem, const Rectangle &aRect)
 
         maVirDev.DrawRect( aRect );
 
-        if ( pItem->mbSelected )
+        if ( pItem->mbSelected || pItem->mbHover )
         {
             Rectangle aSelRect = aRect;
             Color aDoubleColor( rStyleSettings.GetHighlightColor() );
@@ -992,7 +992,10 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt )
                     if ( rMEvt.GetClicks() == 1 )
                     {
                         pItem->mbSelected = !pItem->mbSelected;
-                        DrawItem(pItem,GetItemRect(pItem->mnId));
+
+                        if (!pItem->mbHover)
+                            DrawItem(pItem,GetItemRect(pItem->mnId));
+
                         //StartTracking( STARTTRACK_SCROLLREPEAT );
                     }
                     else if ( rMEvt.GetClicks() == 2 )
@@ -1014,6 +1017,32 @@ void ThumbnailView::MouseButtonUp( const MouseEvent& rMEvt )
 
 void ThumbnailView::MouseMove( const MouseEvent& rMEvt )
 {
+    ThumbnailViewItem* pItem = ImplGetItem( ImplGetItem( rMEvt.GetPosPixel() ) );
+
+    if (pItem)
+    {
+        if (mnHighItemId != pItem->mnId)
+        {
+            size_t nPos = GetItemPos(mnHighItemId);
+
+            if (nPos != THUMBNAILVIEW_ITEM_NOTFOUND)
+            {
+                ThumbnailViewItem *pOld = mItemList[nPos];
+
+                pOld->mbHover = false;
+
+                if (!pOld->mbSelected)
+                    DrawItem(pOld,GetItemRect(pOld->mnId));
+            }
+
+            mnHighItemId = pItem->mnId;
+            pItem->mbHover = true;
+
+            if (!pItem->mbSelected)
+                DrawItem(pItem,GetItemRect(pItem->mnId));
+        }
+    }
+
     Control::MouseMove( rMEvt );
 }
 
@@ -1173,7 +1202,6 @@ void ThumbnailView::Paint( const Rectangle& )
 
 void ThumbnailView::GetFocus()
 {
-    ImplDrawSelect();
     Control::GetFocus();
 
     // Tell the accessible object that we got the focus.
@@ -1184,10 +1212,23 @@ void ThumbnailView::GetFocus()
 
 void ThumbnailView::LoseFocus()
 {
-    if ( mbNoSelection && mnSelItemId )
-        ImplHideSelect( mnSelItemId );
-    else
-        HideFocus();
+    if (mnHighItemId)
+    {
+        size_t nPos = GetItemPos(mnHighItemId);
+
+        if (nPos != THUMBNAILVIEW_ITEM_NOTFOUND)
+        {
+            ThumbnailViewItem *pOld = mItemList[nPos];
+
+            pOld->mbHover = false;
+
+            if (!pOld->mbSelected)
+                DrawItem(pOld,GetItemRect(pOld->mnId));
+        }
+
+        mnHighItemId = 0;
+    }
+
     Control::LoseFocus();
 
     // Tell the accessible object that we lost the focus.
diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx
index 1d9aa07..915ee5a 100644
--- a/sfx2/source/control/thumbnailviewitem.cxx
+++ b/sfx2/source/control/thumbnailviewitem.cxx
@@ -38,6 +38,7 @@ ThumbnailViewItem::ThumbnailViewItem( ThumbnailView& rParent )
     , mnId(0)
     , mbVisible(true)
     , mbSelected(false)
+    , mbHover(false)
     , mpxAcc(NULL)
 {
 }


More information about the Libreoffice-commits mailing list