uifw/EikStd/coctlsrc/EIKMENUP.CPP
branchRCL_3
changeset 38 c52421ed5f07
parent 29 a8834a2e9a96
child 50 a1caeb42b3a3
--- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Wed Jun 09 09:58:37 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP	Mon Jun 21 15:57:43 2010 +0300
@@ -239,7 +239,8 @@
         ESkipScrollbarUpdate,
         EHighlightEnabled,
         EHideViewSpecificCommands, 
-        EHideMarkAndUnmark
+        EHideMarkAndUnmark,
+        EHideItemActionCommands
         };
 
     /**
@@ -489,6 +490,12 @@
     _AKNTRACE( "delta = %d",  delta );
     _AKNTRACE( "iViewPosition(%d,%d)",  iViewPosition.iX, iViewPosition.iY );
     
+    //here checking the delta whether it is changed.
+    //if it is changed,the view must be drawn using the below code.
+    if ( delta != 0 )
+        {
+        aDrawNow = ETrue;
+    	}
     if ( aDrawNow )
         {
         if ( iFlags.IsClear( ESkipScrollbarUpdate ) )
@@ -1248,6 +1255,7 @@
         }
 		
     iFlags.Clear( EHideItemSpecificCommands );
+    iFlags.Clear( EHideItemActionCommands );
     iFlags.Clear( EContextSensitive );
     iFlags.Clear( EHighlightEnabled );
     iFlags.Clear( EHideViewSpecificCommands );
@@ -1356,9 +1364,16 @@
             {
             iFlags.Set( EContextSensitive );
             }
-        else if ( ownerFlags.IsSet( EHideItemSpecificCommands ) )
+        else
             {
-            iControl->SetItemCommandsStateL( ETrue );
+            if ( ownerFlags.IsSet( EHideItemSpecificCommands ) )
+                {
+                iControl->SetItemCommandsStateL( ETrue );
+                }
+            if ( ownerFlags.IsSet( EHideItemActionCommands ) )
+                {
+                iControl->SetItemActionsStateL( ETrue );
+                }
             }
         }
     }
@@ -2826,13 +2841,18 @@
             skin->GetCachedItemData( KAknsIIDQgnIndiSubmenu, EAknsITMaskedBitmap ) );
         if( itemData )
             {
+            AknIconUtils::SetSize( itemData->Bitmap(),cascadeRect.Rect().Size() );
             aGc.BitBltMasked( cascadeRect.Rect().iTl, itemData->Bitmap(),
                 cascadeRect.Rect().Size(), itemData->Mask(), ETrue );
             }
         else
             {
-            aGc.BitBltMasked( cascadeRect.Rect().iTl, iExtension->iCascadeBitmap,
-                cascadeRect.Rect().Size(), iExtension->iCascadeBitmapMask, ETrue );
+            if ( iExtension->iCascadeBitmap && iExtension->iCascadeBitmapMask )
+               {
+               AknIconUtils::SetSize( iExtension->iCascadeBitmap,cascadeRect.Rect().Size() );
+               aGc.BitBltMasked( cascadeRect.Rect().iTl, iExtension->iCascadeBitmap,
+                   cascadeRect.Rect().Size(), iExtension->iCascadeBitmapMask, ETrue );
+               }
             }
         }
     else
@@ -6616,6 +6636,34 @@
         }
     }
 
+// -----------------------------------------------------------------------------
+// CEikMenuPane::SetItemActionsStateL
+// -----------------------------------------------------------------------------
+//
+void CEikMenuPane::SetItemActionsStateL( TBool aDimmed )
+    {
+    if ( iExtension && iExtension->iFlags.IsSet(
+            CEikMenuPaneExtension::ESingleClickEnabled ) )
+        {
+        if ( aDimmed )
+            {
+            iExtension->iFlags.Set(
+                    CEikMenuPaneExtension::EHideItemActionCommands );
+            }
+
+        for ( TInt i = 0; i < iItemArray->Count(); ++i )
+            {
+            CEikMenuPaneItem* item = iItemArray->At( i );
+            TBool itemActionItem(
+                    item->iData.iFlags & EEikMenuItemAction );
+            // Dim item specific items
+            if ( aDimmed && itemActionItem )
+                {
+                item->iData.iFlags |= EEikMenuItemDimmed;
+                }
+            }
+        }
+    }
 
 // -----------------------------------------------------------------------------
 // CEikMenuPane::AddMenuItemsToItemActionMenuL