101 |
101 |
102 TAknLayoutRect layout; |
102 TAknLayoutRect layout; |
103 layout.LayoutRect(aRect, AknLayoutScalable_Avkon::scroll_pane( variety )); |
103 layout.LayoutRect(aRect, AknLayoutScalable_Avkon::scroll_pane( variety )); |
104 iScrollbarRect = layout.Rect(); |
104 iScrollbarRect = layout.Rect(); |
105 |
105 |
|
106 TBool prevStatic = iStatic; |
|
107 |
106 if((aTotalSize.iHeight <= aViewSize.iHeight && !aLandscapeScrolling) |
108 if((aTotalSize.iHeight <= aViewSize.iHeight && !aLandscapeScrolling) |
107 || (aTotalSize.iWidth <= aViewSize.iWidth && aLandscapeScrolling) ) |
109 || (aTotalSize.iWidth <= aViewSize.iWidth && aLandscapeScrolling) ) |
108 { |
110 { |
109 iTotalSize = aViewSize; |
111 iTotalSize = aViewSize; |
110 iStatic = ETrue; |
112 iStatic = ETrue; |
112 else |
114 else |
113 { |
115 { |
114 iTotalSize = aTotalSize; |
116 iTotalSize = aTotalSize; |
115 iStatic = EFalse; |
117 iStatic = EFalse; |
116 } |
118 } |
117 |
119 |
118 TBool viewChanged = iViewSize != aViewSize; |
120 // Do we need to init the bg graphics |
119 |
121 TBool initBg = (iViewSize != aViewSize) // view size has been changed |
|
122 || (prevStatic != iStatic) // static value changed |
|
123 || (iLandscapeScrolling != aLandscapeScrolling); // different scrolling direction |
|
124 |
120 iViewSize = aViewSize; |
125 iViewSize = aViewSize; |
121 iLandscapeScrolling = aLandscapeScrolling; |
126 iLandscapeScrolling = aLandscapeScrolling; |
122 iHandlePosition.SetXY(0,0); |
127 iHandlePosition.SetXY(0,0); |
123 |
128 |
124 if(iLandscapeScrolling) |
129 if(iLandscapeScrolling) |
128 else |
133 else |
129 { |
134 { |
130 iTotalLength = iTotalSize.iHeight - iViewSize.iHeight; |
135 iTotalLength = iTotalSize.iHeight - iViewSize.iHeight; |
131 } |
136 } |
132 |
137 |
133 InitIconsL( viewChanged ); |
138 // Don't init icons in static mode since they are not drawn |
|
139 if(!iStatic) |
|
140 InitIconsL( initBg ); |
134 } |
141 } |
135 |
142 |
136 // ----------------------------------------------------------------------------- |
143 // ----------------------------------------------------------------------------- |
137 // CHgScrollbar::SetViewPosition() |
144 // CHgScrollbar::SetViewPosition() |
138 // ----------------------------------------------------------------------------- |
145 // ----------------------------------------------------------------------------- |
236 // CHgScrollbar::Draw() |
243 // CHgScrollbar::Draw() |
237 // ----------------------------------------------------------------------------- |
244 // ----------------------------------------------------------------------------- |
238 // |
245 // |
239 void CHgScrollbar::Draw( CWindowGc& aGc ) |
246 void CHgScrollbar::Draw( CWindowGc& aGc ) |
240 { |
247 { |
241 DrawScrollbar( aGc ); |
248 if(!iStatic) |
|
249 DrawScrollbar( aGc ); |
242 } |
250 } |
243 |
251 |
244 // ----------------------------------------------------------------------------- |
252 // ----------------------------------------------------------------------------- |
245 // CHgScrollbar::DrawScrollbar() |
253 // CHgScrollbar::DrawScrollbar() |
246 // ----------------------------------------------------------------------------- |
254 // ----------------------------------------------------------------------------- |
247 // |
255 // |
248 void CHgScrollbar::DrawScrollbar( CWindowGc& aGc ) |
256 void CHgScrollbar::DrawScrollbar( CWindowGc& aGc ) |
249 { |
257 { |
250 if(iScrollbarBg && iScrollbarHandle && iScrollbarHandleBg) |
258 if(iScrollbarBg && iScrollbarHandle && iScrollbarHandleBg) |
251 { |
259 { |
252 if(iHandler && !iStatic) |
260 if(iHandler) |
253 { |
261 { |
254 aGc.BitBltMasked(iScrollbarRect.iTl, |
262 aGc.BitBltMasked(iScrollbarRect.iTl, |
255 iScrollbarHandleBg->Bitmap(), |
263 iScrollbarHandleBg->Bitmap(), |
256 iScrollbarHandleBg->Bitmap()->SizeInPixels(), |
264 iScrollbarHandleBg->Bitmap()->SizeInPixels(), |
257 iScrollbarHandleBg->Mask(), |
265 iScrollbarHandleBg->Mask(), |
269 iScrollbarBg->Bitmap(), |
277 iScrollbarBg->Bitmap(), |
270 iScrollbarBg->Bitmap()->SizeInPixels(), |
278 iScrollbarBg->Bitmap()->SizeInPixels(), |
271 iScrollbarBg->Mask(), |
279 iScrollbarBg->Mask(), |
272 EFalse); |
280 EFalse); |
273 |
281 |
274 if(!iStatic) |
282 aGc.BitBltMasked(iScrollbarRect.iTl + iHandlePosition, |
275 { |
283 iScrollbarHandle->Bitmap(), |
276 aGc.BitBltMasked(iScrollbarRect.iTl + iHandlePosition, |
284 iScrollbarHandle->Bitmap()->SizeInPixels(), |
277 iScrollbarHandle->Bitmap(), |
285 iScrollbarHandle->Mask(), |
278 iScrollbarHandle->Bitmap()->SizeInPixels(), |
286 EFalse); |
279 iScrollbarHandle->Mask(), |
|
280 EFalse); |
|
281 } |
|
282 } |
287 } |
283 } |
288 } |
284 } |
289 } |
285 |
290 |
286 // ----------------------------------------------------------------------------- |
291 // ----------------------------------------------------------------------------- |