icon-themes/galaxy/sfx2/res/select.png |binary sfx2/inc/sfx2/thumbnailviewitem.hxx | 6 ++ sfx2/source/control/thumbnailview.cxx | 70 +++++++++++++++++++++++++----- sfx2/source/control/thumbnailviewitem.cxx | 17 +++++++ sfx2/source/doc/templatedlg.src | 2 5 files changed, 84 insertions(+), 11 deletions(-)
New commits: commit e10392bb8c09c3a8e9b99f37d85f0814af372242 Author: Rafael Dominguez <[email protected]> Date: Mon Jun 18 18:51:52 2012 -0430 Set selection mode button image. Change-Id: I3fb2592d61622a0d3f07d70cfc26c10f4f2ef2fe diff --git a/icon-themes/galaxy/sfx2/res/select.png b/icon-themes/galaxy/sfx2/res/select.png new file mode 100644 index 0000000..9c7dba0 Binary files /dev/null and b/icon-themes/galaxy/sfx2/res/select.png differ diff --git a/sfx2/source/doc/templatedlg.src b/sfx2/source/doc/templatedlg.src index fa23895..6771611 100644 --- a/sfx2/source/doc/templatedlg.src +++ b/sfx2/source/doc/templatedlg.src @@ -70,7 +70,7 @@ ModalDialog DLG_TEMPLATE_MANAGER ButtonImage = Image { - ImageBitmap = Bitmap { File = "signet.png" ; }; + ImageBitmap = Bitmap { File = "select.png" ; }; }; }; commit ecf97d7f60dc8dc0b3ce51300023bdee3e0e1e49 Author: Rafael Dominguez <[email protected]> Date: Mon Jun 18 18:11:06 2012 -0430 Paint item children control when painting an item. Change-Id: I7978e4c346d1a72b462d9916b7cdafc718a42bdc diff --git a/sfx2/inc/sfx2/thumbnailviewitem.hxx b/sfx2/inc/sfx2/thumbnailviewitem.hxx index f8c6c0f..7cc6252 100644 --- a/sfx2/inc/sfx2/thumbnailviewitem.hxx +++ b/sfx2/inc/sfx2/thumbnailviewitem.hxx @@ -89,6 +89,8 @@ struct ThumbnailViewItem bool isInsideTitle (const Point &pt) const; + void Paint (const Rectangle &aRect); + private: DECL_LINK (OnClick, CheckBox *); diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 64b19ed..c8a2959 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -406,6 +406,8 @@ void ThumbnailView::DrawItem (ThumbnailViewItem *pItem) *this, aNewViewInfos ); pProcessor->process(aSeq); + + pItem->Paint(aRect); } } diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx index 873fb19..f86bfd0 100644 --- a/sfx2/source/control/thumbnailviewitem.cxx +++ b/sfx2/source/control/thumbnailviewitem.cxx @@ -149,6 +149,11 @@ bool ThumbnailViewItem::isInsideTitle (const Point &pt) const return aRect.IsInside(pt); } +void ThumbnailViewItem::Paint (const Rectangle &aRect) +{ + mpSelectBox->Paint(aRect); +} + IMPL_LINK (ThumbnailViewItem, OnClick, CheckBox*, ) { mbSelected = mpSelectBox->GetState() == STATE_CHECK; commit 9dea0121b8f9c56ec172847ffa14fd353eda7faf Author: Rafael Dominguez <[email protected]> Date: Mon Jun 18 17:38:52 2012 -0430 Control item visibility through the object instead of doing it directly. Change-Id: Ib70adb45d9ba5e1294abbe6b33b31be50cf554db diff --git a/sfx2/inc/sfx2/thumbnailviewitem.hxx b/sfx2/inc/sfx2/thumbnailviewitem.hxx index 730c4aa..f8c6c0f 100644 --- a/sfx2/inc/sfx2/thumbnailviewitem.hxx +++ b/sfx2/inc/sfx2/thumbnailviewitem.hxx @@ -56,6 +56,10 @@ struct ThumbnailViewItem ~ThumbnailViewItem (); + bool isVisible () const { return mbVisible; } + + void show (bool bVisible); + bool isSelected () const { return mbSelected; } void setSelection (bool state); diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 3e056a1..64b19ed 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -256,7 +256,7 @@ void ThumbnailView::ImplDeleteItems() for ( size_t i = 0; i < n; ++i ) { ThumbnailViewItem *const pItem = mItemList[i]; - if ( pItem->mbVisible && ImplHasAccessibleListeners() ) + if ( pItem->isVisible() && ImplHasAccessibleListeners() ) { ::com::sun::star::uno::Any aOldAny, aNewAny; @@ -516,7 +516,7 @@ void ThumbnailView::CalculateItemPositions () for ( size_t i = 0; i < nItemCount; i++ ) { - mItemList[i]->mbVisible = false; + mItemList[i]->show(false); } if ( mpScrBar ) @@ -575,7 +575,7 @@ void ThumbnailView::CalculateItemPositions () if ( (i >= nFirstItem) && (i < nLastItem) ) { - if( !pItem->mbVisible && ImplHasAccessibleListeners() ) + if( !pItem->isVisible() && ImplHasAccessibleListeners() ) { ::com::sun::star::uno::Any aOldAny, aNewAny; @@ -583,7 +583,7 @@ void ThumbnailView::CalculateItemPositions () ImplFireAccessibleEvent( ::com::sun::star::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny ); } - pItem->mbVisible = true; + pItem->show(true); pItem->setDrawArea(Rectangle( Point(x,y), Size(mnItemWidth, mnItemHeight) )); pItem->calculateItemsPosition(); @@ -597,7 +597,7 @@ void ThumbnailView::CalculateItemPositions () } else { - if( pItem->mbVisible && ImplHasAccessibleListeners() ) + if( pItem->isVisible() && ImplHasAccessibleListeners() ) { ::com::sun::star::uno::Any aOldAny, aNewAny; @@ -605,7 +605,7 @@ void ThumbnailView::CalculateItemPositions () ImplFireAccessibleEvent( ::com::sun::star::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny ); } - pItem->mbVisible = false; + pItem->show(false); } } @@ -720,7 +720,7 @@ sal_uInt16 ThumbnailView::ImplGetVisibleItemCount() const for ( size_t n = 0; n < nItemCount; ++n ) { - if ( mItemList[n]->mbVisible ) + if ( mItemList[n]->isVisible() ) ++nRet; } @@ -735,7 +735,7 @@ ThumbnailViewItem* ThumbnailView::ImplGetVisibleItem( sal_uInt16 nVisiblePos ) { ThumbnailViewItem *const pItem = mItemList[n]; - if ( pItem->mbVisible && !nVisiblePos-- ) + if ( pItem->isVisible() && !nVisiblePos-- ) return pItem; } @@ -791,7 +791,7 @@ IMPL_LINK( ThumbnailView,ImplScrollHdl, ScrollBar*, pScrollBar ) if ( (i >= nFirstItem) && (i < nLastItem) ) { - pItem->mbVisible = true; + pItem->show(true); pItem->setDrawArea(Rectangle( Point(x,y), Size(mnItemWidth, mnItemHeight) )); pItem->calculateItemsPosition(); @@ -805,7 +805,7 @@ IMPL_LINK( ThumbnailView,ImplScrollHdl, ScrollBar*, pScrollBar ) } else { - pItem->mbVisible = false; + pItem->show(false); } } @@ -1704,8 +1704,10 @@ void ThumbnailView::setSelectionMode (bool mode) for (size_t i = 0, n = mItemList.size(); i < n; ++i) { - if (mItemList[i]->mbVisible) - mItemList[i]->setSelectionMode(mode); + mItemList[i]->setSelectionMode(mode); + + if (mItemList[i]->isVisible()) + DrawItem(mItemList[i]); } } diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx index f5fa81f..873fb19 100644 --- a/sfx2/source/control/thumbnailviewitem.cxx +++ b/sfx2/source/control/thumbnailviewitem.cxx @@ -60,6 +60,18 @@ ThumbnailViewItem::~ThumbnailViewItem() delete mpSelectBox; } +void ThumbnailViewItem::show (bool bVisible) +{ + mbVisible = bVisible; + + if (mbMode) + mpSelectBox->Show(bVisible); + else if (!bVisible) + mpSelectBox->Show(bVisible); + else if (mbSelected) + mpSelectBox->Show(bVisible); +} + void ThumbnailViewItem::setSelection (bool state) { mbSelected = state; commit efd824cdde1d329181a2ac6da450d1c62673ddba Author: Rafael Dominguez <[email protected]> Date: Sun Jun 17 22:43:13 2012 -0430 Recalculate item position when scrolling. Change-Id: I546119ab9d4ac21c86e5b0c98fa33608328e1ab3 diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 33f8d13..3e056a1 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -763,6 +763,52 @@ IMPL_LINK( ThumbnailView,ImplScrollHdl, ScrollBar*, pScrollBar ) { mnFirstLine = nNewFirstLine; + // Recalculate item positions + Size aWinSize = GetOutputSizePixel(); + size_t nItemCount = mItemList.size(); + + // calculate offsets + long nStartX = 0; + long nStartY = 0; + + // calculate items + long x = nStartX; + long y = nStartY; + + // draw items + sal_uLong nFirstItem = mnFirstLine * mnCols; + sal_uLong nLastItem = nFirstItem + (mnVisLines * mnCols); + + // If want also draw parts of items in the last line, + // then we add one more line if parts of these line are + // visible + if ( y+(mnVisLines*(mnItemHeight+mnSpacing)) < aWinSize.Height() ) + nLastItem += mnCols; + + for ( size_t i = 0; i < nItemCount; i++ ) + { + ThumbnailViewItem *const pItem = mItemList[i]; + + if ( (i >= nFirstItem) && (i < nLastItem) ) + { + pItem->mbVisible = true; + pItem->setDrawArea(Rectangle( Point(x,y), Size(mnItemWidth, mnItemHeight) )); + pItem->calculateItemsPosition(); + + if ( !((i+1) % mnCols) ) + { + x = nStartX; + y += mnItemHeight+mnSpacing; + } + else + x += mnItemWidth+mnSpacing; + } + else + { + pItem->mbVisible = false; + } + } + if ( IsReallyVisible() && IsUpdateMode() ) Invalidate(); } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
