taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp
branchRCL_3
changeset 16 9674c1a575e9
parent 9 f966699dea19
child 30 b8fae6b8a148
equal deleted inserted replaced
15:ff572dfe6d86 16:9674c1a575e9
    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