diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-09-05 11:57:59 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-09-06 12:45:15 +0200 |
commit | 587899f9ced03d02fbf8ffa9a3f52ba31be30818 (patch) | |
tree | 75b303c67aad161a1f9ac571bbb51f9536f9ab25 /svx/source/dialog/pagectrl.cxx | |
parent | 83f12a2d4e410014c70844085f19190a50e83429 (diff) |
weld SwColumnPage and SwColumnDialog
Change-Id: Ia649785047db2551044b4d765881309f83b5c838
Reviewed-on: https://gerrit.libreoffice.org/60044
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx/source/dialog/pagectrl.cxx')
-rw-r--r-- | svx/source/dialog/pagectrl.cxx | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/svx/source/dialog/pagectrl.cxx b/svx/source/dialog/pagectrl.cxx index a7e112d026a0..bf244703b31b 100644 --- a/svx/source/dialog/pagectrl.cxx +++ b/svx/source/dialog/pagectrl.cxx @@ -36,261 +36,6 @@ #define CELL_WIDTH 1600L #define CELL_HEIGHT 800L -SvxPageWindow::SvxPageWindow(vcl::Window* pParent) -: Window(pParent), - aWinSize(), - aSize(), - - nTop(0), - nBottom(0), - nLeft(0), - nRight(0), - - nHdLeft(0), - nHdRight(0), - nHdDist(0), - nHdHeight(0), - - nFtLeft(0), - nFtRight(0), - nFtDist(0), - nFtHeight(0), - - maHeaderFillAttributes(), - maFooterFillAttributes(), - maPageFillAttributes(), - - bFooter(false), - bHeader(false), - - eUsage(SvxPageUsage::All) -{ - // Count in Twips by default - SetMapMode(MapMode(MapUnit::MapTwip)); - aWinSize = GetOptimalSize(); - aWinSize.AdjustHeight( -4 ); - aWinSize.AdjustWidth( -4 ); - - aWinSize = PixelToLogic(aWinSize); - SetBackground(); -} - -SvxPageWindow::~SvxPageWindow() -{ - disposeOnce(); -} - -void SvxPageWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) -{ - Fraction aXScale(aWinSize.Width(), std::max(long(aSize.Width() * 2 + aSize.Width() / 8), 1L)); - Fraction aYScale(aWinSize.Height(), std::max(aSize.Height(), 1L)); - MapMode aMapMode(rRenderContext.GetMapMode()); - - if(aYScale < aXScale) - { - aMapMode.SetScaleX(aYScale); - aMapMode.SetScaleY(aYScale); - } - else - { - aMapMode.SetScaleX(aXScale); - aMapMode.SetScaleY(aXScale); - } - rRenderContext.SetMapMode(aMapMode); - Size aSz(rRenderContext.PixelToLogic(GetSizePixel())); - long nYPos = (aSz.Height() - aSize.Height()) / 2; - - if (eUsage == SvxPageUsage::All) - { - // all pages are equal -> draw one page - if (aSize.Width() > aSize.Height()) - { - // Draw Landscape page of the same size - Fraction aX = aMapMode.GetScaleX(); - Fraction aY = aMapMode.GetScaleY(); - Fraction a2(1.5); - aX *= a2; - aY *= a2; - aMapMode.SetScaleX(aX); - aMapMode.SetScaleY(aY); - rRenderContext.SetMapMode(aMapMode); - aSz = rRenderContext.PixelToLogic(GetSizePixel()); - nYPos = (aSz.Height() - aSize.Height()) / 2; - long nXPos = (aSz.Width() - aSize.Width()) / 2; - DrawPage(rRenderContext, Point(nXPos,nYPos),true,true); - } - else - // Portrait - DrawPage(rRenderContext, Point((aSz.Width() - aSize.Width()) / 2,nYPos),true,true); - } - else - { - // Left and right page are different -> draw two pages if possible - DrawPage(rRenderContext, Point(0, nYPos), false, - eUsage == SvxPageUsage::Left || eUsage == SvxPageUsage::All || eUsage == SvxPageUsage::Mirror); - DrawPage(rRenderContext, Point(aSize.Width() + aSize.Width() / 8, nYPos), true, - eUsage == SvxPageUsage::Right || eUsage == SvxPageUsage::All || eUsage == SvxPageUsage::Mirror); - } -} - -void SvxPageWindow::DrawPage(vcl::RenderContext& rRenderContext, const Point& rOrg, const bool bSecond, const bool bEnabled) -{ - const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings(); - const Color& rFieldColor = rStyleSettings.GetFieldColor(); - const Color& rFieldTextColor = rStyleSettings.GetFieldTextColor(); - const Color& rDisableColor = rStyleSettings.GetDisableColor(); - const Color& rDlgColor = rStyleSettings.GetDialogColor(); - - // background - if (!bSecond) - { - rRenderContext.SetLineColor(COL_TRANSPARENT); - rRenderContext.SetFillColor(rDlgColor); - Size winSize(rRenderContext.GetOutputSize()); - rRenderContext.DrawRect(tools::Rectangle(Point(0,0), winSize)); - } - rRenderContext.SetLineColor(rFieldTextColor); - - // Shadow - Size aTempSize = aSize; - - // Page - if (!bEnabled) - { - rRenderContext.SetFillColor(rDisableColor); - rRenderContext.DrawRect(tools::Rectangle(rOrg, aTempSize)); - return; - } - rRenderContext.SetFillColor(rFieldColor); - rRenderContext.DrawRect(tools::Rectangle(rOrg, aTempSize)); - - long nL = nLeft; - long nR = nRight; - - if (eUsage == SvxPageUsage::Mirror && !bSecond) - { - // turn for mirrored - nL = nRight; - nR = nLeft; - } - - tools::Rectangle aRect; - - aRect.SetLeft( rOrg.X() + nL ); - aRect.SetRight( rOrg.X() + aTempSize.Width() - nR ); - aRect.SetTop( rOrg.Y() + nTop ); - aRect.SetBottom( rOrg.Y() + aTempSize.Height() - nBottom ); - - tools::Rectangle aHdRect(aRect); - tools::Rectangle aFtRect(aRect); - - if (bHeader || bFooter) - { - // Header and/or footer used - const Color aLineColor(rRenderContext.GetLineColor()); - - // draw PageFill first and on the whole page, no outline - rRenderContext.SetLineColor(); - drawFillAttributes(rRenderContext, maPageFillAttributes, aRect, aRect); - rRenderContext.SetLineColor(aLineColor); - - if (bHeader) - { - // show headers if possible - aHdRect.AdjustLeft(nHdLeft ); - aHdRect.AdjustRight( -(nHdRight) ); - aHdRect.SetBottom( aRect.Top() + nHdHeight ); - aRect.AdjustTop(nHdHeight + nHdDist ); - - // draw header over PageFill, plus outline - drawFillAttributes(rRenderContext, maHeaderFillAttributes, aHdRect, aHdRect); - } - - if (bFooter) - { - // show footer if possible - aFtRect.AdjustLeft(nFtLeft ); - aFtRect.AdjustRight( -(nFtRight) ); - aFtRect.SetTop( aRect.Bottom() - nFtHeight ); - aRect.AdjustBottom( -(nFtHeight + nFtDist) ); - - // draw footer over PageFill, plus outline - drawFillAttributes(rRenderContext, maFooterFillAttributes, aFtRect, aFtRect); - } - - // draw page's reduced outline, only outline - drawFillAttributes(rRenderContext, drawinglayer::attribute::SdrAllFillAttributesHelperPtr(), aRect, aRect); - } - else - { - // draw PageFill and outline - drawFillAttributes(rRenderContext, maPageFillAttributes, aRect, aRect); - } -} - -void SvxPageWindow::drawFillAttributes(vcl::RenderContext& rRenderContext, - const drawinglayer::attribute::SdrAllFillAttributesHelperPtr& rFillAttributes, - const tools::Rectangle& rPaintRange, - const tools::Rectangle& rDefineRange) -{ - const basegfx::B2DRange aPaintRange( - rPaintRange.Left(), - rPaintRange.Top(), - rPaintRange.Right(), - rPaintRange.Bottom()); - - if(!aPaintRange.isEmpty() && - !basegfx::fTools::equalZero(aPaintRange.getWidth()) && - !basegfx::fTools::equalZero(aPaintRange.getHeight())) - { - const basegfx::B2DRange aDefineRange( - rDefineRange.Left(), - rDefineRange.Top(), - rDefineRange.Right(), - rDefineRange.Bottom()); - - // prepare primitive sequence - drawinglayer::primitive2d::Primitive2DContainer aSequence; - - // create fill geometry if there is something to fill - if (rFillAttributes.get() && rFillAttributes->isUsed()) - { - aSequence = rFillAttributes->getPrimitive2DSequence(aPaintRange, aDefineRange); - } - - // create line geometry if a LineColor is set at the target device - if (rRenderContext.IsLineColor()) - { - const drawinglayer::primitive2d::Primitive2DReference xOutline( - new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( - basegfx::utils::createPolygonFromRect(aPaintRange), GetLineColor().getBColor())); - - aSequence.push_back(xOutline); - } - - // draw that if we have something to draw - if (!aSequence.empty()) - { - const drawinglayer::geometry::ViewInformation2D aViewInformation2D( - basegfx::B2DHomMatrix(), GetViewTransformation(), aPaintRange, nullptr, - 0.0, css::uno::Sequence<css::beans::PropertyValue >()); - - std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor( - drawinglayer::processor2d::createProcessor2DFromOutputDevice(rRenderContext, aViewInformation2D)); - if (pProcessor) - { - pProcessor->process(aSequence); - } - } - } -} - - -Size SvxPageWindow::GetOptimalSize() const -{ - return LogicToPixel(Size(75, 46), MapMode(MapUnit::MapAppFont)); -} - PageWindow::PageWindow() : aWinSize(), aSize(), |