[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