diff options
author | Andrzej Hunt <andrzej.hunt@collabora.com> | 2014-08-28 23:22:15 +0200 |
---|---|---|
committer | Andrzej Hunt <andrzej.hunt@collabora.com> | 2014-08-29 11:57:21 +0200 |
commit | 9d6561a03260585af0589934694e5dda1fa1dab9 (patch) | |
tree | 1d05e1230b3da1c4e51491058df3a7040807526d | |
parent | bd0e9c272707687f13f4ad7ce36089d6e1b29cfd (diff) |
Logic coordinates for clip marks too.
Change-Id: I214064a1c060af2078dc5cd3f1fb4990ea374f0b
-rw-r--r-- | sc/source/ui/view/output.cxx | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index f4a22ac5217f..9d5c6f2d3005 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -2467,7 +2467,7 @@ void ScOutputData::DrawClipMarks() long nInitPosX = nScrX; if ( bLayoutRTL ) - nInitPosX += nMirrorW - 1; // always in pixels + nInitPosX += LogicToPixelHorizontal( nMirrorWTwips ) - 1; // always in pixels long nLayoutSign = bLayoutRTL ? -1 : 1; Rectangle aCellRect; @@ -2497,26 +2497,34 @@ void ScOutputData::DrawClipMarks() nOverX, nOverY, nTab, ATTR_MERGE_FLAG ))->GetValue() & SC_MF_HOR ) ) { --nOverX; - nStartPosX -= nLayoutSign * (long) ( mpDoc->GetColWidth(nOverX,nTab) * mnPPTX ); + nStartPosX -= nLayoutSign * + LogicToPixelHorizontal( mpDoc->GetColWidth(nOverX,nTab) ); } while ( nOverY > 0 && ( ((const ScMergeFlagAttr*)mpDoc->GetAttr( nOverX, nOverY, nTab, ATTR_MERGE_FLAG ))->GetValue() & SC_MF_VER ) ) { --nOverY; - nStartPosY -= nLayoutSign * (long) ( mpDoc->GetRowHeight(nOverY,nTab) * mnPPTY ); + nStartPosY -= nLayoutSign * + LogicToPixelVertical( mpDoc->GetRowHeight(nOverY,nTab) ); } - long nOutWidth = (long) ( mpDoc->GetColWidth(nOverX,nTab) * mnPPTX ); - long nOutHeight = (long) ( mpDoc->GetRowHeight(nOverY,nTab) * mnPPTY ); + long nOutWidth = LogicToPixelHorizontal( + mpDoc->GetColWidth(nOverX,nTab) ); + long nOutHeight = LogicToPixelVertical( + mpDoc->GetRowHeight(nOverY,nTab) ); const ScMergeAttr* pMerge = (const ScMergeAttr*) mpDoc->GetAttr( nOverX, nOverY, nTab, ATTR_MERGE ); SCCOL nCountX = pMerge->GetColMerge(); for (SCCOL i=1; i<nCountX; i++) - nOutWidth += (long) ( mpDoc->GetColWidth(nOverX+i,nTab) * mnPPTX ); + { + nOutWidth += LogicToPixelHorizontal( + mpDoc->GetColWidth(nOverX+i,nTab) ); + } SCROW nCountY = pMerge->GetRowMerge(); - nOutHeight += (long) mpDoc->GetScaledRowHeight( nOverY+1, nOverY+nCountY-1, nTab, mnPPTY); + nOutHeight += LogicToPixelVertical( + mpDoc->GetScaledRowHeight( nOverY+1, nOverY+nCountY-1, nTab, 1.0 ) ); if ( bLayoutRTL ) nStartPosX -= nOutWidth - 1; @@ -2524,8 +2532,8 @@ void ScOutputData::DrawClipMarks() } else { - long nOutWidth = pRowInfo[0].pCellInfo[nX+1].nWidth; - long nOutHeight = pThisRowInfo->nHeight; + long nOutWidth = LogicToPixelHorizontal( pRowInfo[0].pCellInfo[nX+1].nWidth ); + long nOutHeight = LogicToPixelVertical( pThisRowInfo->nHeight ); if ( pInfo->bMerged && pInfo->pPatternAttr ) { @@ -2535,9 +2543,12 @@ void ScOutputData::DrawClipMarks() (ScMergeAttr*)&pInfo->pPatternAttr->GetItem(ATTR_MERGE); SCCOL nCountX = pMerge->GetColMerge(); for (SCCOL i=1; i<nCountX; i++) - nOutWidth += (long) ( mpDoc->GetColWidth(nOverX+i,nTab) * mnPPTX ); + { + nOutWidth += LogicToPixelHorizontal( mpDoc->GetColWidth(nOverX+i,nTab) ); + } SCROW nCountY = pMerge->GetRowMerge(); - nOutHeight += (long) mpDoc->GetScaledRowHeight( nOverY+1, nOverY+nCountY-1, nTab, mnPPTY); + nOutHeight += LogicToPixelVertical( + mpDoc->GetScaledRowHeight( nOverY+1, nOverY+nCountY-1, nTab, 1.0) ); } long nStartPosX = nPosX; @@ -2554,7 +2565,7 @@ void ScOutputData::DrawClipMarks() else aCellRect.Right() -= 1; - long nMarkPixel = (long)( SC_CLIPMARK_SIZE * mnPPTX ); + long nMarkPixel = LogicToPixelHorizontal( SC_CLIPMARK_SIZE ); Size aMarkSize( nMarkPixel, (nMarkPixel-1)*2 ); if ( pInfo->nClipMark & ( bLayoutRTL ? SC_CLIPMARK_RIGHT : SC_CLIPMARK_LEFT ) ) |