uifw/EikStd/coctlsrc/EIKSCRLB.CPP
branchRCL_3
changeset 15 08e69e956a8c
parent 4 8ca85d2f0db7
child 16 71dd06cfe933
equal deleted inserted replaced
10:9f56a4e1b8ab 15:08e69e956a8c
  2350         layoutRect.LayoutRect( parent, AknLayoutScalable_Avkon::aid_size_touch_scroll_bar( 0 ).LayoutLine() );
  2350         layoutRect.LayoutRect( parent, AknLayoutScalable_Avkon::aid_size_touch_scroll_bar( 0 ).LayoutLine() );
  2351     TRect extension( layoutRect.Rect() );
  2351     TRect extension( layoutRect.Rect() );
  2352 
  2352 
  2353     TRect area;
  2353     TRect area;
  2354     
  2354     
       
  2355     if ( iParentControl )
       
  2356         {
       
  2357         CCoeControl* windowOwningParent = iParentControl;
       
  2358         while ( windowOwningParent && !windowOwningParent->OwnsWindow() )
       
  2359             {
       
  2360             windowOwningParent = windowOwningParent->Parent();
       
  2361             }       
       
  2362         
       
  2363         if ( windowOwningParent )
       
  2364             {
       
  2365             TInt xGap = 0;
       
  2366             TRect scrollBarRect = Rect();   
       
  2367             TRect parentRect = windowOwningParent->Rect();
       
  2368                                
       
  2369             if ( OwnsWindow() ) 
       
  2370                 {
       
  2371                 scrollBarRect.Move( Position().iX - 
       
  2372                     windowOwningParent->Position().iX, 0 );
       
  2373                 } 
       
  2374             
       
  2375             // left to right layout in use
       
  2376             if ( !AknLayoutUtils::LayoutMirrored() )
       
  2377                 {
       
  2378                 xGap = parentRect.iBr.iX - scrollBarRect.iBr.iX;  
       
  2379                 if ( Abs( xGap ) < scrollBarRect.Width() )
       
  2380                     {
       
  2381                     extension.iBr.iX += xGap;
       
  2382                     }
       
  2383                 }
       
  2384             // right to left layout in use
       
  2385             else
       
  2386                 {
       
  2387                 xGap = parentRect.iTl.iX - scrollBarRect.iTl.iX;
       
  2388                 if ( Abs( xGap ) < scrollBarRect.Width() )
       
  2389                     {
       
  2390                     extension.iTl.iX += xGap;
       
  2391                     }
       
  2392                 }  
       
  2393             }
       
  2394         }     
       
  2395     
  2355     if ( iOrientation == CEikScrollBar::EVertical )
  2396     if ( iOrientation == CEikScrollBar::EVertical )
  2356         {
  2397         {
  2357         area.iTl.iX = extension.iTl.iX - scrollbar.iTl.iX;
  2398         area.iTl.iX = extension.iTl.iX - scrollbar.iTl.iX;
  2358         area.iTl.iY = scrollbar.iTl.iY - extension.iTl.iY;
  2399         area.iTl.iY = scrollbar.iTl.iY - extension.iTl.iY;
  2359         area.iBr.iX = area.iTl.iX + extension.Width();
  2400         area.iBr.iX = area.iTl.iX + extension.Width();