summaryrefslogtreecommitdiff
path: root/sfx2/source/control/recentdocsview.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-05-13 11:10:53 +0900
committerTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-05-13 13:57:46 +0900
commit822ee8a3395588d2022d3d560ed4e1ed34c369a5 (patch)
treea4a4618e4e9807ab3e2c99c2bb3c0ffcf294273a /sfx2/source/control/recentdocsview.cxx
parentf61c275f091de4b8b66685dbb5e7f948cc51c158 (diff)
refactor RecentDocsView to use RenderContext
Change-Id: I0fd6db7c7eb0481f99639ec7520dc01724fc0db8
Diffstat (limited to 'sfx2/source/control/recentdocsview.cxx')
-rw-r--r--sfx2/source/control/recentdocsview.cxx67
1 files changed, 33 insertions, 34 deletions
diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx
index 5437aff4bcab..5848045d9258 100644
--- a/sfx2/source/control/recentdocsview.cxx
+++ b/sfx2/source/control/recentdocsview.cxx
@@ -110,11 +110,11 @@ bool RecentDocsView::isAcceptedFile(const OUString &rURL) const
(mnFileTypes & TYPE_OTHER && typeMatchesExtension(TYPE_OTHER, aExt));
}
-void RecentDocsView::SetMessageFont()
+void RecentDocsView::SetMessageFont(vcl::RenderContext& rRenderContext)
{
- vcl::Font aFont(GetFont());
- aFont.SetHeight(aFont.GetHeight()*1.3);
- SetFont(aFont);
+ vcl::Font aFont(rRenderContext.GetFont());
+ aFont.SetHeight(aFont.GetHeight() * 1.3);
+ rRenderContext.SetFont(aFont);
}
BitmapEx RecentDocsView::getDefaultThumbnail(const OUString &rURL)
@@ -193,19 +193,6 @@ void RecentDocsView::Reload()
CalculateItemPositions();
Invalidate();
-
- // Set preferred width
- if (mFilteredItemList.empty())
- {
- vcl::Font aOldFont(GetFont());
- SetMessageFont();
- set_width_request(std::max(GetTextWidth(maWelcomeLine1), GetTextWidth(maWelcomeLine2)));
- SetFont(aOldFont);
- }
- else
- {
- set_width_request(mnTextHeight + mnItemMaxSize + 2*mnItemPadding);
- }
}
void RecentDocsView::MouseButtonDown( const MouseEvent& rMEvt )
@@ -251,19 +238,33 @@ void RecentDocsView::OnItemDblClicked(ThumbnailViewItem *pItem)
void RecentDocsView::Paint(vcl::RenderContext& rRenderContext, const Rectangle &aRect)
{
- if ( mItemList.size() == 0 )
+ // Set preferred width
+ if (mFilteredItemList.empty())
+ {
+ rRenderContext.Push(PushFlags::FONT);
+ SetMessageFont(rRenderContext);
+ set_width_request(std::max(rRenderContext.GetTextWidth(maWelcomeLine1),
+ rRenderContext.GetTextWidth(maWelcomeLine2)));
+ rRenderContext.Pop();
+ }
+ else
+ {
+ set_width_request(mnTextHeight + mnItemMaxSize + 2 * mnItemPadding);
+ }
+
+ if (mItemList.size() == 0)
{
// No recent files to be shown yet. Show a welcome screen.
- vcl::Font aOldFont(GetFont());
- SetMessageFont();
+ rRenderContext.Push(PushFlags::FONT);
+ SetMessageFont(rRenderContext);
- long nTextHeight = GetTextHeight();
+ long nTextHeight = rRenderContext.GetTextHeight();
- long nTextWidth1 = GetTextWidth(maWelcomeLine1);
- long nTextWidth2 = GetTextWidth(maWelcomeLine2);
+ long nTextWidth1 = rRenderContext.GetTextWidth(maWelcomeLine1);
+ long nTextWidth2 = rRenderContext.GetTextWidth(maWelcomeLine2);
- const Size & rImgSize = maWelcomeImage.GetSizePixel();
- const Size & rSize = GetSizePixel();
+ const Size& rImgSize = maWelcomeImage.GetSizePixel();
+ const Size& rSize = GetSizePixel();
const int nX = (rSize.Width() - rImgSize.Width())/2;
const int nY = (rSize.Height() - 3 * nTextHeight - rImgSize.Height())/2;
@@ -272,14 +273,16 @@ void RecentDocsView::Paint(vcl::RenderContext& rRenderContext, const Rectangle &
Point aStr1Point((rSize.Width() - nTextWidth1)/2, nY + rImgSize.Height() + 0.7 * nTextHeight);
Point aStr2Point((rSize.Width() - nTextWidth2)/2, nY + rImgSize.Height() + 1.7 * nTextHeight);
- DrawImage(aImgPoint, rImgSize, maWelcomeImage, IMAGE_DRAW_SEMITRANSPARENT);
- DrawText(aStr1Point, maWelcomeLine1);
- DrawText(aStr2Point, maWelcomeLine2);
+ rRenderContext.DrawImage(aImgPoint, rImgSize, maWelcomeImage, IMAGE_DRAW_SEMITRANSPARENT);
+ rRenderContext.DrawText(aStr1Point, maWelcomeLine1);
+ rRenderContext.DrawText(aStr2Point, maWelcomeLine2);
- SetFont(aOldFont);
+ rRenderContext.Pop();
}
else
+ {
ThumbnailView::Paint(rRenderContext, aRect);
+ }
}
void RecentDocsView::LoseFocus()
@@ -292,11 +295,7 @@ void RecentDocsView::LoseFocus()
void RecentDocsView::Clear()
{
- vcl::Font aOldFont(GetFont());
- SetMessageFont();
- set_width_request(std::max(GetTextWidth(maWelcomeLine1), GetTextWidth(maWelcomeLine2)));
- SetFont(aOldFont);
-
+ Invalidate();
ThumbnailView::Clear();
}