summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/output.cxx
diff options
context:
space:
mode:
authorArmin Le Grand <Armin.Le.Grand@cib.de>2017-09-05 12:54:16 +0200
committerArmin Le Grand <Armin.Le.Grand@cib.de>2017-09-15 12:58:03 +0200
commit0d2b5305263b01fbefdc998cfc713e36084d6294 (patch)
tree83cf41bcb3cf7a20babe0ccb03105baa80c2953c /sc/source/ui/view/output.cxx
parent2135e461167dd873fd622e948b88b4194e6854b7 (diff)
borderline: Adapt ViewContactOfTableObj
Adapted to usage of svx::frame::Style helpers for primitive creation, need much less SvxBorderLine classes and less overhead. Class SdrBorderlinePrimitive2D completely removed. Working on Array::DrawRange to get it using the Coodinate Systems which are available and include the rotation. Solved problems in BorderLinePrimitive creation in DrawRange and DrawArray by completely restucturing these. Also changed to now return a sequence of primitives to the caller instead of handing over a primitive renderer and using it for each single primitve. This is a preparation for later buffering these and not re-create for each paint. Have now a working version that uses the Cell used by the Style and creates all info on the fly, so that the correct coordinate systems will be used. Works in Calc and it's dialogs with one or multiple cells.
Diffstat (limited to 'sc/source/ui/view/output.cxx')
-rw-r--r--sc/source/ui/view/output.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx
index 98f8822a338b..da4c342d44d6 100644
--- a/sc/source/ui/view/output.cxx
+++ b/sc/source/ui/view/output.cxx
@@ -1457,7 +1457,7 @@ void ScOutputData::DrawFrame(vcl::RenderContext& rRenderContext)
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(CreateProcessor2D());
if (!pProcessor)
return;
-
+ drawinglayer::primitive2d::Primitive2DContainer aPrimitives;
while( nRow1 <= nLastRow )
{
while( (nRow1 <= nLastRow) && !pRowInfo[ nRow1 ].bChanged ) ++nRow1;
@@ -1465,10 +1465,13 @@ void ScOutputData::DrawFrame(vcl::RenderContext& rRenderContext)
{
size_t nRow2 = nRow1;
while( (nRow2 + 1 <= nLastRow) && pRowInfo[ nRow2 + 1 ].bChanged ) ++nRow2;
- rArray.DrawRange( *pProcessor.get(), nFirstCol, nRow1, nLastCol, nRow2, pForceColor );
+ aPrimitives.append(
+ rArray.CreateB2DPrimitiveRange(
+ nFirstCol, nRow1, nLastCol, nRow2, pForceColor ));
nRow1 = nRow2 + 1;
}
}
+ pProcessor->process(aPrimitives);
pProcessor.reset();
rRenderContext.SetDrawMode(nOldDrawMode);