uifw/AvKon/src/eikfrlbd.cpp
branchRCL_3
changeset 25 941195f2d488
parent 23 3d340a0166ff
child 29 a8834a2e9a96
--- a/uifw/AvKon/src/eikfrlbd.cpp	Tue May 11 16:27:42 2010 +0300
+++ b/uifw/AvKon/src/eikfrlbd.cpp	Tue May 25 12:58:19 2010 +0300
@@ -59,6 +59,10 @@
 // colored tick marks support
 const TInt KColorIconFlag = -1;
 const TInt KColorIconIdx  =  0;
+
+// Number of icons in marking mode icon array
+const TInt KMarkingModeIconArraySize = 2;
+
 // smiley text place holder
 _LIT( KPlaceHolder, "\xFFF0i" );
 
@@ -1329,7 +1333,8 @@
     {
     if ( !iMarkingIconArray )
         {
-        iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 );
+        iMarkingIconArray = new ( ELeave ) CAknIconArray( 
+                KMarkingModeIconArraySize );
         }
     else
         {
@@ -2477,45 +2482,7 @@
     __ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
     
     TRect textRect(aItemRect);
-    
-    CEikListBox* listbox = static_cast<CEikListBox*>( Control() ); 
-    
-    if ( listbox->View()->ItemDrawer()->Flags() 
-            & CListItemDrawer::EMarkingModeEnabled 
-            && iExtension->iMarkingIconArray
-            &&  iExtension->iMarkingIconArray->Count() == 2 )
-        {
-        textRect.iTl.iX += 
-                AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ).LayoutLine().il;
-
-        TAknLayoutRect layoutRect;
-        layoutRect.LayoutRect( aItemRect, 
-                AknLayoutScalable_Avkon::list_double_graphic_pane_g1( 0 ) );
-        
-        CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
-
-        if ( listbox->View()->ItemIsSelected( 
-                iExtension->iCurrentlyDrawnItemIndex ) )
-            {
-            icon = (*iExtension->iMarkingIconArray)[0];
-            }
-        
-        CFbsBitmap* bitmap = icon->Bitmap();
-
-        if ( bitmap )
-            {
-            TSize size( bitmap->SizeInPixels() ); // set size if not already
-            TSize targetSize( layoutRect.Rect().Size() );
-            
-            if ( size.iWidth != targetSize.iWidth && size.iHeight != targetSize.iHeight )
-                {
-                AknIconUtils::SetSize( bitmap, targetSize,
-                        EAspectRatioPreservedAndUnusedSpaceRemoved ); 
-                }
-
-            aGc.BitBltMasked( layoutRect.Rect().iTl, bitmap, TRect( layoutRect.Rect().Size() ), icon->Mask(), EFalse );
-            }
-        }
+    DrawMarkingModeIcons( aProperties, aGc, textRect );
     
     const TColors *subcellColors = &aColors;
 
@@ -2878,6 +2845,67 @@
     _AKNTRACE_FUNC_EXIT;
     }
 
+// -----------------------------------------------------------------------------
+// CFormattedCellListBoxData::DrawMarkingModeIcons
+// -----------------------------------------------------------------------------
+//
+void CFormattedCellListBoxData::DrawMarkingModeIcons( 
+                                            TListItemProperties& aProperties,
+                                            CWindowGc& aGc,
+                                            TRect& aItemRect ) const
+    {
+    CEikListBox* listbox = static_cast<CEikListBox*>( Control() ); 
+    TRect textRect( aItemRect );
+    
+    if ( listbox->View()->ItemDrawer()->Flags() 
+            & CListItemDrawer::EMarkingModeEnabled 
+            && !aProperties.IsSelectionHidden()            
+            && iExtension->iMarkingIconArray
+#ifdef RD_TOUCH2_MARKING
+            &&  iExtension->iMarkingIconArray->Count() 
+                == KMarkingModeIconArraySize )         
+#else            
+            &&  iExtension->iMarkingIconArray->Count() == 2 )
+#endif // RD_TOUCH2_MARKING        
+        {
+        textRect.iTl.iX += 
+                AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 
+                        0 ).LayoutLine().il;
+
+        TAknLayoutRect layoutRect;
+        layoutRect.LayoutRect( aItemRect, 
+                AknLayoutScalable_Avkon::list_double_graphic_pane_g1( 0 ) );
+
+        // unchecked icon
+        CGulIcon* icon = ( *iExtension->iMarkingIconArray )[1];        
+        
+        if ( listbox->View()->ItemIsSelected( 
+                iExtension->iCurrentlyDrawnItemIndex ) )
+            {
+            icon = ( *iExtension->iMarkingIconArray )[0];        
+            }
+        
+        CFbsBitmap* bitmap = icon->Bitmap();
+
+        if ( bitmap )
+            {
+            TSize size( bitmap->SizeInPixels() ); // set size if not already
+            TSize targetSize( layoutRect.Rect().Size() );
+            
+            if ( size.iWidth != targetSize.iWidth && 
+                 size.iHeight != targetSize.iHeight )
+                {
+                AknIconUtils::SetSize( bitmap, targetSize,
+                        EAspectRatioPreservedAndUnusedSpaceRemoved ); 
+                }
+            aGc.BitBltMasked( layoutRect.Rect().iTl, 
+                              bitmap, 
+                              TRect( layoutRect.Rect().Size() ),
+                              icon->Mask(), EFalse );
+            }
+        aItemRect = textRect;
+        }    
+    }
 
 EXPORT_C 
 CFormattedCellListBoxData::CFormattedCellListBoxData()
@@ -4198,49 +4226,7 @@
     
     CEikListBox* listbox = static_cast<CEikListBox*>( Control() ); 
     
-    if ( listbox->View()->ItemDrawer()->Flags()
-            & CListItemDrawer::EMarkingModeEnabled &&
-         iExtension->iMarkingIconArray && 
-         iExtension->iMarkingIconArray->Count() == 2 )
-        {
-        itemRect.iTl.iX +=
-            AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ).LayoutLine().il;
-
-        TAknLayoutRect layoutRect;
-        layoutRect.LayoutRect(
-            aItemRect, 
-            AknLayoutScalable_Avkon::list_double_graphic_pane_g1( 0 ) );
-        TRect iconRect( layoutRect.Rect() );
-        
-        CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
-
-        if ( listbox->View()->ItemIsSelected( 
-                iExtension->iCurrentlyDrawnItemIndex ) )
-            {
-            icon = (*iExtension->iMarkingIconArray)[0];
-            }
-        
-        CFbsBitmap* bitmap = icon->Bitmap();
-
-        if ( bitmap )
-            {
-            TSize size( bitmap->SizeInPixels() ); // set size if not already
-            TSize targetSize( layoutRect.Rect().Size() );
-            
-            if ( size.iWidth != targetSize.iWidth &&
-                 size.iHeight != targetSize.iHeight )
-                {
-                AknIconUtils::SetSize( bitmap, targetSize,
-                        EAspectRatioPreservedAndUnusedSpaceRemoved ); 
-                }
-
-            aGc.BitBltMasked( iconRect.iTl,
-                              bitmap,
-                              TRect( iconRect.Size() ),
-                              icon->Mask(),
-                              EFalse );
-            }
-        }
+    DrawMarkingModeIcons( aProperties, aGc, itemRect );
     
     const TColors* subcellColors = &aColors;