menufw/menufwui/mmwidgets/src/mmfloatingitem.cpp
branchRCL_3
changeset 26 1b758917cafc
parent 0 f72a12da539e
equal deleted inserted replaced
25:137ebc85284b 26:1b758917cafc
    20 #include "mmfloatingitem.h"
    20 #include "mmfloatingitem.h"
    21 
    21 
    22 // -----------------------------------------------------------------------------
    22 // -----------------------------------------------------------------------------
    23 //
    23 //
    24 // -----------------------------------------------------------------------------
    24 // -----------------------------------------------------------------------------
    25 // 
    25 //
    26 TMmFloatingItem::TMmFloatingItem( TInt aDrawnIndex, TPoint aStartPosition,
    26 TMmFloatingItem::TMmFloatingItem( TInt aDrawnIndex, TPoint aStartPosition,
    27         TMmFloatingItemType aType, TInt aAnimationFrames, CListBoxView* aView ) 
    27         TMmFloatingItemType aType, TInt aAnimationFrames, CListBoxView* aView )
    28     {
    28     {
    29     iView = aView;
    29     iView = aView;
    30     iSizeStep = 0;
    30     iSizeStep = 0;
    31     iZoomRatio = 1;
    31     iZoomRatio = 1;
    32     iManualDelete = EFalse;
    32     iManualDelete = EFalse;
    33     
    33 
    34     if ( iView )
    34     if ( iView )
    35         {
    35         {
    36         // item position is relative
    36         // item position is relative
    37         iItemPosition = aStartPosition - iView->ItemPos( 0 );
    37         iItemPosition = aStartPosition - iView->ItemPos( 0 );
    38         }
    38         }
    50     }
    50     }
    51 
    51 
    52 // -----------------------------------------------------------------------------
    52 // -----------------------------------------------------------------------------
    53 //
    53 //
    54 // -----------------------------------------------------------------------------
    54 // -----------------------------------------------------------------------------
    55 // 
    55 //
    56 void TMmFloatingItem::SetPositionStep( TPoint aDiffetenceVector  )
    56 void TMmFloatingItem::SetPositionStep( TPoint aDiffetenceVector  )
    57      {
    57      {
    58      ASSERT( iFrames );
    58      ASSERT( iFrames );
    59      iFrameCounter = 0;
    59      iFrameCounter = 0;
    60      CalculateSteps( aDiffetenceVector );
    60      CalculateSteps( aDiffetenceVector );
    61      }
    61      }
    62 // -----------------------------------------------------------------------------
    62 // -----------------------------------------------------------------------------
    63 //
    63 //
    64 // -----------------------------------------------------------------------------
    64 // -----------------------------------------------------------------------------
    65 // 
    65 //
    66 void TMmFloatingItem::CalculateSteps(TPoint aVector) 
    66 void TMmFloatingItem::CalculateSteps(TPoint aVector)
    67     {
    67     {
    68     iPositionStep.Reset();
    68     iPositionStep.Reset();
    69 
    69 
    70     TReal x = aVector.iX;
    70     TReal x = aVector.iX;
    71     TReal y = aVector.iY;
    71     TReal y = aVector.iY;
    72     
    72 
    73     TReal sx = 0.0;
    73     TReal sx = 0.0;
    74     TReal sy = 0.0;
    74     TReal sy = 0.0;
    75     
    75 
    76     for( TInt i = 0; i < iFrames; i++ )
    76     for( TInt i = 0; i < iFrames; i++ )
    77     	{
    77       {
    78     	TReal sin;
    78       TReal sin;
    79     	Math::Sin( sin, (i+1) * KPi/iFrames + KPi * 3./2.  );
    79       Math::Sin( sin, (i+1) * KPi/iFrames + KPi * 3./2.  );
    80     	TReal xx = x * (0.5*( sin + 1.0 ) ) - sx;
    80       TReal xx = x * (0.5*( sin + 1.0 ) ) - sx;
    81     	TReal yy = y * (0.5*( sin + 1.0 ) ) - sy;
    81       TReal yy = y * (0.5*( sin + 1.0 ) ) - sy;
    82     	
    82 
    83     	sx += xx;
    83       sx += xx;
    84     	sy += yy;
    84       sy += yy;
    85     	
    85 
    86     	iPositionStep.At(i) = TPoint( xx, yy );
    86       iPositionStep.At(i) = TPoint( xx, yy );
    87     	}
    87       }
    88     }
    88     }
    89 
    89 
    90 // -----------------------------------------------------------------------------
    90 // -----------------------------------------------------------------------------
    91 //
    91 //
    92 // -----------------------------------------------------------------------------
    92 // -----------------------------------------------------------------------------
    93 // 
    93 //
    94 void TMmFloatingItem::SetSizeStep( TReal aStartSize, TReal aFinalSize )
    94 void TMmFloatingItem::SetSizeStep( TReal aStartSize, TReal aFinalSize )
    95     {
    95     {
    96     ASSERT( iFrames );
    96     ASSERT( iFrames );
    97     iFrameCounter = 0;
    97     iFrameCounter = 0;
    98     iZoomRatio = aStartSize;
    98     iZoomRatio = aStartSize;
   101 
   101 
   102 
   102 
   103 // -----------------------------------------------------------------------------
   103 // -----------------------------------------------------------------------------
   104 //
   104 //
   105 // -----------------------------------------------------------------------------
   105 // -----------------------------------------------------------------------------
   106 //   
   106 //
   107 TBool TMmFloatingItem::MakeStep() 
   107 TBool TMmFloatingItem::MakeStep()
   108     {
   108     {
   109     TBool ret(EFalse);
   109     TBool ret(EFalse);
   110     
   110 
   111     if(iFrameCounter >= iFrames && iManualDelete == EFalse)
   111     if( iFrameCounter >= iFrames && iManualDelete == EFalse )
   112         {
   112         {
   113         InvalidateFloatingItem();
   113         InvalidateFloatingItem();
   114         }
   114         }
   115     else if (iFrameCounter < iFrames)
   115     else if( iFrameCounter < iFrames )
   116         {
   116         {
   117         iItemPosition += iPositionStep[iFrameCounter];
   117         iItemPosition += iPositionStep[iFrameCounter];
   118         iZoomRatio += iSizeStep;
   118         iZoomRatio += iSizeStep;
   119         ret = Abs(iPositionStep[iFrameCounter].iX) > 0 
   119         ret = Abs(iPositionStep[iFrameCounter].iX) > 0
   120 			|| Abs(iPositionStep[iFrameCounter].iY > 0)
   120                 || Abs(iPositionStep[iFrameCounter].iY > 0)
   121 			|| Abs(iSizeStep) > 0;
   121                 || Abs(iSizeStep) > 0;
   122 		iFrameCounter++;
   122         iFrameCounter++;
   123         }
   123         }
   124     
   124 
   125     return ret;
   125     return ret;
   126     }
   126     }
   127 
   127 
   128 // -----------------------------------------------------------------------------
   128 // -----------------------------------------------------------------------------
   129 //
   129 //
   130 // -----------------------------------------------------------------------------
   130 // -----------------------------------------------------------------------------
   131 // 
   131 //
   132 void TMmFloatingItem::SetManualDelete(TBool aManual)
   132 void TMmFloatingItem::SetManualDelete(TBool aManual)
   133     {
   133     {
   134     iManualDelete = aManual;
   134     iManualDelete = aManual;
   135     }
   135     }
   136 
   136 
   137 // -----------------------------------------------------------------------------
   137 // -----------------------------------------------------------------------------
   138 //
   138 //
   139 // -----------------------------------------------------------------------------
   139 // -----------------------------------------------------------------------------
   140 // 
   140 //
   141 TReal TMmFloatingItem::GetCurrentZoomRatio() const
   141 TReal TMmFloatingItem::GetCurrentZoomRatio() const
   142     {
   142     {
   143     return iZoomRatio;
   143     return iZoomRatio;
   144     }
   144     }
   145 
   145 
   146 // -----------------------------------------------------------------------------
   146 // -----------------------------------------------------------------------------
   147 //
   147 //
   148 // -----------------------------------------------------------------------------
   148 // -----------------------------------------------------------------------------
   149 // 
   149 //
   150 TMmFloatingItemType TMmFloatingItem::GetFloatingItemType() const
   150 TMmFloatingItemType TMmFloatingItem::GetFloatingItemType() const
   151     {
   151     {
   152     return iType;
   152     return iType;
   153     }
   153     }
   154 
   154 
   178     iDrawnItemIndex = KErrNotFound;
   178     iDrawnItemIndex = KErrNotFound;
   179     }
   179     }
   180 
   180 
   181 TBool TMmFloatingItem::IsFloatingItemValid() const
   181 TBool TMmFloatingItem::IsFloatingItemValid() const
   182     {
   182     {
   183     return GetDrawnItemIndex() != KErrNotFound 
   183     return GetDrawnItemIndex() != KErrNotFound
   184 		&& iType != EPostDragRefreshItem 
   184     && iType != EPostDragRefreshItem
   185 		&& iType != EPostHighlightChangeRefreshItem;
   185     && iType != EPostHighlightChangeRefreshItem;
   186     }
   186     }
   187 
   187 
   188 TBool TMmFloatingItem::IsManualDelete()
   188 TBool TMmFloatingItem::IsManualDelete()
   189     {
   189     {
   190     return iManualDelete;
   190     return iManualDelete;