uifw/EikStd/coctlsrc/EIKMENUP.CPP
changeset 14 3320e4e6e8bb
parent 0 2f259fa3e83a
child 30 56e9a0aaad89
equal deleted inserted replaced
0:2f259fa3e83a 14:3320e4e6e8bb
    76 
    76 
    77 #include <touchfeedback.h>
    77 #include <touchfeedback.h>
    78 #include <AknTasHook.h>
    78 #include <AknTasHook.h>
    79 #include <aknphysics.h>
    79 #include <aknphysics.h>
    80 #include <aknphysicsobserveriface.h>
    80 #include <aknphysicsobserveriface.h>
    81 #include <aknPriv.hrh>
    81 #include <AknPriv.hrh>
    82 #include "aknitemactionmenudata.h"
    82 #include "aknitemactionmenudata.h"
    83 #include "akntrace.h"
    83 #include "akntrace.h"
    84 
    84 
    85 // CONSTANTS
    85 // CONSTANTS
    86 const TInt KItemGranularity = 4;
    86 const TInt KItemGranularity = 4;
   642                             feedbackType = static_cast<TTouchFeedbackType> ( ETouchFeedbackVibra | ETouchFeedbackAudio );
   642                             feedbackType = static_cast<TTouchFeedbackType> ( ETouchFeedbackVibra | ETouchFeedbackAudio );
   643                             }
   643                             }
   644                         case CAknPhysics::EAknPhysicsActionFlicking:
   644                         case CAknPhysics::EAknPhysicsActionFlicking:
   645                         case CAknPhysics::EAknPhysicsActionBouncing:
   645                         case CAknPhysics::EAknPhysicsActionBouncing:
   646                             {
   646                             {
   647                             ImmediateFeedback( ETouchFeedbackSensitiveList,
   647                             ImmediateFeedback( ETouchFeedbackSensitiveItem,
   648                                                feedbackType );
   648                                                feedbackType );
   649                             break;
   649                             break;
   650                             }
   650                             }
   651                         default:
   651                         default:
   652                             break;
   652                             break;
  2792     if( AknLayoutUtils::PenEnabled() )
  2792     if( AknLayoutUtils::PenEnabled() )
  2793         {
  2793         {
  2794         TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
  2794         TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
  2795         if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  2795         if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  2796             {
  2796             {
  2797             fbLogicalType = ETouchFeedbackIncreasingPopUp;
  2797             fbLogicalType = ETouchFeedbackPopupOpen;
  2798             }
  2798             }
  2799         iExtension->ImmediateFeedback( fbLogicalType,
  2799         iExtension->ImmediateFeedback( fbLogicalType,
  2800                                        ETouchFeedbackVibra );
  2800                                        ETouchFeedbackVibra );
  2801         }
  2801         }
  2802     _AKNTRACE_FUNC_EXIT;
  2802     _AKNTRACE_FUNC_EXIT;
  4951             {
  4951             {
  4952             if( AknLayoutUtils::PenEnabled() )
  4952             if( AknLayoutUtils::PenEnabled() )
  4953                 {
  4953                 {
  4954                 if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  4954                 if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  4955                     {
  4955                     {
  4956                     iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
  4956                     iExtension->ImmediateFeedback( ETouchFeedbackPopupClose );
  4957                     }
  4957                     }
  4958                 else
  4958                 else
  4959                     {
  4959                     {
  4960                     iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
  4960                     iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
  4961                     }
  4961                     }
  5223                          
  5223                          
  5224                             TryLaunchCascadeMenuL( *item );
  5224                             TryLaunchCascadeMenuL( *item );
  5225                             }
  5225                             }
  5226                         else if ( iExtension->iButtonDownItem == iSelectedItem )
  5226                         else if ( iExtension->iButtonDownItem == iSelectedItem )
  5227                             {
  5227                             {
  5228                             iExtension->ImmediateFeedback( ETouchFeedbackList,
  5228                             iExtension->ImmediateFeedback( ETouchFeedbackBasicItem,
  5229                                                            ETouchFeedbackVibra );
  5229                                                            ETouchFeedbackVibra );
  5230                             if( !IsCascadeMenuPane() )
  5230                             if( !IsCascadeMenuPane() )
  5231                                 {
  5231                                 {
  5232                                 // EFalse = don't stop transition if opening the cascade menu 
  5232                                 // EFalse = don't stop transition if opening the cascade menu 
  5233                                 // just report selection
  5233                                 // just report selection
  5279                 {
  5279                 {
  5280                 if ( iExtension->iFlickActive )
  5280                 if ( iExtension->iFlickActive )
  5281                     {
  5281                     {
  5282                     noSelection = ETrue;
  5282                     noSelection = ETrue;
  5283 					//when touch down during the flicking, play a basic list feedback
  5283 					//when touch down during the flicking, play a basic list feedback
  5284                     iExtension->ImmediateFeedback( ETouchFeedbackList );
  5284                     iExtension->ImmediateFeedback( ETouchFeedbackBasicItem );
  5285                     }
  5285                     }
  5286                 // stop physics for drag
  5286                 // stop physics for drag
  5287                 iExtension->iPhysics->StopPhysics();
  5287                 iExtension->iPhysics->StopPhysics();
  5288                 iExtension->iPhysics->ResetFriction();
  5288                 iExtension->iPhysics->ResetFriction();
  5289                 
  5289                 
  5310                         {
  5310                         {
  5311                         if( AknLayoutUtils::PenEnabled() )
  5311                         if( AknLayoutUtils::PenEnabled() )
  5312                             {                            
  5312                             {                            
  5313                             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  5313                             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  5314                                 {
  5314                                 {
  5315                                 iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
  5315                                 iExtension->ImmediateFeedback( ETouchFeedbackPopupClose );
  5316                                 }
  5316                                 }
  5317                             else
  5317                             else
  5318                                 {
  5318                                 {
  5319                                 iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
  5319                                 iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
  5320                                 }
  5320                                 }
  5365                                 iExtension->iPressedDown = ETrue;
  5365                                 iExtension->iPressedDown = ETrue;
  5366 
  5366 
  5367                                 // Start timer for pressed highlight
  5367                                 // Start timer for pressed highlight
  5368                                 if ( !noSelection )
  5368                                 if ( !noSelection )
  5369                                     {
  5369                                     {
  5370                                     iExtension->ImmediateFeedback( ETouchFeedbackList );
  5370                                     iExtension->ImmediateFeedback( ETouchFeedbackBasicItem );
  5371                                     iExtension->StartHighlightTimerL();
  5371                                     iExtension->StartHighlightTimerL();
  5372                                     }
  5372                                     }
  5373                                 iExtension->iNextHighlightItem = ii;
  5373                                 iExtension->iNextHighlightItem = ii;
  5374                                 iExtension->iButtonDownItem = ii;
  5374                                 iExtension->iButtonDownItem = ii;
  5375                                 
  5375                                 
  5376                                 // down even on already highlighted item => list feedback
  5376                                 // down even on already highlighted item => list feedback
  5377                                 if ( iExtension->iButtonDownItem == iSelectedItem )
  5377                                 if ( iExtension->iButtonDownItem == iSelectedItem )
  5378                                     {
  5378                                     {
  5379                                     iExtension->ImmediateFeedback( ETouchFeedbackList );
  5379                                     iExtension->ImmediateFeedback( ETouchFeedbackBasicItem );
  5380                                     }
  5380                                     }
  5381                                 if ( noSelection )
  5381                                 if ( noSelection )
  5382                                     {
  5382                                     {
  5383                                     iExtension->iButtonDownItem = KErrNotFound;
  5383                                     iExtension->iButtonDownItem = KErrNotFound;
  5384                                     }
  5384                                     }
  5438                         {
  5438                         {
  5439                         if( AknLayoutUtils::PenEnabled() )
  5439                         if( AknLayoutUtils::PenEnabled() )
  5440                             {                            
  5440                             {                            
  5441                             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  5441                             if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
  5442                                 {
  5442                                 {
  5443                                 iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
  5443                                 iExtension->ImmediateFeedback( ETouchFeedbackPopupClose );
  5444                                 }
  5444                                 }
  5445                             else
  5445                             else
  5446                                 {
  5446                                 {
  5447                                 iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
  5447                                 iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
  5448                                 }
  5448                                 }
  5547                                     {
  5547                                     {
  5548                                     if ( CAknTransitionUtils::TransitionsEnabled(
  5548                                     if ( CAknTransitionUtils::TransitionsEnabled(
  5549                                             AknTransEffect::EComponentTransitionsOff ) )
  5549                                             AknTransEffect::EComponentTransitionsOff ) )
  5550                                         {
  5550                                         {
  5551                                         iExtension->ImmediateFeedback(
  5551                                         iExtension->ImmediateFeedback(
  5552                                                 ETouchFeedbackDecreasingPopUp );
  5552                                                 ETouchFeedbackPopupClose );
  5553                                         }
  5553                                         }
  5554                                     else
  5554                                     else
  5555                                         {
  5555                                         {
  5556                                         iExtension->ImmediateFeedback(
  5556                                         iExtension->ImmediateFeedback(
  5557                                                 ETouchFeedbackPopUp );
  5557                                                 ETouchFeedbackPopUp );
  6103             default:
  6103             default:
  6104                 update = EFalse;
  6104                 update = EFalse;
  6105                 break;
  6105                 break;
  6106             }
  6106             }
  6107 
  6107 
  6108 
  6108         // if topItem changed, then draw menu again.
       
  6109         if ( newTopItem != topItem )
       
  6110             {
  6109 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
  6111 #ifdef RD_UI_TRANSITION_EFFECTS_LIST
  6110             if ( effects )
  6112             if ( effects )
  6111                 {
  6113                 {
  6112                 transApi->SetMoveType( newTopItem > topItem ?
  6114                 transApi->SetMoveType( newTopItem > topItem ?
  6113                     MAknListBoxTfxInternal::EListScrollDown :
  6115                     MAknListBoxTfxInternal::EListScrollDown :
  6121             iExtension->iViewPosition.iY = 
  6123             iExtension->iViewPosition.iY = 
  6122                 iExtension->iListTopIndex + iExtension->iViewHeight / 2;              
  6124                 iExtension->iListTopIndex + iExtension->iViewHeight / 2;              
  6123                           
  6125                           
  6124             iExtension->ViewPositionChanged( iExtension->iViewPosition );
  6126             iExtension->ViewPositionChanged( iExtension->iViewPosition );
  6125 
  6127 
       
  6128             }
  6126         }
  6129         }
  6127     _AKNTRACE_FUNC_EXIT;
  6130     _AKNTRACE_FUNC_EXIT;
  6128     }
  6131     }
  6129 
  6132 
  6130 // -----------------------------------------------------------------------------
  6133 // -----------------------------------------------------------------------------