chart2/source/controller/main/ChartWindow.cxx | 6 +- chart2/source/controller/main/ChartWindow.hxx | 4 - include/sfx2/recentdocsview.hxx | 12 ++-- include/vcl/window.hxx | 3 - sc/source/ui/inc/gridwin.hxx | 4 - sc/source/ui/view/gridwin4.cxx | 4 - sd/source/ui/inc/Window.hxx | 2 sd/source/ui/view/sdwindow.cxx | 2 sfx2/source/control/recentdocsview.cxx | 67 ++++++++++++-------------- sw/source/uibase/docvw/edtwin2.cxx | 2 sw/source/uibase/inc/edtwin.hxx | 4 - vcl/source/window/paint.cxx | 34 +++++++------ 12 files changed, 75 insertions(+), 69 deletions(-)
New commits: commit 0ac80267730300f53e2410ffe9c0883f19f656a6 Author: Tomaž Vajngerl <[email protected]> Date: Wed May 13 13:36:14 2015 +0900 add PostPaint and change PrePaint to include RenderContext param. Change-Id: I26e03159fa6115025c6cf376e6ce71443bc98cec diff --git a/chart2/source/controller/main/ChartWindow.cxx b/chart2/source/controller/main/ChartWindow.cxx index c050b5a..57a3066 100644 --- a/chart2/source/controller/main/ChartWindow.cxx +++ b/chart2/source/controller/main/ChartWindow.cxx @@ -93,12 +93,12 @@ void ChartWindow::clear() this->ReleaseMouse(); } -void ChartWindow::PrePaint() +void ChartWindow::PrePaint(vcl::RenderContext& /*rRenderContext*/) { // forward VCLs PrePaint window event to DrawingLayer - if( m_pWindowController ) + if (m_pWindowController) { - m_pWindowController->PrePaint(); + m_pWindowController->PrePaint(); } } diff --git a/chart2/source/controller/main/ChartWindow.hxx b/chart2/source/controller/main/ChartWindow.hxx index d00c2f6..99a0c5f 100644 --- a/chart2/source/controller/main/ChartWindow.hxx +++ b/chart2/source/controller/main/ChartWindow.hxx @@ -42,8 +42,8 @@ public: void clear(); //from base class Window: - virtual void PrePaint() SAL_OVERRIDE; - virtual void Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE; + virtual void PrePaint(vcl::RenderContext& rRenderContext) SAL_OVERRIDE; + virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE; virtual void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE; virtual void MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE; virtual void Tracking( const TrackingEvent& rTEvt ) SAL_OVERRIDE; diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx index d509a55..04cdb0f 100644 --- a/include/vcl/window.hxx +++ b/include/vcl/window.hxx @@ -715,8 +715,9 @@ public: virtual void MouseButtonUp( const MouseEvent& rMEvt ); virtual void KeyInput( const KeyEvent& rKEvt ); virtual void KeyUp( const KeyEvent& rKEvt ); - virtual void PrePaint(); + virtual void PrePaint(vcl::RenderContext& rRenderContext); virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect); + virtual void PostPaint(vcl::RenderContext& rRenderContext); virtual void Erase() SAL_OVERRIDE; virtual void Erase( const Rectangle& rRect ) SAL_OVERRIDE { ::OutputDevice::Erase( rRect ); } diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx index aa683cb..e4bb56a 100644 --- a/sc/source/ui/inc/gridwin.hxx +++ b/sc/source/ui/inc/gridwin.hxx @@ -293,8 +293,8 @@ class ScGridWindow : public vcl::Window, public DropTargetHelper, public DragSou void GetSelectionRects( ::std::vector< Rectangle >& rPixelRects ); protected: - virtual void PrePaint() SAL_OVERRIDE; - virtual void Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE; + virtual void PrePaint(vcl::RenderContext& rRenderContext) SAL_OVERRIDE; + virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE; virtual void GetFocus() SAL_OVERRIDE; virtual void LoseFocus() SAL_OVERRIDE; diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx index 2f291d7..a3e5170 100644 --- a/sc/source/ui/view/gridwin4.cxx +++ b/sc/source/ui/view/gridwin4.cxx @@ -283,7 +283,7 @@ void ScGridWindow::DoInvertRect( const Rectangle& rPixel ) UpdateHeaderOverlay(); // uses aInvertRect } -void ScGridWindow::PrePaint() +void ScGridWindow::PrePaint(vcl::RenderContext& /*rRenderContext*/) { // forward PrePaint to DrawingLayer ScTabViewShell* pTabViewShell = pViewData->GetViewShell(); @@ -292,7 +292,7 @@ void ScGridWindow::PrePaint() { SdrView* pDrawView = pTabViewShell->GetSdrView(); - if(pDrawView) + if (pDrawView) { pDrawView->PrePaint(); } diff --git a/sd/source/ui/inc/Window.hxx b/sd/source/ui/inc/Window.hxx index b26917e..c1cc214 100644 --- a/sd/source/ui/inc/Window.hxx +++ b/sd/source/ui/inc/Window.hxx @@ -171,7 +171,7 @@ protected: bool mbUseDropScroll; virtual void Resize() SAL_OVERRIDE; - virtual void PrePaint() SAL_OVERRIDE; + virtual void PrePaint(vcl::RenderContext& rRenderContext) SAL_OVERRIDE; virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE; virtual void MouseMove(const MouseEvent& rMEvt) SAL_OVERRIDE; virtual void MouseButtonUp(const MouseEvent& rMEvt) SAL_OVERRIDE; diff --git a/sd/source/ui/view/sdwindow.cxx b/sd/source/ui/view/sdwindow.cxx index 84da41d..2cacce0 100644 --- a/sd/source/ui/view/sdwindow.cxx +++ b/sd/source/ui/view/sdwindow.cxx @@ -207,7 +207,7 @@ void Window::Resize() mpViewShell->GetViewFrame()->GetBindings().Invalidate( SID_ATTR_ZOOMSLIDER ); } -void Window::PrePaint() +void Window::PrePaint(vcl::RenderContext& /*rRenderContext*/) { if ( mpViewShell ) mpViewShell->PrePaint(); diff --git a/sw/source/uibase/docvw/edtwin2.cxx b/sw/source/uibase/docvw/edtwin2.cxx index 1b69c0a..67f8570 100644 --- a/sw/source/uibase/docvw/edtwin2.cxx +++ b/sw/source/uibase/docvw/edtwin2.cxx @@ -434,7 +434,7 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt) Window::RequestHelp( rEvt ); } -void SwEditWin::PrePaint() +void SwEditWin::PrePaint(vcl::RenderContext& /*rRenderContext*/) { SwWrtShell* pWrtShell = GetView().GetWrtShellPtr(); diff --git a/sw/source/uibase/inc/edtwin.hxx b/sw/source/uibase/inc/edtwin.hxx index c440054..28ce774 100644 --- a/sw/source/uibase/inc/edtwin.hxx +++ b/sw/source/uibase/inc/edtwin.hxx @@ -186,8 +186,8 @@ friend void PageNumNotify( SwViewShell* pVwSh, protected: virtual void DataChanged( const DataChangedEvent& ) SAL_OVERRIDE; - virtual void PrePaint() SAL_OVERRIDE; - virtual void Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE; + virtual void PrePaint(vcl::RenderContext& rRenderContext) SAL_OVERRIDE; + virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE; virtual void GetFocus() SAL_OVERRIDE; virtual void LoseFocus() SAL_OVERRIDE; diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx index 1afd142..4ba545a 100644 --- a/vcl/source/window/paint.cxx +++ b/vcl/source/window/paint.cxx @@ -51,7 +51,7 @@ private: bool m_bPop; bool m_bRestoreCursor; public: - PaintHelper(vcl::Window *pWindow, sal_uInt16 nPaintFlags); + PaintHelper(vcl::Window* pWindow, sal_uInt16 nPaintFlags); void SetPop() { m_bPop = true; @@ -377,31 +377,31 @@ PaintHelper::~PaintHelper() namespace vcl { -void Window::ImplCallPaint( const vcl::Region* pRegion, sal_uInt16 nPaintFlags ) +void Window::ImplCallPaint(const vcl::Region* pRegion, sal_uInt16 nPaintFlags) { // call PrePaint. PrePaint may add to the invalidate region as well as // other parameters used below. - PrePaint(); + PrePaint(*this); mpWindowImpl->mbPaintFrame = false; - if ( nPaintFlags & IMPL_PAINT_PAINTALLCHILDREN ) + if (nPaintFlags & IMPL_PAINT_PAINTALLCHILDREN) mpWindowImpl->mnPaintFlags |= IMPL_PAINT_PAINT | IMPL_PAINT_PAINTALLCHILDREN | (nPaintFlags & IMPL_PAINT_PAINTALL); - if ( nPaintFlags & IMPL_PAINT_PAINTCHILDREN ) + if (nPaintFlags & IMPL_PAINT_PAINTCHILDREN) mpWindowImpl->mnPaintFlags |= IMPL_PAINT_PAINTCHILDREN; - if ( nPaintFlags & IMPL_PAINT_ERASE ) + if (nPaintFlags & IMPL_PAINT_ERASE) mpWindowImpl->mnPaintFlags |= IMPL_PAINT_ERASE; - if ( nPaintFlags & IMPL_PAINT_CHECKRTL ) + if (nPaintFlags & IMPL_PAINT_CHECKRTL) mpWindowImpl->mnPaintFlags |= IMPL_PAINT_CHECKRTL; - if ( !mpWindowImpl->mpFirstChild ) + if (!mpWindowImpl->mpFirstChild) mpWindowImpl->mnPaintFlags &= ~IMPL_PAINT_PAINTALLCHILDREN; - if ( mpWindowImpl->mbPaintDisabled ) + if (mpWindowImpl->mbPaintDisabled) { - if ( mpWindowImpl->mnPaintFlags & IMPL_PAINT_PAINTALL ) - Invalidate( INVALIDATE_NOCHILDREN | INVALIDATE_NOERASE | INVALIDATE_NOTRANSPARENT | INVALIDATE_NOCLIPCHILDREN ); + if (mpWindowImpl->mnPaintFlags & IMPL_PAINT_PAINTALL) + Invalidate(INVALIDATE_NOCHILDREN | INVALIDATE_NOERASE | INVALIDATE_NOTRANSPARENT | INVALIDATE_NOCLIPCHILDREN); else if ( pRegion ) - Invalidate( *pRegion, INVALIDATE_NOCHILDREN | INVALIDATE_NOERASE | INVALIDATE_NOTRANSPARENT | INVALIDATE_NOCLIPCHILDREN ); + Invalidate(*pRegion, INVALIDATE_NOCHILDREN | INVALIDATE_NOERASE | INVALIDATE_NOTRANSPARENT | INVALIDATE_NOCLIPCHILDREN); return; } @@ -409,10 +409,12 @@ void Window::ImplCallPaint( const vcl::Region* pRegion, sal_uInt16 nPaintFlags ) PaintHelper aHelper(this, nPaintFlags); - if ( mpWindowImpl->mnPaintFlags & IMPL_PAINT_PAINT ) + if (mpWindowImpl->mnPaintFlags & IMPL_PAINT_PAINT) aHelper.DoPaint(pRegion); else mpWindowImpl->mnPaintFlags = 0; + + PostPaint(*this); } void Window::ImplCallOverlapPaint() @@ -822,7 +824,11 @@ void Window::ImplUpdateAll( bool bOverlapWindows ) Flush(); } -void Window::PrePaint() +void Window::PrePaint(vcl::RenderContext& /*rRenderContext*/) +{ +} + +void Window::PostPaint(vcl::RenderContext& /*rRenderContext*/) { } commit 822ee8a3395588d2022d3d560ed4e1ed34c369a5 Author: Tomaž Vajngerl <[email protected]> Date: Wed May 13 11:10:53 2015 +0900 refactor RecentDocsView to use RenderContext Change-Id: I0fd6db7c7eb0481f99639ec7520dc01724fc0db8 diff --git a/include/sfx2/recentdocsview.hxx b/include/sfx2/recentdocsview.hxx index 45276d3..231c47f 100644 --- a/include/sfx2/recentdocsview.hxx +++ b/include/sfx2/recentdocsview.hxx @@ -66,19 +66,19 @@ protected: virtual void OnItemDblClicked(ThumbnailViewItem *pItem) SAL_OVERRIDE; - virtual void Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE; + virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE; virtual void LoseFocus() SAL_OVERRIDE; bool isAcceptedFile(const OUString &rURL) const; /// Set (larger) font for the Welcome message. - void SetMessageFont(); + void SetMessageFont(vcl::RenderContext& rRenderContext); - long mnItemMaxSize; - long mnTextHeight; - long mnItemPadding; - long mnItemMaxTextLength; + long mnItemMaxSize; + long mnTextHeight; + long mnItemPadding; + long mnItemMaxTextLength; size_t mnLastMouseDownItem; /// Image that appears when there is no recent document. diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx index 5437aff..5848045 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(); }
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
