uifw/ganes/src/HgScrollbar.cpp
branchRCL_3
changeset 9 aabf2c525e0f
parent 4 8ca85d2f0db7
child 15 08e69e956a8c
equal deleted inserted replaced
4:8ca85d2f0db7 9:aabf2c525e0f
   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 // -----------------------------------------------------------------------------