textinput/peninputcommonctrls/src/peninputselectionlist/peninputscrollablelist.cpp
branchRCL_3
changeset 11 c8fb4cf7b3ae
parent 9 e6a39382bb9c
child 12 5e18d8c489d6
--- a/textinput/peninputcommonctrls/src/peninputselectionlist/peninputscrollablelist.cpp	Tue Apr 27 16:59:43 2010 +0300
+++ b/textinput/peninputcommonctrls/src/peninputselectionlist/peninputscrollablelist.cpp	Tue May 11 16:31:42 2010 +0300
@@ -545,21 +545,17 @@
     CalcPageInfo();
     iContentRect = TRect(TPoint(), TSize(2*iHorizontalMargin + iItemSize.iWidth, 
                        (iOnePageItemCnt + 1)*iVerticalMargin + iOnePageItemCnt*iItemSize.iHeight));
-    TRect ctrlRect = iContentRect;
-
-    iItemRects.Reset();
-    for (TInt i = 0; i < iOnePageItemCnt; i++)
-        {
-        iItemRects.Append(TRect(TPoint(iContentRect.iTl.iX + iHorizontalMargin, 
-                                       iContentRect.iTl.iY + (i+1)* iVerticalMargin + 
-                                       i * iItemSize.iHeight) , 
-                                       iItemSize));
-        }        
 
     if (iNaviBtnShown)
         {
-        iScrollRect = TRect(TPoint(iContentRect.Width(), 0), 
-                            TSize(2*iHorizontalMargin + iNaviSize.iWidth, iContentRect.Height()));
+		TInt nWidthPager = 2 * iHorizontalMargin + iNaviSize.iWidth;
+		TInt nXposPager = iContentRect.Width();
+		if (iAlign == CGraphicsContext::ERight)
+			{
+		    iContentRect.Move(nWidthPager, 0);
+			nXposPager = 0;
+			}
+		iScrollRect = TRect(TPoint(nXposPager, 0), TSize(nWidthPager, iContentRect.Height()));
         iPageUpRect = TRect(TPoint(iScrollRect.iTl.iX + iHorizontalMargin, 
                                    iScrollRect.iTl.iY + iVerticalMargin),
                             iNaviSize);
@@ -579,10 +575,24 @@
         iPageInfoRect = TRect(TPoint(iScrollRect.iTl.iX, 
                               iScrollRect.iTl.iY + iScrollRect.Height()/2 - iNaviSize.iHeight/2),
                               iNaviSize);
-
-        ctrlRect.BoundingRect(iScrollRect);
         }
-
+    else
+    	{
+		iScrollRect = TRect(0, 0, 0, 0);
+    	}
+    
+    iItemRects.Reset();
+    for (TInt i = 0; i < iOnePageItemCnt; i++)
+        {
+        iItemRects.Append(TRect(TPoint(iContentRect.iTl.iX + iHorizontalMargin, 
+									   iContentRect.iTl.iY + (i + 1)* iVerticalMargin + 
+                                       i * iItemSize.iHeight) , 
+                                       iItemSize));
+        }
+    
+    TRect ctrlRect = iContentRect;
+    if (!iScrollRect.IsEmpty())
+    	ctrlRect.BoundingRect(iScrollRect);
     SetRect(ctrlRect);
     UpdateNaviButtonStates();
     }