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; |