summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/gridwin4.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/view/gridwin4.cxx')
-rw-r--r--sc/source/ui/view/gridwin4.cxx284
1 files changed, 141 insertions, 143 deletions
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 3e2368bf3067..724d840ab990 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -88,10 +88,9 @@ static void lcl_LimitRect( tools::Rectangle& rRect, const tools::Rectangle& rVis
static void lcl_DrawOneFrame( vcl::RenderContext* pDev, const tools::Rectangle& rInnerPixel,
const OUString& rTitle, const Color& rColor, bool bTextBelow,
double nPPTX, double nPPTY, const Fraction& rZoomY,
- ScDocument& rDoc, ScViewData* pButtonViewData, bool bLayoutRTL )
+ ScDocument& rDoc, ScViewData& rButtonViewData, bool bLayoutRTL )
{
- // pButtonViewData is only used to set the button size,
- // can otherwise be NULL!
+ // rButtonViewData is only used to set the button size,
tools::Rectangle aInner = rInnerPixel;
if ( bLayoutRTL )
@@ -147,8 +146,7 @@ static void lcl_DrawOneFrame( vcl::RenderContext* pDev, const tools::Rectangle&
Size aButSize( nBWidth, nBHeight );
long nButtonPos = bLayoutRTL ? aOuter.Left() : aOuter.Right()-nBWidth+1;
aComboButton.Draw( Point(nButtonPos, nButtonY), aButSize );
- if (pButtonViewData)
- pButtonViewData->SetScenButSize( aButSize );
+ rButtonViewData.SetScenButSize( aButSize );
long nTextStart = bLayoutRTL ? aInner.Right() - aTextSize.Width() + 1 : aInner.Left();
@@ -184,11 +182,11 @@ static void lcl_DrawOneFrame( vcl::RenderContext* pDev, const tools::Rectangle&
pDev->DrawRect( aOuter );
}
-static void lcl_DrawScenarioFrames( OutputDevice* pDev, ScViewData* pViewData, ScSplitPos eWhich,
+static void lcl_DrawScenarioFrames( OutputDevice* pDev, ScViewData& rViewData, ScSplitPos eWhich,
SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2 )
{
- ScDocument& rDoc = pViewData->GetDocument();
- SCTAB nTab = pViewData->GetTabNo();
+ ScDocument& rDoc = rViewData.GetDocument();
+ SCTAB nTab = rViewData.GetTabNo();
SCTAB nTabCount = rDoc.GetTableCount();
if ( nTab+1 >= nTabCount || !rDoc.IsScenario(nTab+1) || rDoc.IsScenario(nTab) )
return;
@@ -223,9 +221,9 @@ static void lcl_DrawScenarioFrames( OutputDevice* pDev, ScViewData* pViewData, S
if ( aRange.Intersects( aViewRange ) ) //! Space for Text/Button?
{
- Point aStartPos = pViewData->GetScrPos(
+ Point aStartPos = rViewData.GetScrPos(
aRange.aStart.Col(), aRange.aStart.Row(), eWhich, true );
- Point aEndPos = pViewData->GetScrPos(
+ Point aEndPos = rViewData.GetScrPos(
aRange.aEnd.Col()+1, aRange.aEnd.Row()+1, eWhich, true );
// on the grid:
aStartPos.AdjustX( -nLayoutSign );
@@ -253,16 +251,16 @@ static void lcl_DrawScenarioFrames( OutputDevice* pDev, ScViewData* pViewData, S
lcl_DrawOneFrame( pDev, tools::Rectangle( aStartPos, aEndPos ),
aCurrent, aColor, bTextBelow,
- pViewData->GetPPTX(), pViewData->GetPPTY(), pViewData->GetZoomY(),
- rDoc, pViewData, bLayoutRTL );
+ rViewData.GetPPTX(), rViewData.GetPPTY(), rViewData.GetZoomY(),
+ rDoc, rViewData, bLayoutRTL );
}
}
}
-static void lcl_DrawHighlight( ScOutputData& rOutputData, const ScViewData* pViewData,
+static void lcl_DrawHighlight( ScOutputData& rOutputData, const ScViewData& rViewData,
const std::vector<ScHighlightEntry>& rHighlightRanges )
{
- SCTAB nTab = pViewData->GetTabNo();
+ SCTAB nTab = rViewData.GetTabNo();
for ( const auto& rHighlightRange : rHighlightRanges)
{
ScRange aRange = rHighlightRange.aRef;
@@ -293,7 +291,7 @@ void ScGridWindow::DoInvertRect( const tools::Rectangle& rPixel )
void ScGridWindow::PrePaint(vcl::RenderContext& /*rRenderContext*/)
{
// forward PrePaint to DrawingLayer
- ScTabViewShell* pTabViewShell = pViewData->GetViewShell();
+ ScTabViewShell* pTabViewShell = mrViewData.GetViewShell();
if(pTabViewShell)
{
@@ -334,7 +332,7 @@ void ScGridWindow::InvalidateLOKViewCursor(const tools::Rectangle& rCursorRect,
if (!NeedLOKCursorInvalidation(rCursorRect, aScaleX, aScaleY))
return;
- ScTabViewShell* pThisViewShell = pViewData->GetViewShell();
+ ScTabViewShell* pThisViewShell = mrViewData.GetViewShell();
SfxViewShell* pViewShell = SfxViewShell::GetFirst();
while (pViewShell)
@@ -361,7 +359,7 @@ void ScGridWindow::InvalidateLOKViewCursor(const tools::Rectangle& rCursorRect,
void ScGridWindow::Paint( vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle& rRect )
{
- ScDocument& rDoc = pViewData->GetDocument();
+ ScDocument& rDoc = mrViewData.GetDocument();
if ( rDoc.IsInInterpreter() )
{
// Via Reschedule, interpreted cells do not trigger Invalidate again,
@@ -391,13 +389,13 @@ void ScGridWindow::Paint( vcl::RenderContext& /*rRenderContext*/, const tools::R
tools::Rectangle aPixRect = LogicToPixel( rRect );
- SCCOL nX1 = pViewData->GetPosX(eHWhich);
- SCROW nY1 = pViewData->GetPosY(eVWhich);
+ SCCOL nX1 = mrViewData.GetPosX(eHWhich);
+ SCROW nY1 = mrViewData.GetPosY(eVWhich);
- SCTAB nTab = pViewData->GetTabNo();
+ SCTAB nTab = mrViewData.GetTabNo();
- double nPPTX = pViewData->GetPPTX();
- double nPPTY = pViewData->GetPPTY();
+ double nPPTX = mrViewData.GetPPTX();
+ double nPPTY = mrViewData.GetPPTY();
tools::Rectangle aMirroredPixel = aPixRect;
if ( rDoc.IsLayoutRTL( nTab ) )
@@ -437,7 +435,7 @@ void ScGridWindow::Paint( vcl::RenderContext& /*rRenderContext*/, const tools::R
void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMode eMode )
{
- ScDocument& rDoc = pViewData->GetDocument();
+ ScDocument& rDoc = mrViewData.GetDocument();
// let's ignore the normal Draw() attempts when doing the tiled rendering,
// all the rendering should go through PaintTile() in that case.
@@ -449,7 +447,7 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
ScModule* pScMod = SC_MOD();
bool bTextWysiwyg = pScMod->GetInputOptions().GetTextWysiwyg();
- if (pViewData->IsMinimized())
+ if (mrViewData.IsMinimized())
return;
PutInOrder( nX1, nX2 );
@@ -482,15 +480,15 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
++nPaintCount; // mark that painting is in progress
- SCTAB nTab = pViewData->GetTabNo();
+ SCTAB nTab = mrViewData.GetTabNo();
rDoc.ExtendHidden( nX1, nY1, nX2, nY2, nTab );
- Point aScrPos = pViewData->GetScrPos( nX1, nY1, eWhich );
+ Point aScrPos = mrViewData.GetScrPos( nX1, nY1, eWhich );
long nMirrorWidth = GetSizePixel().Width();
bool bLayoutRTL = rDoc.IsLayoutRTL( nTab );
if ( bLayoutRTL )
{
- long nEndPixel = pViewData->GetScrPos( nX2+1, maVisibleRange.mnRow1, eWhich ).X();
+ long nEndPixel = mrViewData.GetScrPos( nX2+1, maVisibleRange.mnRow1, eWhich ).X();
nMirrorWidth = aScrPos.X() - nEndPixel;
aScrPos.setX( nEndPixel + 1 );
}
@@ -498,8 +496,8 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
long nScrX = aScrPos.X();
long nScrY = aScrPos.Y();
- SCCOL nCurX = pViewData->GetCurX();
- SCROW nCurY = pViewData->GetCurY();
+ SCCOL nCurX = mrViewData.GetCurX();
+ SCROW nCurY = mrViewData.GetCurY();
SCCOL nCurEndX = nCurX;
SCROW nCurEndY = nCurY;
rDoc.ExtendMerge( nCurX, nCurY, nCurEndX, nCurEndY, nTab );
@@ -518,20 +516,20 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
//! Paint AutoFill handles alone (without Cursor) ???
}
- double nPPTX = pViewData->GetPPTX();
- double nPPTY = pViewData->GetPPTY();
+ double nPPTX = mrViewData.GetPPTX();
+ double nPPTY = mrViewData.GetPPTY();
- const ScViewOptions& rOpts = pViewData->GetOptions();
+ const ScViewOptions& rOpts = mrViewData.GetOptions();
// data block
ScTableInfo aTabInfo;
rDoc.FillInfo( aTabInfo, nX1, nY1, nX2, nY2, nTab,
nPPTX, nPPTY, false, rOpts.GetOption(VOPT_FORMULAS),
- &pViewData->GetMarkData() );
+ &mrViewData.GetMarkData() );
- Fraction aZoomX = pViewData->GetZoomX();
- Fraction aZoomY = pViewData->GetZoomY();
+ Fraction aZoomX = mrViewData.GetZoomX();
+ Fraction aZoomY = mrViewData.GetZoomY();
ScOutputData aOutputData( this, OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
nScrX, nScrY, nX1, nY1, nX2, nY2, nPPTX, nPPTY,
&aZoomX, &aZoomY );
@@ -547,10 +545,10 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
// use printer for text formatting
OutputDevice* pFmtDev = rDoc.GetPrinter();
- pFmtDev->SetMapMode( pViewData->GetLogicMode(eWhich) );
+ pFmtDev->SetMapMode( mrViewData.GetLogicMode(eWhich) );
aOutputData.SetFmtDevice( pFmtDev );
}
- else if ( aZoomX != aZoomY && pViewData->IsOle() )
+ else if ( aZoomX != aZoomY && mrViewData.IsOle() )
{
// #i45033# For OLE inplace editing with different zoom factors,
// use a virtual device with 1/100th mm as text formatting reference
@@ -606,8 +604,8 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
bool bLogicText)
{
ScModule* pScMod = SC_MOD();
- ScDocument& rDoc = pViewData->GetDocument();
- const ScViewOptions& rOpts = pViewData->GetOptions();
+ ScDocument& rDoc = mrViewData.GetDocument();
+ const ScViewOptions& rOpts = mrViewData.GetOptions();
bool bIsTiledRendering = comphelper::LibreOfficeKit::isActive();
bool bNoBackgroundAndGrid = bIsTiledRendering
&& comphelper::LibreOfficeKit::isCompatFlagSet(
@@ -629,7 +627,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
aGridColor = rOpts.GetGridColor();
}
- aOutputData.SetSyntaxMode ( pViewData->IsSyntaxMode() );
+ aOutputData.SetSyntaxMode ( mrViewData.IsSyntaxMode() );
aOutputData.SetGridColor ( aGridColor );
aOutputData.SetShowNullValues ( rOpts.GetOption( VOPT_NULLVALS ) );
aOutputData.SetShowFormulas ( rOpts.GetOption( VOPT_FORMULAS ) );
@@ -638,29 +636,29 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
aOutputData.SetUseStyleColor( true ); // always set in table view
- aOutputData.SetViewShell( pViewData->GetViewShell() );
+ aOutputData.SetViewShell( mrViewData.GetViewShell() );
- bool bGrid = rOpts.GetOption( VOPT_GRID ) && pViewData->GetShowGrid();
+ bool bGrid = rOpts.GetOption( VOPT_GRID ) && mrViewData.GetShowGrid();
bool bGridFirst = !rOpts.GetOption( VOPT_GRID_ONTOP );
bool bPage = rOpts.GetOption( VOPT_PAGEBREAKS ) && !bIsTiledRendering;
- bool bPageMode = pViewData->IsPagebreakMode();
+ bool bPageMode = mrViewData.IsPagebreakMode();
if (bPageMode) // after FindChanged
{
// SetPagebreakMode also initializes bPrinted Flags
- aOutputData.SetPagebreakMode( pViewData->GetView()->GetPageBreakData() );
+ aOutputData.SetPagebreakMode( mrViewData.GetView()->GetPageBreakData() );
}
EditView* pEditView = nullptr;
- bool bEditMode = pViewData->HasEditView(eWhich);
- if ( bEditMode && pViewData->GetRefTabNo() == nTab )
+ bool bEditMode = mrViewData.HasEditView(eWhich);
+ if ( bEditMode && mrViewData.GetRefTabNo() == nTab )
{
SCCOL nEditCol;
SCROW nEditRow;
- pViewData->GetEditView( eWhich, pEditView, nEditCol, nEditRow );
- SCCOL nEditEndCol = pViewData->GetEditEndCol();
- SCROW nEditEndRow = pViewData->GetEditEndRow();
+ mrViewData.GetEditView( eWhich, pEditView, nEditCol, nEditRow );
+ SCCOL nEditEndCol = mrViewData.GetEditEndCol();
+ SCROW nEditEndRow = mrViewData.GetEditEndRow();
if ( nEditEndCol >= nX1 && nEditCol <= nX2 && nEditEndRow >= nY1 && nEditRow <= nY2 )
aOutputData.SetEditCell( nEditCol, nEditRow );
@@ -716,7 +714,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
{
// init redraw
- ScTabViewShell* pTabViewShell = pViewData->GetViewShell();
+ ScTabViewShell* pTabViewShell = mrViewData.GetViewShell();
if(pTabViewShell)
{
@@ -832,7 +830,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
// edit cells and printer-metrics text must be before the buttons
// (DataPilot buttons contain labels in UI font)
- pContentDev->SetMapMode(pViewData->GetLogicMode(eWhich));
+ pContentDev->SetMapMode(mrViewData.GetLogicMode(eWhich));
if ( bLogicText )
aOutputData.DrawStrings(true); // in logic MapMode if bLogicText is set
aOutputData.DrawEdit(true);
@@ -865,7 +863,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
//! Disable scenario frame via view option?
SCTAB nTabCount = rDoc.GetTableCount();
- const std::vector<ScHighlightEntry> &rHigh = pViewData->GetView()->GetHighlightRanges();
+ const std::vector<ScHighlightEntry> &rHigh = mrViewData.GetView()->GetHighlightRanges();
bool bHasScenario = ( nTab+1<nTabCount && rDoc.IsScenario(nTab+1) && !rDoc.IsScenario(nTab) );
bool bHasChange = ( rDoc.GetChangeTrack() != nullptr );
@@ -877,9 +875,9 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
aOutputData.DrawChangeTrack();
if ( bHasScenario )
- lcl_DrawScenarioFrames( pContentDev, pViewData, eWhich, nX1,nY1,nX2,nY2 );
+ lcl_DrawScenarioFrames( pContentDev, mrViewData, eWhich, nX1,nY1,nX2,nY2 );
- lcl_DrawHighlight( aOutputData, pViewData, rHigh );
+ lcl_DrawHighlight( aOutputData, mrViewData, rHigh );
}
// Drawing foreground
@@ -908,20 +906,20 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
pContentDev->SetMapMode(MapMode(MapUnit::MapPixel));
- if ( pViewData->IsRefMode() && nTab >= pViewData->GetRefStartZ() && nTab <= pViewData->GetRefEndZ() )
+ if ( mrViewData.IsRefMode() && nTab >= mrViewData.GetRefStartZ() && nTab <= mrViewData.GetRefEndZ() )
{
Color aRefColor( rColorCfg.GetColorValue(svtools::CALCREFERENCE).nColor );
- aOutputData.DrawRefMark( pViewData->GetRefStartX(), pViewData->GetRefStartY(),
- pViewData->GetRefEndX(), pViewData->GetRefEndY(),
+ aOutputData.DrawRefMark( mrViewData.GetRefStartX(), mrViewData.GetRefStartY(),
+ mrViewData.GetRefEndX(), mrViewData.GetRefEndY(),
aRefColor, false );
}
// range finder
- ScInputHandler* pHdl = pScMod->GetInputHdl( pViewData->GetViewShell() );
+ ScInputHandler* pHdl = pScMod->GetInputHdl( mrViewData.GetViewShell() );
if (pHdl)
{
- ScDocShell* pDocSh = pViewData->GetDocShell();
+ ScDocShell* pDocSh = mrViewData.GetDocShell();
ScRangeFindList* pRangeFinder = pHdl->GetRangeFindList();
if ( pRangeFinder && !pRangeFinder->IsHidden() &&
pRangeFinder->GetDocName() == pDocSh->GetTitle() )
@@ -944,7 +942,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
{
// end redraw
- ScTabViewShell* pTabViewShell = pViewData->GetViewShell();
+ ScTabViewShell* pTabViewShell = mrViewData.GetViewShell();
if(pTabViewShell)
{
@@ -979,7 +977,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
// paint in-place editing on other views
if (bIsTiledRendering)
{
- ScTabViewShell* pThisViewShell = pViewData->GetViewShell();
+ ScTabViewShell* pThisViewShell = mrViewData.GetViewShell();
SfxViewShell* pViewShell = SfxViewShell::GetFirst();
while (pViewShell)
@@ -1009,8 +1007,8 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
rDevice.SetLineColor();
rDevice.SetFillColor(pOtherEditView->GetBackgroundColor());
- Point aStart = pViewData->GetScrPos( nCol1, nRow1, eOtherWhich );
- Point aEnd = pViewData->GetScrPos( nCol2+1, nRow2+1, eOtherWhich );
+ Point aStart = mrViewData.GetScrPos( nCol1, nRow1, eOtherWhich );
+ Point aEnd = mrViewData.GetScrPos( nCol2+1, nRow2+1, eOtherWhich );
// don't overwrite grid
long nLayoutSign = bLayoutRTL ? -1 : 1;
@@ -1076,18 +1074,18 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
// using the editeng.
// It's being done after EndDrawLayers() to get it outside the overlay
// buffer and on top of everything.
- if ( bEditMode && (pViewData->GetRefTabNo() == pViewData->GetTabNo()) )
+ if ( bEditMode && (mrViewData.GetRefTabNo() == mrViewData.GetTabNo()) )
{
// get the coordinates of the area we need to clear (overpaint by
// the background)
- SCCOL nCol1 = pViewData->GetEditStartCol();
- SCROW nRow1 = pViewData->GetEditStartRow();
- SCCOL nCol2 = pViewData->GetEditEndCol();
- SCROW nRow2 = pViewData->GetEditEndRow();
+ SCCOL nCol1 = mrViewData.GetEditStartCol();
+ SCROW nRow1 = mrViewData.GetEditStartRow();
+ SCCOL nCol2 = mrViewData.GetEditEndCol();
+ SCROW nRow2 = mrViewData.GetEditEndRow();
rDevice.SetLineColor();
rDevice.SetFillColor(pEditView->GetBackgroundColor());
- Point aStart = pViewData->GetScrPos( nCol1, nRow1, eWhich );
- Point aEnd = pViewData->GetScrPos( nCol2+1, nRow2+1, eWhich );
+ Point aStart = mrViewData.GetScrPos( nCol1, nRow1, eWhich );
+ Point aEnd = mrViewData.GetScrPos( nCol2+1, nRow2+1, eWhich );
// don't overwrite grid
long nLayoutSign = bLayoutRTL ? -1 : 1;
@@ -1116,7 +1114,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
rDevice.SetMapMode(aDrawMode);
}
else
- rDevice.SetMapMode(pViewData->GetLogicMode());
+ rDevice.SetMapMode(mrViewData.GetLogicMode());
if (bIsTiledRendering)
{
@@ -1205,13 +1203,13 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
pCrsr->Show();
}
- if (pViewData->HasEditView(eWhich))
+ if (mrViewData.HasEditView(eWhich))
{
// flush OverlayManager before changing the MapMode
flushOverlayManager();
// set MapMode for text edit
- rDevice.SetMapMode(pViewData->GetLogicMode());
+ rDevice.SetMapMode(mrViewData.GetLogicMode());
}
else
rDevice.SetMapMode(aDrawMode);
@@ -1223,14 +1221,14 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
namespace
{
template<typename IndexType>
- void lcl_getBoundingRowColumnforTile(ScViewData* pViewData,
+ void lcl_getBoundingRowColumnforTile(ScViewData& rViewData,
long nTileStartPosPx, long nTileEndPosPx,
sal_Int32& nTopLeftTileOffset, sal_Int32& nTopLeftTileOrigin,
sal_Int32& nTopLeftTileIndex, sal_Int32& nBottomRightTileIndex)
{
const bool bColumnHeader = std::is_same<IndexType, SCCOL>::value;
- SCTAB nTab = pViewData->GetTabNo();
+ SCTAB nTab = rViewData.GetTabNo();
IndexType nStartIndex = -1;
IndexType nEndIndex = -1;
@@ -1238,11 +1236,11 @@ namespace
long nEndPosPx = 0;
ScPositionHelper& rPositionHelper =
- bColumnHeader ? pViewData->GetLOKWidthHelper() : pViewData->GetLOKHeightHelper();
+ bColumnHeader ? rViewData.GetLOKWidthHelper() : rViewData.GetLOKHeightHelper();
const auto& rStartNearest = rPositionHelper.getNearestByPosition(nTileStartPosPx);
const auto& rEndNearest = rPositionHelper.getNearestByPosition(nTileEndPosPx);
- ScBoundsProvider aBoundsProvider(*pViewData, nTab, bColumnHeader);
+ ScBoundsProvider aBoundsProvider(rViewData, nTab, bColumnHeader);
aBoundsProvider.Compute(rStartNearest, rEndNearest, nTileStartPosPx, nTileEndPosPx);
aBoundsProvider.GetStartIndexAndPosition(nStartIndex, nStartPosPx); ++nStartIndex;
aBoundsProvider.GetEndIndexAndPosition(nEndIndex, nEndPosPx);
@@ -1316,8 +1314,8 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
int nTilePosX, int nTilePosY,
long nTileWidth, long nTileHeight )
{
- Fraction origZoomX = pViewData->GetZoomX();
- Fraction origZoomY = pViewData->GetZoomY();
+ Fraction origZoomX = mrViewData.GetZoomX();
+ Fraction origZoomY = mrViewData.GetZoomY();
// Output size is in pixels while tile position and size are in logical units (twips).
@@ -1341,10 +1339,10 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
// page break zoom, and aLogicMode in ScViewData
// FIXME: there are issues when SetZoom is called conditionally.
- pViewData->SetZoom(aFracX, aFracY, true);
+ mrViewData.SetZoom(aFracX, aFracY, true);
if (bChangeZoom)
{
- if (ScDrawView* pDrawView = pViewData->GetScDrawView())
+ if (ScDrawView* pDrawView = mrViewData.GetScDrawView())
pDrawView->resetGridOffsetsForAllSdrPageViews();
}
@@ -1353,11 +1351,11 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
const double fTileBottomPixel = static_cast<double>(nTilePosY + nTileHeight) * nOutputHeight / nTileHeight;
const double fTileRightPixel = static_cast<double>(nTilePosX + nTileWidth) * nOutputWidth / nTileWidth;
- SCTAB nTab = pViewData->GetTabNo();
- ScDocument& rDoc = pViewData->GetDocument();
+ SCTAB nTab = mrViewData.GetTabNo();
+ ScDocument& rDoc = mrViewData.GetDocument();
- const double fPPTX = pViewData->GetPPTX();
- const double fPPTY = pViewData->GetPPTY();
+ const double fPPTX = mrViewData.GetPPTX();
+ const double fPPTY = mrViewData.GetPPTY();
// find approximate col/row offsets of nearby.
sal_Int32 nTopLeftTileRowOffset = 0;
@@ -1370,12 +1368,12 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
sal_Int32 nBottomRightTileRow = 0;
sal_Int32 nBottomRightTileCol = 0;
- lcl_getBoundingRowColumnforTile<SCROW>(pViewData,
+ lcl_getBoundingRowColumnforTile<SCROW>(mrViewData,
fTilePosYPixel, fTileBottomPixel,
nTopLeftTileRowOffset, nTopLeftTileRowOrigin,
nTopLeftTileRow, nBottomRightTileRow);
- lcl_getBoundingRowColumnforTile<SCCOL>(pViewData,
+ lcl_getBoundingRowColumnforTile<SCCOL>(mrViewData,
fTilePosXPixel, fTileRightPixel,
nTopLeftTileColOffset, nTopLeftTileColOrigin,
nTopLeftTileCol, nBottomRightTileCol);
@@ -1422,7 +1420,7 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
nTab, fPPTX, fPPTY, false, false);
// FIXME: is this called some
-// Point aScrPos = pViewData->GetScrPos( nX1, nY1, eWhich );
+// Point aScrPos = mrViewData.GetScrPos( nX1, nY1, eWhich );
ScOutputData aOutputData(&rDevice, OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
-nTopLeftTileColOffset,
@@ -1440,7 +1438,7 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
mpLOKDrawView.reset(bPrintTwipsMsgs ?
new ScLOKDrawView(
&rDevice,
- *pViewData) :
+ mrViewData) :
new FmFormView(
*pModel,
&rDevice));
@@ -1457,10 +1455,10 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
rDoc.ResetChanged(ScRange(nTopLeftTileCol, nTopLeftTileRow, nTab, nBottomRightTileCol, nBottomRightTileRow, nTab));
rDoc.PrepareFormulaCalc();
- pViewData->SetZoom(origZoomX, origZoomY, true);
+ mrViewData.SetZoom(origZoomX, origZoomY, true);
if (bChangeZoom)
{
- if (ScDrawView* pDrawView = pViewData->GetScDrawView())
+ if (ScDrawView* pDrawView = mrViewData.GetScDrawView())
pDrawView->resetGridOffsetsForAllSdrPageViews();
}
}
@@ -1484,14 +1482,14 @@ void ScGridWindow::LogicInvalidate(const tools::Rectangle* pRectangle)
sRectangle = aRectangle.toString();
}
- ScTabViewShell* pViewShell = pViewData->GetViewShell();
+ ScTabViewShell* pViewShell = mrViewData.GetViewShell();
SfxLokHelper::notifyInvalidation(pViewShell, sRectangle);
}
void ScGridWindow::SetCellSelectionPixel(int nType, int nPixelX, int nPixelY)
{
- ScTabView* pTabView = pViewData->GetView();
- ScTabViewShell* pViewShell = pViewData->GetViewShell();
+ ScTabView* pTabView = mrViewData.GetView();
+ ScTabViewShell* pViewShell = mrViewData.GetViewShell();
ScInputHandler* pInputHandler = SC_MOD()->GetInputHdl(pViewShell);
if (pInputHandler && pInputHandler->IsInputMode())
@@ -1508,7 +1506,7 @@ void ScGridWindow::SetCellSelectionPixel(int nType, int nPixelX, int nPixelY)
}
// obtain the current selection
- ScRangeList aRangeList = pViewData->GetMarkData().GetMarkedRanges();
+ ScRangeList aRangeList = mrViewData.GetMarkData().GetMarkedRanges();
SCCOL nCol1, nCol2;
SCROW nRow1, nRow2;
@@ -1517,8 +1515,8 @@ void ScGridWindow::SetCellSelectionPixel(int nType, int nPixelX, int nPixelY)
bool bWasEmpty = false;
if (aRangeList.empty())
{
- nCol1 = nCol2 = pViewData->GetCurX();
- nRow1 = nRow2 = pViewData->GetCurY();
+ nCol1 = nCol2 = mrViewData.GetCurX();
+ nRow1 = nRow2 = mrViewData.GetCurY();
bWasEmpty = true;
}
else
@@ -1527,8 +1525,8 @@ void ScGridWindow::SetCellSelectionPixel(int nType, int nPixelX, int nPixelY)
// convert the coordinates to column/row
SCCOL nNewPosX;
SCROW nNewPosY;
- SCTAB nTab = pViewData->GetTabNo();
- pViewData->GetPosFromPixel(nPixelX, nPixelY, eWhich, nNewPosX, nNewPosY);
+ SCTAB nTab = mrViewData.GetTabNo();
+ mrViewData.GetPosFromPixel(nPixelX, nPixelY, eWhich, nNewPosX, nNewPosY);
// change the selection
switch (nType)
@@ -1572,7 +1570,7 @@ void ScGridWindow::CheckNeedsRepaint()
aRepaintPixel = tools::Rectangle();
// selection function in status bar might also be invalid
- SfxBindings& rBindings = pViewData->GetBindings();
+ SfxBindings& rBindings = mrViewData.GetBindings();
rBindings.Invalidate( SID_STATUS_SUM );
rBindings.Invalidate( SID_ATTR_SIZE );
rBindings.Invalidate( SID_TABLE_CELL );
@@ -1580,12 +1578,12 @@ void ScGridWindow::CheckNeedsRepaint()
void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, vcl::RenderContext& rRenderContext)
{
- ScPageBreakData* pPageData = pViewData->GetView()->GetPageBreakData();
+ ScPageBreakData* pPageData = mrViewData.GetView()->GetPageBreakData();
if (!pPageData)
return;
- ScDocument& rDoc = pViewData->GetDocument();
- SCTAB nTab = pViewData->GetTabNo();
+ ScDocument& rDoc = mrViewData.GetDocument();
+ SCTAB nTab = mrViewData.GetTabNo();
Size aWinSize = GetOutputSizePixel();
const svtools::ColorConfig& rColorCfg = SC_MOD()->GetColorConfig();
Color aManual( rColorCfg.GetColorValue(svtools::CALCPAGEBREAKMANUAL).nColor );
@@ -1638,9 +1636,9 @@ void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
else
rRenderContext.SetFillColor( aManual );
- Point aStart = pViewData->GetScrPos(
+ Point aStart = mrViewData.GetScrPos(
aRange.aStart.Col(), aRange.aStart.Row(), eWhich, true );
- Point aEnd = pViewData->GetScrPos(
+ Point aEnd = mrViewData.GetScrPos(
aRange.aEnd.Col() + 1, aRange.aEnd.Row() + 1, eWhich, true );
aStart.AdjustX( -2 );
aStart.AdjustY( -2 );
@@ -1674,7 +1672,7 @@ void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
rRenderContext.SetFillColor( aManual );
else
rRenderContext.SetFillColor( aAutomatic );
- Point aBreak = pViewData->GetScrPos(
+ Point aBreak = mrViewData.GetScrPos(
nBreak, aRange.aStart.Row(), eWhich, true );
rRenderContext.DrawRect( tools::Rectangle( aBreak.X()-1, aStart.Y(), aBreak.X(), aEnd.Y() ) );
}
@@ -1693,7 +1691,7 @@ void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
rRenderContext.SetFillColor( aManual );
else
rRenderContext.SetFillColor( aAutomatic );
- Point aBreak = pViewData->GetScrPos(
+ Point aBreak = mrViewData.GetScrPos(
aRange.aStart.Col(), nBreak, eWhich, true );
rRenderContext.DrawRect( tools::Rectangle( aStart.X(), aBreak.Y()-1, aEnd.X(), aBreak.Y() ) );
}
@@ -1713,9 +1711,9 @@ void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
SCCOL nPrEndX = pColEnd[nColPos];
if ( nPrEndX >= nX1 && nPrStartX <= nX2 )
{
- Point aPageStart = pViewData->GetScrPos(
+ Point aPageStart = mrViewData.GetScrPos(
nPrStartX, nPrStartY, eWhich, true );
- Point aPageEnd = pViewData->GetScrPos(
+ Point aPageEnd = mrViewData.GetScrPos(
nPrEndX+1,nPrEndY+1, eWhich, true );
long nPageNo = rData.GetFirstPage();
@@ -1783,14 +1781,14 @@ void ScGridWindow::DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo
{
aComboButton.SetOutputDevice( pContentDev );
- ScDocument& rDoc = pViewData->GetDocument();
- ScDPFieldButton aCellBtn(pContentDev, &GetSettings().GetStyleSettings(), &pViewData->GetZoomY(), &rDoc);
+ ScDocument& rDoc = mrViewData.GetDocument();
+ ScDPFieldButton aCellBtn(pContentDev, &GetSettings().GetStyleSettings(), &mrViewData.GetZoomY(), &rDoc);
SCCOL nCol;
SCROW nRow;
SCSIZE nArrY;
SCSIZE nQuery;
- SCTAB nTab = pViewData->GetTabNo();
+ SCTAB nTab = mrViewData.GetTabNo();
ScDBData* pDBData = nullptr;
std::unique_ptr<ScQueryParam> pQueryParam;
@@ -1872,9 +1870,9 @@ void ScGridWindow::DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo
//if address(nCol,nRow) is not the start pos of the merge area, the value of the nSizeX will be incorrect, it will be the length of the cell.
//should first get the start pos of the merge area, then get the nSizeX through the start pos.
rDoc.ExtendOverlapped(nStartCol, nStartRow,nCol, nRow, nTab);//get nStartCol,nStartRow
- pViewData->GetMergeSizePixel( nStartCol, nStartRow, nSizeX, nSizeY );//get nSizeX
- nSizeY = ScViewData::ToPixel(rDoc.GetRowHeight(nRow, nTab), pViewData->GetPPTY());
- Point aScrPos = pViewData->GetScrPos( nCol, nRow, eWhich );
+ mrViewData.GetMergeSizePixel( nStartCol, nStartRow, nSizeX, nSizeY );//get nSizeX
+ nSizeY = ScViewData::ToPixel(rDoc.GetRowHeight(nRow, nTab), mrViewData.GetPPTY());
+ Point aScrPos = mrViewData.GetScrPos( nCol, nRow, eWhich );
aCellBtn.setBoundingBox(aScrPos, Size(nSizeX-1, nSizeY-1), bLayoutRTL);
aCellBtn.setPopupLeft(bLayoutRTL); // #i114944# AutoFilter button is left-aligned in RTL
@@ -1896,10 +1894,10 @@ void ScGridWindow::DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo
if (pInfo->bHOverlapped || pInfo->bVOverlapped)
continue;
- Point aScrPos = pViewData->GetScrPos( nCol, nRow, eWhich );
+ Point aScrPos = mrViewData.GetScrPos( nCol, nRow, eWhich );
long nSizeX;
long nSizeY;
- pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
+ mrViewData.GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
long nPosX = aScrPos.X();
long nPosY = aScrPos.Y();
// bLayoutRTL is handled in setBoundingBox
@@ -1934,8 +1932,8 @@ void ScGridWindow::DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo
tools::Rectangle ScGridWindow::GetListValButtonRect( const ScAddress& rButtonPos )
{
- ScDocument& rDoc = pViewData->GetDocument();
- SCTAB nTab = pViewData->GetTabNo();
+ ScDocument& rDoc = mrViewData.GetDocument();
+ SCTAB nTab = mrViewData.GetTabNo();
bool bLayoutRTL = rDoc.IsLayoutRTL( nTab );
long nLayoutSign = bLayoutRTL ? -1 : 1;
@@ -1947,10 +1945,10 @@ tools::Rectangle ScGridWindow::GetListValButtonRect( const ScAddress& rButtonPos
long nCellSizeX; // width of this cell, including merged
long nDummy;
- pViewData->GetMergeSizePixel( nCol, nRow, nCellSizeX, nDummy );
+ mrViewData.GetMergeSizePixel( nCol, nRow, nCellSizeX, nDummy );
// for height, only the cell's row is used, excluding merged cells
- long nCellSizeY = ScViewData::ToPixel( rDoc.GetRowHeight( nRow, nTab ), pViewData->GetPPTY() );
+ long nCellSizeY = ScViewData::ToPixel( rDoc.GetRowHeight( nRow, nTab ), mrViewData.GetPPTY() );
long nAvailable = nCellSizeX;
// left edge of next cell if there is a non-hidden next column
@@ -1962,14 +1960,14 @@ tools::Rectangle ScGridWindow::GetListValButtonRect( const ScAddress& rButtonPos
++nNextCol;
bool bNextCell = ( nNextCol <= rDoc.MaxCol() );
if ( bNextCell )
- nAvailable = ScViewData::ToPixel( rDoc.GetColWidth( nNextCol, nTab ), pViewData->GetPPTX() );
+ nAvailable = ScViewData::ToPixel( rDoc.GetColWidth( nNextCol, nTab ), mrViewData.GetPPTX() );
if ( nAvailable < aBtnSize.Width() )
aBtnSize.setWidth( nAvailable );
if ( nCellSizeY < aBtnSize.Height() )
aBtnSize.setHeight( nCellSizeY );
- Point aPos = pViewData->GetScrPos( nCol, nRow, eWhich, true );
+ Point aPos = mrViewData.GetScrPos( nCol, nRow, eWhich, true );
aPos.AdjustX(nCellSizeX * nLayoutSign ); // start of next cell
if (!bNextCell)
aPos.AdjustX( -(aBtnSize.Width() * nLayoutSign) ); // right edge of cell if next cell not available
@@ -1984,7 +1982,7 @@ tools::Rectangle ScGridWindow::GetListValButtonRect( const ScAddress& rButtonPos
bool ScGridWindow::IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab )
{
- ScDocument& rDoc = pViewData->GetDocument();
+ ScDocument& rDoc = mrViewData.GetDocument();
ScDBData* pDBData = rDoc.GetDBAtCursor( nCol, nRow, nTab, ScDBDataPortion::AREA );
ScQueryParam aQueryParam;
@@ -2021,12 +2019,12 @@ bool ScGridWindow::IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab )
void ScGridWindow::GetSelectionRects( ::std::vector< tools::Rectangle >& rPixelRects ) const
{
- GetPixelRectsFor( pViewData->GetMarkData(), rPixelRects );
+ GetPixelRectsFor( mrViewData.GetMarkData(), rPixelRects );
}
void ScGridWindow::GetSelectionRectsPrintTwips(::std::vector< tools::Rectangle >& rRects) const
{
- GetRectsAnyFor(pViewData->GetMarkData(), rRects, true);
+ GetRectsAnyFor(mrViewData.GetMarkData(), rRects, true);
}
/// convert rMarkData into pixel rectangles for this view
@@ -2043,8 +2041,8 @@ void ScGridWindow::GetRectsAnyFor(const ScMarkData &rMarkData,
ScMarkData aMultiMark( rMarkData );
aMultiMark.SetMarking( false );
aMultiMark.MarkToMulti();
- ScDocument& rDoc = pViewData->GetDocument();
- SCTAB nTab = pViewData->GetTabNo();
+ ScDocument& rDoc = mrViewData.GetDocument();
+ SCTAB nTab = mrViewData.GetTabNo();
bool bLayoutRTL = rDoc.IsLayoutRTL( nTab );
long nLayoutSign = bLayoutRTL ? -1 : 1;
@@ -2065,8 +2063,8 @@ void ScGridWindow::GetRectsAnyFor(const ScMarkData &rMarkData,
rDoc.ExtendMerge( nX1,nY1, nTestX2,nTestY2, nTab );
- SCCOL nPosX = pViewData->GetPosX( eHWhich );
- SCROW nPosY = pViewData->GetPosY( eVWhich );
+ SCCOL nPosX = mrViewData.GetPosX( eHWhich );
+ SCROW nPosY = mrViewData.GetPosY( eVWhich );
// is the selection visible at all?
if (nTestX2 < nPosX || nTestY2 < nPosY)
return;
@@ -2079,11 +2077,11 @@ void ScGridWindow::GetRectsAnyFor(const ScMarkData &rMarkData,
if (!comphelper::LibreOfficeKit::isActive())
{
// limit the selection to only what is visible on the screen
- SCCOL nXRight = nPosX + pViewData->VisibleCellsX(eHWhich);
+ SCCOL nXRight = nPosX + mrViewData.VisibleCellsX(eHWhich);
if (nXRight > rDoc.MaxCol())
nXRight = rDoc.MaxCol();
- SCROW nYBottom = nPosY + pViewData->VisibleCellsY(eVWhich);
+ SCROW nYBottom = nPosY + mrViewData.VisibleCellsY(eVWhich);
if (nYBottom > rDoc.MaxRow())
nYBottom = rDoc.MaxRow();
@@ -2108,13 +2106,13 @@ void ScGridWindow::GetRectsAnyFor(const ScMarkData &rMarkData,
nY2 = nMaxTiledRow;
}
- double nPPTX = pViewData->GetPPTX();
- double nPPTY = pViewData->GetPPTY();
+ double nPPTX = mrViewData.GetPPTX();
+ double nPPTY = mrViewData.GetPPTY();
ScInvertMerger aInvert( &rRects );
- Point aScrPos = bInPrintTwips ? pViewData->GetPrintTwipsPos(nX1, nY1) :
- pViewData->GetScrPos(nX1, nY1, eWhich);
+ Point aScrPos = bInPrintTwips ? mrViewData.GetPrintTwipsPos(nX1, nY1) :
+ mrViewData.GetScrPos(nX1, nY1, eWhich);
long nScrY = aScrPos.Y();
bool bWasHidden = false;
for (SCROW nY=nY1; nY<=nY2; nY++)
@@ -2202,8 +2200,8 @@ void ScGridWindow::GetRectsAnyFor(const ScMarkData &rMarkData,
const SCCOL nEndColMerge = nThisX + pMerge->GetColMerge();
const SCROW nEndRowMerge = nThisY + pMerge->GetRowMerge();
Point aEndPos = bInPrintTwips ?
- pViewData->GetPrintTwipsPos(nEndColMerge, nEndRowMerge) :
- pViewData->GetScrPos(nEndColMerge, nEndRowMerge, eWhich);
+ mrViewData.GetPrintTwipsPos(nEndColMerge, nEndRowMerge) :
+ mrViewData.GetScrPos(nEndColMerge, nEndRowMerge, eWhich);
if ( aEndPos.X() * nLayoutSign > nScrX * nLayoutSign && aEndPos.Y() > nScrY )
{
aInvert.AddRect( tools::Rectangle( nScrX,nScrY,
@@ -2237,15 +2235,15 @@ void ScGridWindow::DataChanged( const DataChangedEvent& rDCEvt )
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE))) )
return;
- if ( rDCEvt.GetType() == DataChangedEventType::FONTS && eWhich == pViewData->GetActivePart() )
- pViewData->GetDocShell()->UpdateFontList();
+ if ( rDCEvt.GetType() == DataChangedEventType::FONTS && eWhich == mrViewData.GetActivePart() )
+ mrViewData.GetDocShell()->UpdateFontList();
if ( (rDCEvt.GetType() == DataChangedEventType::SETTINGS) &&
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
{
- if ( eWhich == pViewData->GetActivePart() ) // only once for the view
+ if ( eWhich == mrViewData.GetActivePart() ) // only once for the view
{
- ScTabView* pView = pViewData->GetView();
+ ScTabView* pView = mrViewData.GetView();
pView->RecalcPPT();
@@ -2255,7 +2253,7 @@ void ScGridWindow::DataChanged( const DataChangedEvent& rDCEvt )
// invalidate cell attribs in input handler, in case the
// EditEngine BackgroundColor has to be changed
- if ( pViewData->IsActive() )
+ if ( mrViewData.IsActive() )
{
ScInputHandler* pHdl = SC_MOD()->GetInputHdl();
if (pHdl)