Kaydet (Commit) 31e5afcd authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Adjust zoom level for different output tile size.

Change-Id: I54b9f3ca66035b66509c960ca79391446ecf8778
üst 169b9397
...@@ -882,6 +882,24 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice, ...@@ -882,6 +882,24 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
// Assumption: always paint the whole sheet i.e. "visible" range is always // Assumption: always paint the whole sheet i.e. "visible" range is always
// from (0,0) to last data position. // from (0,0) to last data position.
// Tile geometry is independent of the zoom level, but the output size is
// dependent of the zoom level. Determine the correct zoom level before
// we start.
// TODO : zooming isn't perfect. Find out why.
double nOutWTwips = static_cast<double>(nOutputWidth) / PIXEL_PER_TWIPS;
double nOutHTwips = static_cast<double>(nOutputHeight) / PIXEL_PER_TWIPS;
nOutWTwips /= nTileWidth;
nOutHTwips /= nTileHeight;
Fraction aFracX(nOutWTwips);
Fraction aFracY(nOutHTwips);
pViewData->SetZoom(aFracX, aFracY, true);
pViewData->RefreshZoom();
rDevice.SetOutputSizePixel(Size(nOutputWidth, nOutputHeight));
SCTAB nTab = pViewData->GetTabNo(); SCTAB nTab = pViewData->GetTabNo();
ScDocument* pDoc = pViewData->GetDocument(); ScDocument* pDoc = pViewData->GetDocument();
ScAddress aLastPos = pDoc->GetLastDataPos(nTab); ScAddress aLastPos = pDoc->GetLastDataPos(nTab);
...@@ -908,6 +926,9 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice, ...@@ -908,6 +926,9 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
} }
aOutData.SetGridColor(aGridColor); aOutData.SetGridColor(aGridColor);
aOutData.DrawClear();
aOutData.DrawDocumentBackground();
aOutData.DrawBackground();
aOutData.DrawGrid(true, false); aOutData.DrawGrid(true, false);
aOutData.DrawShadow(); aOutData.DrawShadow();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment