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(); |