21 #include <layoutmetadata.cdl.h> |
21 #include <layoutmetadata.cdl.h> |
22 #include <AknsFrameBackgroundControlContext.h> |
22 #include <AknsFrameBackgroundControlContext.h> |
23 #include <touchfeedback.h> |
23 #include <touchfeedback.h> |
24 |
24 |
25 #include "tsfastswapgrid.h" |
25 #include "tsfastswapgrid.h" |
|
26 #include "tsapplogging.h" |
26 |
27 |
27 /* ================================================================================ |
28 /* ================================================================================ |
28 * CTsFastSwapGrid |
29 * CTsFastSwapGrid |
29 * ================================================================================ |
30 * ================================================================================ |
30 */ |
31 */ |
63 // CTsFastSwapGrid::ConstructL |
64 // CTsFastSwapGrid::ConstructL |
64 // ----------------------------------------------------------------------------- |
65 // ----------------------------------------------------------------------------- |
65 // |
66 // |
66 void CTsFastSwapGrid::ConstructL( const CCoeControl* aParent ) |
67 void CTsFastSwapGrid::ConstructL( const CCoeControl* aParent ) |
67 { |
68 { |
|
69 TSLOG_CONTEXT( CTsFastSwapGrid::ConstructL, TSLOG_LOCAL ); |
|
70 TSLOG_IN(); |
|
71 |
68 iParent = aParent; |
72 iParent = aParent; |
69 CAknGrid::ConstructL( aParent, EAknListBoxSelectionGrid ); |
73 CAknGrid::ConstructL( aParent, EAknListBoxSelectionGrid ); |
70 SetPrimaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops); |
74 SetPrimaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops); |
71 SetSecondaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops); |
75 SetSecondaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops); |
72 iBgContext = CAknsFrameBackgroundControlContext::NewL( |
76 iBgContext = CAknsFrameBackgroundControlContext::NewL( |
77 iBgContext->SetCenter( KAknsIIDQsnFrPopupCenter ); |
81 iBgContext->SetCenter( KAknsIIDQsnFrPopupCenter ); |
78 iCloseIconRedrawTimer = new (ELeave) CTsFastSwapTimer( *this ); |
82 iCloseIconRedrawTimer = new (ELeave) CTsFastSwapTimer( *this ); |
79 iCloseIconRedrawTimer->ConstructL(); |
83 iCloseIconRedrawTimer->ConstructL(); |
80 iFeedbackTimer = new (ELeave) CTsFastSwapTimer( *this ); |
84 iFeedbackTimer = new (ELeave) CTsFastSwapTimer( *this ); |
81 iFeedbackTimer->ConstructL(); |
85 iFeedbackTimer->ConstructL(); |
|
86 |
|
87 TSLOG_OUT(); |
82 } |
88 } |
83 |
89 |
84 // ----------------------------------------------------------------------------- |
90 // ----------------------------------------------------------------------------- |
85 // CTsFastSwapGrid::HandlePointerEventL |
91 // CTsFastSwapGrid::HandlePointerEventL |
86 // ----------------------------------------------------------------------------- |
92 // ----------------------------------------------------------------------------- |
87 // |
93 // |
88 void CTsFastSwapGrid::HandlePointerEventL( const TPointerEvent &aPointerEvent ) |
94 void CTsFastSwapGrid::HandlePointerEventL( const TPointerEvent &aPointerEvent ) |
89 { |
95 { |
|
96 TSLOG_CONTEXT( CTsFastSwapGrid::HandlePointerEventL, TSLOG_LOCAL ); |
|
97 TSLOG_IN(); |
|
98 |
90 TBool eventHandled( EFalse ); |
99 TBool eventHandled( EFalse ); |
91 if ( aPointerEvent.iType == TPointerEvent::EButton1Up || |
100 if ( aPointerEvent.iType == TPointerEvent::EButton1Up || |
92 aPointerEvent.iType == TPointerEvent::EButton1Down ) |
101 aPointerEvent.iType == TPointerEvent::EButton1Down ) |
93 { |
102 { |
94 // Check if close icon has been hit |
103 // Check if close icon has been hit |
100 { |
109 { |
101 hitItem = i; |
110 hitItem = i; |
102 break; |
111 break; |
103 } |
112 } |
104 } |
113 } |
105 if ( hitItem != KErrNotFound ) |
114 if ( hitItem != KErrNotFound && CanCloseItem( hitItem ) ) |
106 { |
115 { |
107 // Item found, check if close icon has been hit |
116 // Item found, check if close icon has been hit |
108 TPoint itemPos = GridView()->ItemPos( hitItem ); |
117 TPoint itemPos = GridView()->ItemPos( hitItem ); |
109 TSize itemSize = GridView()->ItemSize( hitItem ); |
118 TSize itemSize = GridView()->ItemSize( hitItem ); |
110 TRect itemRect( itemPos, itemSize ); |
119 TRect itemRect( itemPos, itemSize ); |
171 itemDrawer->SetRedrawBackground( EFalse ); |
180 itemDrawer->SetRedrawBackground( EFalse ); |
172 } |
181 } |
173 CAknGrid::HandlePointerEventL( aPointerEvent ); |
182 CAknGrid::HandlePointerEventL( aPointerEvent ); |
174 Redraw(); |
183 Redraw(); |
175 } |
184 } |
|
185 |
|
186 TSLOG_OUT(); |
176 } |
187 } |
177 |
188 |
178 |
189 |
179 // ----------------------------------------------------------------------------- |
190 // ----------------------------------------------------------------------------- |
180 // CTsFastSwapGrid::HandleDeviceStateChanged |
191 // CTsFastSwapGrid::HandleDeviceStateChanged |
181 // ----------------------------------------------------------------------------- |
192 // ----------------------------------------------------------------------------- |
182 // |
193 // |
183 void CTsFastSwapGrid::HandleDeviceStateChanged( TChangeType aChangeType ) |
194 void CTsFastSwapGrid::HandleDeviceStateChanged( TChangeType aChangeType ) |
184 { |
195 { |
|
196 TSLOG_CONTEXT( CTsFastSwapGrid::HandleDeviceStateChanged, TSLOG_LOCAL ); |
|
197 TSLOG_IN(); |
|
198 |
185 if ( aChangeType == ESkin ) |
199 if ( aChangeType == ESkin ) |
186 { |
200 { |
187 LoadCloseIcon(); |
201 LoadCloseIcon(); |
188 } |
202 } |
|
203 |
|
204 TSLOG_OUT(); |
189 } |
205 } |
190 |
206 |
191 // ----------------------------------------------------------------------------- |
207 // ----------------------------------------------------------------------------- |
192 // CTsFastSwapGrid::MopSupplyObject |
208 // CTsFastSwapGrid::MopSupplyObject |
193 // ----------------------------------------------------------------------------- |
209 // ----------------------------------------------------------------------------- |
206 // CTsFastSwapGrid::HandleResourceChange |
222 // CTsFastSwapGrid::HandleResourceChange |
207 // ----------------------------------------------------------------------------- |
223 // ----------------------------------------------------------------------------- |
208 // |
224 // |
209 void CTsFastSwapGrid::HandleResourceChange( TInt aType ) |
225 void CTsFastSwapGrid::HandleResourceChange( TInt aType ) |
210 { |
226 { |
|
227 TSLOG_CONTEXT( CTsFastSwapGrid::HandleResourceChange, TSLOG_LOCAL ); |
|
228 TSLOG_IN(); |
|
229 |
211 if ( aType != KEikDynamicLayoutVariantSwitch && |
230 if ( aType != KEikDynamicLayoutVariantSwitch && |
212 Model()->ItemTextArray()->MdcaCount() ) |
231 Model()->ItemTextArray()->MdcaCount() ) |
213 { |
232 { |
214 CAknGrid::HandleResourceChange( aType ); |
233 CAknGrid::HandleResourceChange( aType ); |
215 } |
234 } |
|
235 |
|
236 TSLOG_OUT(); |
216 } |
237 } |
217 |
238 |
218 |
239 |
219 // ----------------------------------------------------------------------------- |
240 // ----------------------------------------------------------------------------- |
220 // CTsFastSwapGrid::SizeChanged |
241 // CTsFastSwapGrid::SizeChanged |
239 // CTsFastSwapGrid::CreateItemDrawerL |
260 // CTsFastSwapGrid::CreateItemDrawerL |
240 // ----------------------------------------------------------------------------- |
261 // ----------------------------------------------------------------------------- |
241 // |
262 // |
242 void CTsFastSwapGrid::CreateItemDrawerL() |
263 void CTsFastSwapGrid::CreateItemDrawerL() |
243 { |
264 { |
244 TRect availableRect; |
265 TSLOG_CONTEXT( CTsFastSwapGrid::CreateItemDrawerL, TSLOG_LOCAL ); |
245 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, availableRect); |
266 TSLOG_IN(); |
|
267 |
|
268 TPixelsAndRotation screenSize; |
|
269 iEikonEnv->ScreenDevice()->GetDefaultScreenSizeAndRotation(screenSize); |
|
270 TRect availableRect = TRect( TPoint(0,0), screenSize.iPixelSize ); |
246 TAknLayoutRect fastSwapAreaPane; |
271 TAknLayoutRect fastSwapAreaPane; |
247 TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; |
272 TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; |
248 fastSwapAreaPane.LayoutRect( availableRect, |
273 fastSwapAreaPane.LayoutRect( availableRect, |
249 AknLayoutScalable_Apps::tport_appsw_pane( variety ) ); |
274 AknLayoutScalable_Apps::tport_appsw_pane( variety ) ); |
250 const TInt leftOffset = fastSwapAreaPane.Rect().iTl.iX; |
275 const TInt leftOffset = iParent->Rect().iTl.iX; |
251 const TInt rightOffset = availableRect.Width() - fastSwapAreaPane.Rect().iBr.iX; |
276 const TInt rightOffset = availableRect.Width() - iParent->Rect().iBr.iX; |
252 SetVisibleViewRect(fastSwapAreaPane.Rect()); |
277 SetVisibleViewRect(fastSwapAreaPane.Rect()); |
253 |
278 |
254 CFormattedCellGridData* data = CFormattedCellGridData::NewL(); |
279 CFormattedCellGridData* data = CFormattedCellGridData::NewL(); |
255 CleanupStack::PushL( data ); |
280 CleanupStack::PushL( data ); |
256 CTsGridItemDrawer* itemDrawer = |
281 CTsGridItemDrawer* itemDrawer = |
257 new ( ELeave ) CTsGridItemDrawer( this, data ); |
282 new ( ELeave ) CTsGridItemDrawer( this, data, availableRect ); |
258 CleanupStack::PushL( itemDrawer ); |
283 CleanupStack::PushL( itemDrawer ); |
259 itemDrawer->SetEdgeOffset( leftOffset, rightOffset ); |
284 itemDrawer->SetEdgeOffset( leftOffset, rightOffset ); |
260 iItemDrawer = itemDrawer; |
285 iItemDrawer = itemDrawer; |
261 CleanupStack::Pop( itemDrawer ); |
286 CleanupStack::Pop( itemDrawer ); |
262 CleanupStack::Pop( data ); |
287 CleanupStack::Pop( data ); |
263 LoadCloseIcon(); |
288 LoadCloseIcon(); |
|
289 |
|
290 TSLOG_OUT(); |
264 } |
291 } |
265 |
292 |
266 // ----------------------------------------------------------------------------- |
293 // ----------------------------------------------------------------------------- |
267 // CTsFastSwapGrid::TimerCompletedL |
294 // CTsFastSwapGrid::TimerCompletedL |
268 // ----------------------------------------------------------------------------- |
295 // ----------------------------------------------------------------------------- |
603 // CTsGridItemDrawer::CTsGridItemDrawer |
630 // CTsGridItemDrawer::CTsGridItemDrawer |
604 // ----------------------------------------------------------------------------- |
631 // ----------------------------------------------------------------------------- |
605 // |
632 // |
606 CTsGridItemDrawer::CTsGridItemDrawer( |
633 CTsGridItemDrawer::CTsGridItemDrawer( |
607 CTsFastSwapGrid* aGrid, |
634 CTsFastSwapGrid* aGrid, |
608 CFormattedCellListBoxData* aData ) |
635 CFormattedCellListBoxData* aData, |
|
636 TRect aScreenRect ) |
609 : CFormattedCellListBoxItemDrawer( aGrid->Model(), |
637 : CFormattedCellListBoxItemDrawer( aGrid->Model(), |
610 NULL, |
638 NULL, |
611 aData ), |
639 aData ), |
612 iGrid( aGrid ) |
640 iGrid( aGrid ), |
613 { |
641 iScreenRect(aScreenRect) |
614 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, iScreenRect); |
642 { |
615 } |
643 } |
616 |
644 |
617 |
645 |
618 // ----------------------------------------------------------------------------- |
646 // ----------------------------------------------------------------------------- |
619 // CTsGridItemDrawer::~CTsGridItemDrawer |
647 // CTsGridItemDrawer::~CTsGridItemDrawer |