uifw/EikStd/coctlsrc/EIKMENUB.CPP
changeset 14 3320e4e6e8bb
parent 0 2f259fa3e83a
child 30 56e9a0aaad89
equal deleted inserted replaced
0:2f259fa3e83a 14:3320e4e6e8bb
    56 #include <AknTasHook.h>
    56 #include <AknTasHook.h>
    57 
    57 
    58 #include <touchfeedback.h>
    58 #include <touchfeedback.h>
    59 #include <aknitemactionmenu.h>
    59 #include <aknitemactionmenu.h>
    60 #include "aknitemactionmenuregister.h"
    60 #include "aknitemactionmenuregister.h"
    61 #include <aknPriv.hrh>
    61 #include <AknPriv.hrh>
    62 #include "akntrace.h"
    62 #include "akntrace.h"
    63 
    63 
    64 enum { EEikMenuBarTitleArrayGranularity=10 };
    64 enum { EEikMenuBarTitleArrayGranularity=10 };
    65 enum { EEikMenuBarPosArrayGranularity=2 };
    65 enum { EEikMenuBarPosArrayGranularity=2 };
    66 const TInt KExtraBaselineOffsetForFirstPaneItem=4;
    66 const TInt KExtraBaselineOffsetForFirstPaneItem=4;
    76     /**
    76     /**
    77      * Sets item specific commands dimmed if highlight is not visible.
    77      * Sets item specific commands dimmed if highlight is not visible.
    78      */
    78      */
    79     void SetItemCommandsDimmedL();
    79     void SetItemCommandsDimmedL();
    80 
    80 
    81     /**
       
    82      * Saves current value of iItemActionMenu->CollectionHighlightVisible() to 
       
    83      * a member variable iCollectionHighlightVisible
       
    84      */
       
    85     void StoreCollectionHighlightValue(); 
       
    86 public: // from MAknFadedComponent
    81 public: // from MAknFadedComponent
    87     TInt CountFadedComponents();
    82     TInt CountFadedComponents();
    88     CCoeControl* FadedComponent(TInt aIndex);
    83     CCoeControl* FadedComponent(TInt aIndex);
    89 
    84 
    90 private:
    85 private:
   108     /**
   103     /**
   109      * Item action menu.
   104      * Item action menu.
   110      * Not own.
   105      * Not own.
   111      */
   106      */
   112     CAknItemActionMenu* iItemActionMenu;
   107     CAknItemActionMenu* iItemActionMenu;
   113 
       
   114     /**
       
   115      * When menu pane is opened this value is updated to store the value about
       
   116      * collection highlight visibility
       
   117      */
       
   118     TBool iCollectionHighlightVisible; 
       
   119     };
   108     };
   120 
   109 
   121 
   110 
   122 CEikMenuBarExtension* CEikMenuBarExtension::NewL(CEikMenuBar* aBar)
   111 CEikMenuBarExtension* CEikMenuBarExtension::NewL(CEikMenuBar* aBar)
   123     {
   112     {
   160         iBar->iMenuPane->SetItemCommandsDimmed();
   149         iBar->iMenuPane->SetItemCommandsDimmed();
   161         }
   150         }
   162     }
   151     }
   163 
   152 
   164 
   153 
   165 void CEikMenuBarExtension::StoreCollectionHighlightValue()
       
   166     {
       
   167     if ( iItemActionMenu )
       
   168         {
       
   169         iCollectionHighlightVisible
       
   170                 = iItemActionMenu->CollectionHighlightVisible();
       
   171         }
       
   172     }
       
   173 CEikMenuBarExtension::CEikMenuBarExtension(CEikMenuBar* aBar)
   154 CEikMenuBarExtension::CEikMenuBarExtension(CEikMenuBar* aBar)
   174     :iBar(aBar),
   155     :iBar(aBar),
   175      iDoingMenuCloseTransition(EFalse),
   156      iDoingMenuCloseTransition(EFalse),
   176      iItemActionMenu( NULL )
   157      iItemActionMenu( NULL )
   177     {
   158     {
   423     }
   404     }
   424 
   405 
   425 inline void CEikMenuBar::SetMenuHasItems()
   406 inline void CEikMenuBar::SetMenuHasItems()
   426     {
   407     {
   427     iMenuFlags|=EMenuHasItems;
   408     iMenuFlags|=EMenuHasItems;
   428     iExt->StoreCollectionHighlightValue();
       
   429     }
   409     }
   430 
   410 
   431 inline TBool CEikMenuBar::MenuHasPane() const
   411 inline TBool CEikMenuBar::MenuHasPane() const
   432     {
   412     {
   433     return iMenuFlags&EMenuHasPane;
   413     return iMenuFlags&EMenuHasPane;
  1001         if ( feedback )
   981         if ( feedback )
  1002             {
   982             {
  1003             TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
   983             TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
  1004             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
   984             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  1005                 {
   985                 {
  1006                 fbLogicalType = ETouchFeedbackIncreasingPopUp;
   986                 fbLogicalType = ETouchFeedbackPopupOpen;
  1007                 }
   987                 }
  1008             feedback->InstantFeedback(
   988             feedback->InstantFeedback(
  1009                                    this,
   989                                    this,
  1010                                    fbLogicalType,
   990                                    fbLogicalType,
  1011                                    ETouchFeedbackVibra,
   991                                    ETouchFeedbackVibra,
  1191                 if ( feedback )
  1171                 if ( feedback )
  1192                     {
  1172                     {
  1193                     TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
  1173                     TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
  1194                     if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  1174                     if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  1195                         {
  1175                         {
  1196                         fbLogicalType = ETouchFeedbackDecreasingPopUp;
  1176                         fbLogicalType = ETouchFeedbackPopupClose;
  1197                         }
  1177                         }
  1198                     feedback->InstantFeedback(
  1178                     feedback->InstantFeedback(
  1199                                            this,
  1179                                            this,
  1200                                            fbLogicalType,
  1180                                            fbLogicalType,
  1201                                            ETouchFeedbackVibra,
  1181                                            ETouchFeedbackVibra,
  1375 
  1355 
  1376 
  1356 
  1377 EXPORT_C TBool CEikMenuBar::ItemSpecificCommandsEnabled() const
  1357 EXPORT_C TBool CEikMenuBar::ItemSpecificCommandsEnabled() const
  1378     {
  1358     {
  1379     TBool enabled( ETrue );
  1359     TBool enabled( ETrue );
  1380     if ( MenuHasPane() && iExt->iItemActionMenu )
  1360     if ( iExt->iItemActionMenu &&
  1381         {
       
  1382         enabled = iExt->iCollectionHighlightVisible; 
       
  1383         }
       
  1384     else if ( iExt->iItemActionMenu &&
       
  1385             !iExt->iItemActionMenu->CollectionHighlightVisible() )
  1361             !iExt->iItemActionMenu->CollectionHighlightVisible() )
  1386         {
  1362         {
  1387         enabled = EFalse;
  1363         enabled = EFalse;
  1388         }
  1364         }
  1389     return enabled;
  1365     return enabled;