photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp
branchRCL_3
changeset 23 b023a8d2866a
parent 21 f9e827349359
--- a/photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp	Mon Jun 21 15:40:32 2010 +0300
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp	Thu Jul 15 18:39:01 2010 +0300
@@ -25,8 +25,6 @@
 #include <glxtracer.h>                      //  For Tracer
 #include <glxlog.h>                         //  For Log
 
-#define BORDER_HEIGHT (iBorderWidth.iHeight*(100-((newZoomRatio-iMinZoomRatio)*100/(iMaxZoomRatio-iMinZoomRatio))))/100
-#define BORDER_WIDTH (iBorderWidth.iWidth*(100-((newZoomRatio-iMinZoomRatio)*100/(iMaxZoomRatio-iMinZoomRatio))))/100
 // LOCAL CONSTANTS AND MACROS
 const TInt KGlxLargeImageMaximumZoomRatio   =   100     ;
 const TInt KGlxSmallImageMaximumZoomRatio   =   150     ;
@@ -37,8 +35,8 @@
 const TInt KGlxMaxPanUpdateMultiple         =   6       ;
 const TInt KGlxOrigin                       =   0       ;
 
-const TInt KGlxMinRelativeZoomPercent       =   70       ;
-const TInt KGlxMaxRelativeZoomPercent       =   130      ;
+const TInt KGlxMinRelativeZoomPercent       =   85       ;
+const TInt KGlxMaxRelativeZoomPercent       =   115      ;
 
 const TInt KGlxZoomPanInc                   =   10      ; // Min number of pixels panned in one keypress. This value is incremented exponentially by multiples of iPanFactor 
 
@@ -47,8 +45,8 @@
 void TGlxZoomAndPanMathsEngine::Initialize(TPoint& aCenter, 
         TSize& aScreenSize, 
         TSize& aImageSize,
-        TSize& /*aOriginalZoomedDimensions*/,
-        TUint8 aInitialZoomRatio)
+        TUint8 aInitialZoomRatio,
+        TUint8 aMinZoomRatio)
     {
     TRACER("void TGlxZoomAndPanMathsEngine::Initialize()");
 
@@ -59,10 +57,12 @@
     // [TODO] Is there a way to make this constant.
     iActualImageSize    = aImageSize;
     
-    iMinZoomRatio   = aInitialZoomRatio;
-    iZoomRatio          = aInitialZoomRatio;
-    iMaxZoomRatio = ((aInitialZoomRatio == KGlxLargeImageMaximumZoomRatio) ? 
+    iMinZoomRatio   = aMinZoomRatio;
+    iZoomRatio      = aInitialZoomRatio;
+    iMaxZoomRatio   = ((aInitialZoomRatio >= KGlxLargeImageMaximumZoomRatio) ? 
         KGlxSmallImageMaximumZoomRatio:KGlxLargeImageMaximumZoomRatio);
+    GLX_LOG_INFO1("TGlxZoomAndPanMathsEngine::Initialize: Minimum ZoomRatio = [%d]   ", iMinZoomRatio     );
+    GLX_LOG_INFO1("TGlxZoomAndPanMathsEngine::Initialize: Maximum ZoomRatio = [%d]   ", iMaxZoomRatio     );
 
     iPanFactor          = KGlxMinPanFactor;
 
@@ -75,6 +75,8 @@
     iBorderWidth.iWidth     = (iScreenSize.iWidth  - iImageVirtualSize.iWidth )/2  ; 
     iBorderWidth.iHeight    = (iScreenSize.iHeight - iImageVirtualSize.iHeight)/2 ;
     
+    GLX_LOG_INFO2("TGlxZoomAndPanMathsEngine::Initialize: Center at Initialization = [%f,%f]   ", iCenter.iX, iCenter.iY  );
+    
     }
 
 TInt TGlxZoomAndPanMathsEngine::NewCenterCoordinate(TInt aCenter, 
@@ -124,7 +126,7 @@
     TRACER("TGlxZoomAndPanMathsEngine::Pan");
     
     GLX_LOG_INFO2("Pan: Center before PAN= [%d,%d]   ", iCenter.iX, iCenter.iY  );
-    GLX_LOG_INFO2("Pan: Pan Offset = [%d,%d]   ", TInt(aOffset.iX), TInt(aOffset.iY));
+    GLX_LOG_INFO2("Pan: Pan Offset = [%d,%d]   ", aOffset.iX, aOffset.iY);
     
     TPoint panOffset = aOffset; 
     TUint16 halfScreenWidth     = iScreenSize.iWidth>>1;
@@ -252,7 +254,7 @@
         //HEIGHT Calculation
         // TODO: Hive center corrections into an different function.
         // If the image might have become smaller than the screen DUE to or AFTER the above calculations
-        if((imageDimension.iHeight < iScreenSize.iHeight - BORDER_HEIGHT))
+        if((imageDimension.iHeight < iScreenSize.iHeight ))
             {
             iCenter.iY=(imageDimension.iHeight/2);
             }