From 2ccfad1a23172e3a29185973e9c6ce2f33d5f2d8 Mon Sep 17 00:00:00 2001 From: Andrzej Hunt Date: Fri, 15 Aug 2014 16:48:41 +0200 Subject: Implement some Logic/Pixel conversion functions for ScViewData. Change-Id: I54c99d19852be9825f3dbe80fcbfcfa13a79c835 --- sc/source/ui/inc/viewdata.hxx | 6 ++++++ sc/source/ui/view/viewdata.cxx | 24 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx index 21232c22a08b..6ab3060692a0 100644 --- a/sc/source/ui/inc/viewdata.hxx +++ b/sc/source/ui/inc/viewdata.hxx @@ -482,6 +482,12 @@ public: static inline long ToPixel( sal_uInt16 nTwips, double nFactor ); + long LogicToPixelVertical( long nTwips ); + long LogicToPixelHorizontal( long nTwips ); + + long PixelToLogicVertical( long nPix ); + long PixelToLogicHorizontal( long nPix ); + /** while (rScrY <= nEndPixels && rPosY <= nEndRow) add pixels of row heights converted with nPPTY to rScrY, optimized for row height segments. Upon return rPosY is the last row evaluated <= nEndRow, rScrY diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 55b8c4f07ad3..8ba9b7e95766 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -3099,4 +3099,28 @@ void ScViewData::AddPixelsWhileBackward( long & rScrY, long nEndPixels, rPosY = nRow; } +long ScViewData::LogicToPixelVertical( long nTwips ) +{ + return GetActiveWin()->LogicToPixel( Point( 0, nTwips ), + maPaintMapMode ).getY(); +} + +long ScViewData::LogicToPixelHorizontal( long nTwips ) +{ + return GetActiveWin()->LogicToPixel( Point( nTwips, 0 ), + maPaintMapMode ).getX(); +} + +long ScViewData::PixelToLogicVertical( long nPix ) +{ + return GetActiveWin()->PixelToLogic( Point( 0, nPix ), + maPaintMapMode ).getY(); +} + +long ScViewData::PixelToLogicHorizontal( long nPix ) +{ + return GetActiveWin()->PixelToLogic( Point( nPix, 0 ), + maPaintMapMode ).getX(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3