diff -r 0aa5fbdfbc30 -r 3d340a0166ff uifw/eikctl/src/EIKCLBD.CPP --- a/uifw/eikctl/src/EIKCLBD.CPP Tue Apr 27 16:55:05 2010 +0300 +++ b/uifw/eikctl/src/EIKCLBD.CPP Tue May 11 16:27:42 2010 +0300 @@ -32,6 +32,8 @@ #include #include #include +#include +#include #ifdef RD_UI_TRANSITION_EFFECTS_LIST @@ -116,7 +118,7 @@ void DeleteAnim(); void FocusGained(); void FocusLost(); - void SkinChanged(); + void SkinChangedL(); void SetControl( CCoeControl* aControl ); // Implementation of MCoeForegroundObserver @@ -141,6 +143,9 @@ CWindowGc& aGc, const TRect& aOutRect, const TRect& aInnerRect ) const; + + void LoadMarkingIconsL(); + public: //for handling column alignment struct TColumnExt { @@ -239,6 +244,7 @@ CArrayFix* iColumnExtArray; //for column alignment TRect iMarginRect; + CAknIconArray* iMarkingIconArray; }; /** @@ -306,6 +312,7 @@ iKineticScrolling = CAknPhysics::FeatureEnabled(); + LoadMarkingIconsL(); _AKNTRACE_FUNC_EXIT; } @@ -330,6 +337,13 @@ delete iColorBmp; delete iHiliBmp; delete iColumnExtArray; + + if ( iMarkingIconArray ) + { + iMarkingIconArray->ResetAndDestroy(); + } + + delete iMarkingIconArray; } MAknsControlContext* CColumnListBoxDataExtension::SkinBackgroundContext() const @@ -520,17 +534,20 @@ } } + // ----------------------------------------------------------------------------- -// CColumnListBoxDataExtension::SkinChanged +// CColumnListBoxDataExtension::SkinChangedL // ----------------------------------------------------------------------------- // -void CColumnListBoxDataExtension::SkinChanged() +void CColumnListBoxDataExtension::SkinChangedL() { DeleteAnim(); TryCreateAnimation(); CreateColorBitmapsL(); + LoadMarkingIconsL(); } + // ----------------------------------------------------------------------------- // CColumnListBoxDataExtension::SetControl // ----------------------------------------------------------------------------- @@ -1122,19 +1139,63 @@ KAknsIIDQsnFrListCenterPressed ); } + +// ----------------------------------------------------------------------------- +// CColumnListBoxDataExtension::LoadMarkingIconsL +// ----------------------------------------------------------------------------- +// +void CColumnListBoxDataExtension::LoadMarkingIconsL() + { + if ( !iMarkingIconArray ) + { + iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 ); + } + else + { + iMarkingIconArray->ResetAndDestroy(); + } + + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + const TDesC& avkonIconFile = AknIconUtils::AvkonIconFileName(); + + CGulIcon* icon = AknsUtils::CreateGulIconL( skin, + KAknsIIDQgnPropCheckboxOn, + avkonIconFile, + EMbmAvkonQgn_prop_checkbox_on, + EMbmAvkonQgn_prop_checkbox_on_mask ); + + CleanupStack::PushL( icon ); + iMarkingIconArray->AppendL( icon ); + CleanupStack::Pop( icon ); + + icon = AknsUtils::CreateGulIconL( skin, + KAknsIIDQgnPropCheckboxOff, + avkonIconFile, + EMbmAvkonQgn_prop_checkbox_off, + EMbmAvkonQgn_prop_checkbox_off_mask ); + + CleanupStack::PushL( icon ); + iMarkingIconArray->AppendL( icon ); + CleanupStack::Pop( icon ); + } + + EXPORT_C CCoeControl *CColumnListBoxData::Control() const { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); return iExtension->iControl; } EXPORT_C void CColumnListBoxData::SetControl(CCoeControl *aControl) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); iExtension->SetControl( aControl ); } EXPORT_C MAknsControlContext* CColumnListBoxData::SkinBackgroundContext() const { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if (iExtension->iSkinEnabled) { return iExtension->iSkinControlContext; @@ -1145,12 +1206,14 @@ void CColumnListBoxData::SetSkinBackgroundContext(CAknsListBoxBackgroundControlContext *aContext) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); delete iExtension->iSkinControlContext; iExtension->iSkinControlContext = aContext; } void CColumnListBoxData::CreatePictographInterfaceL() { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if ( !iExtension->iPictoInterface ) { iExtension->iPictoInterface = CAknPictographInterface::NewL( @@ -1160,6 +1223,7 @@ EXPORT_C void CColumnListBoxData::SetSkinHighlightFrame(const TAknsItemID *aFrameId, const TAknsItemID *aFrameCenterId) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); iExtension->iSkinHighlightFrameId = aFrameId; iExtension->iSkinHighlightFrameCenterId = aFrameCenterId; @@ -1167,12 +1231,14 @@ EXPORT_C void CColumnListBoxData::SetSkinEnabledL(TBool aEnabled) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); CListBoxData::SetSkinEnabledL(aEnabled); iExtension->iSkinEnabled = aEnabled; } EXPORT_C void CColumnListBoxData::SetSkinStyle(const TAknsItemID *aId, const TRect &aTileRect) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if (iExtension->iSkinControlContext) { iExtension->iSkinControlContext->SetTiledBitmap(*aId); @@ -1182,6 +1248,7 @@ EXPORT_C void CColumnListBoxData::SetListEndSkinStyle(const TAknsItemID *aId, const TRect &aTileRect) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if (iExtension->iSkinControlContext) { iExtension->iSkinControlContext->SetBottomBitmap(*aId); @@ -1191,6 +1258,7 @@ void CColumnListBoxData::CreateMarqueeControlL() { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); if ( !iExtension->iMarquee ) { @@ -1210,6 +1278,7 @@ void CColumnListBoxData::ResetMarquee() { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); if (iExtension->iMarquee) { @@ -1223,11 +1292,13 @@ TInt CColumnListBoxData::CurrentMarqueeItemIndex() { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); return iExtension->iCurrentItem; } void CColumnListBoxData::SetCurrentMarqueeItemIndex(TInt aIndex) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); iExtension->iCurrentItem = aIndex; } @@ -1236,6 +1307,7 @@ // EXPORT_C void CColumnListBoxData::EnableMarqueeL(TBool aEnable) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); // CreateMarqueeControlL does nothing if marquee already exists, // so let's just call it just in case. @@ -1246,15 +1318,13 @@ EXPORT_C void CColumnListBoxData::SetSeparatorLinePosition(TAknSeparatorLinePosition aPosition) { - if (iExtension) - iExtension->iSeparatorLinePosition = aPosition; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + iExtension->iSeparatorLinePosition = aPosition; } EXPORT_C TAknSeparatorLinePosition CColumnListBoxData::SeparatorLinePosition() const { - if (iExtension) - return iExtension->iSeparatorLinePosition; - else - return ENoLine; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + return iExtension->iSeparatorLinePosition; } EXPORT_C CAknLayoutData *CColumnListBoxData::LayoutData() const { @@ -1311,12 +1381,12 @@ // D'tor // { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); delete iColumnArray; if (IconArray()) { IconArray()->ResetAndDestroy(); - if (iExtension) - delete iExtension->iIconArray; + delete iExtension->iIconArray; } delete iExtension; } @@ -1393,10 +1463,11 @@ // Set a columns width // { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); TInt index; FindColumnIndexOrAddL(index,aColumn); At(index).iWidth=aWidth; - if ( iExtension && iExtension->iUseLayoutData ) + if ( iExtension->iUseLayoutData ) { iExtension->iUseLayoutData = EFalse; CListBoxView* view = static_cast( iExtension->iControl )->View(); @@ -1467,6 +1538,7 @@ // Set a columns baseline position // { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); TInt index; FindColumnIndexOrAddL(index,aColumn); @@ -1474,7 +1546,7 @@ // can not be nicely supported by new drawing system // --> revert to Symbian style drawing - if ( iExtension && iExtension->iUseLayoutData ) + if ( iExtension->iUseLayoutData ) { iExtension->iUseLayoutData = EFalse; #ifdef RD_UI_TRANSITION_EFFECTS_LIST @@ -1509,6 +1581,7 @@ // Set a columns vertical cap // { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); TInt index; FindColumnIndexOrAddL(index,aColumn); @@ -1516,7 +1589,7 @@ // can not be nicely supported by new drawing system // --> revert to Symbian style drawing - if ( iExtension && iExtension->iUseLayoutData ) + if ( iExtension->iUseLayoutData ) { iExtension->iUseLayoutData = EFalse; #ifdef RD_UI_TRANSITION_EFFECTS_LIST @@ -1628,6 +1701,7 @@ // Set a columns alignment // { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); TInt index; FindColumnIndexOrAddL(index,aColumn); At(index).iAlign=aAlign; @@ -1728,10 +1802,8 @@ // Return the list of icons // { - if (iExtension) - return iExtension->iIconArray; - else - return 0; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + return iExtension->iIconArray; } EXPORT_C void CColumnListBoxData::SetIconArray(CArrayPtr* aArray) @@ -1739,14 +1811,9 @@ // Passes ownership of the icon list aArray (assumes any previous list has been deleted by the caller) // { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - if (iExtension) - iExtension->iIconArray=aArray; - else - { - aArray->ResetAndDestroy(); - delete aArray; - } + iExtension->iIconArray=aArray; } EXPORT_C CFont* CColumnListBoxData::Font(const TListItemProperties& /*aItemProperties*/, TInt aColumn) const @@ -1778,6 +1845,7 @@ void CColumnListBoxData::DrawHighLight( CWindowGc& aGc, const TRect& aRect, TBool aHighlight, MAknsSkinInstance* aSkin ) const { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); // SERIES60 Highlight drawing. if( aHighlight ) { @@ -1943,6 +2011,7 @@ TBool aHighlight, const TColors& aColors ) const { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); __ASSERT_DEBUG( iExtension->iControl, Panic( EEikPanicNullPointer )); @@ -1960,6 +2029,22 @@ TPtrC tempText; TRgb aTextColor = aHighlight ? aColors.iHighlightedText : aColors.iText; + + TBool markingMode = EFalse; + TRect itemRect( aRect ); + + if ( listbox->View() && listbox->View()->ItemDrawer() ) + { + if ( listbox->View()->ItemDrawer()->Flags() + & CListItemDrawer::EMarkingModeEnabled + && iExtension->iMarkingIconArray + && iExtension->iMarkingIconArray->Count() == 2 ) + { + markingMode = ETrue; + itemRect.iTl.iX += + AknLayoutScalable_Avkon::list_single_graphic_pane_t1( 0 ).LayoutLine().il; + } + } MAknsSkinInstance *skin = AknsUtils::SkinInstance(); MAknsControlContext *cc = AknsDrawUtils::ControlContext( Control() ); @@ -1975,9 +2060,8 @@ if ( iExtension->iSubCellsMightIntersect ) { - CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, aRect ); + CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, itemRect ); } - #ifdef RD_UI_TRANSITION_EFFECTS_LIST MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc ); #endif // RD_UI_TRANSITION_EFFECTS_LIST @@ -2017,11 +2101,43 @@ } DrawHighLight( aGc, aRect, aHighlight, skin ); + if ( markingMode && !aItemProperties.IsSelectionHidden() ) + { + TAknLayoutRect layoutRect; + layoutRect.LayoutRect( aRect, + AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) ); + + aGc.SetPenColor( aColors.iText ); + aGc.SetPenStyle( CGraphicsContext::ESolidPen ); + + CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked + + if ( listbox->View()->ItemIsSelected( iExtension->iCurrentRow ) ) + { + icon = (*iExtension->iMarkingIconArray)[0]; + } + + CFbsBitmap* bitmap = icon->Bitmap(); + + if ( bitmap ) + { + TSize size( bitmap->SizeInPixels() ); // set size if not already + TSize targetSize( layoutRect.Rect().Size() ); + + if ( size.iWidth != targetSize.iWidth && size.iHeight != targetSize.iHeight ) + { + AknIconUtils::SetSize( bitmap, targetSize, + EAspectRatioPreservedAndUnusedSpaceRemoved ); + } + + aGc.BitBltMasked( layoutRect.Rect().iTl, bitmap, TRect( layoutRect.Rect().Size() ), icon->Mask(), EFalse ); + } + + } + // The column draw loop column = 0; TInt subCellIndex = 0; - - if ( !iExtension ) { return; } #ifdef RD_UI_TRANSITION_EFFECTS_LIST if ( transApi ) @@ -2129,7 +2245,7 @@ } TAknLayoutText textLayout; - textLayout.LayoutText( aRect, textLineLayout, usedFont ); + textLayout.LayoutText( itemRect, textLineLayout, usedFont ); // *2 == leave some room for marquee const TInt maxlen( KMaxColumnDataLength * 2 ); TBuf convBuf = text.Left(maxlen); @@ -2176,7 +2292,7 @@ { iExtension->iMarquee->UseLogicalToVisualConversion( bidiConv ); - if ( iExtension->iMarquee->DrawText( aGc, aRect, textLineLayout, convBuf, usedFont, textColor ) ) + if ( iExtension->iMarquee->DrawText( aGc, itemRect, textLineLayout, convBuf, usedFont, textColor ) ) { // all the loops have been executed textLayout.DrawText( aGc, convBuf, bidiConv, textColor ); @@ -2266,7 +2382,7 @@ TAknWindowLineLayout graphicLayout = iExtension->AtSL(subCellIndex).iGraphicLayout; TAknLayoutRect graphicRect; - graphicRect.LayoutRect(aRect,graphicLayout); + graphicRect.LayoutRect( itemRect,graphicLayout ); TSize graphicSize( graphicRect.Rect().Size() ); if ( index>=0 && IconArray() ) @@ -2309,6 +2425,7 @@ TBool aHighlight, const TColors& aColors ) const { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); if ( aHighlight ) @@ -2342,11 +2459,28 @@ return; } + CEikListBox* listbox = static_cast( iExtension->iControl ); + TBool markingMode = EFalse; + TRect itemRect( aRect ); + + if ( listbox->View() && listbox->View()->ItemDrawer() ) + { + if ( listbox->View()->ItemDrawer()->Flags() + & CListItemDrawer::EMarkingModeEnabled && + iExtension->iMarkingIconArray && + iExtension->iMarkingIconArray->Count() == 2 ) + { + markingMode = ETrue; + itemRect.iTl.iX += + AknLayoutScalable_Avkon::list_single_graphic_pane_t1( 0 ).LayoutLine().il; + } + } + TInt extraVerticalSpace=(aRect.Height()-font->HeightInPixels()); TInt baseLineOffset=extraVerticalSpace/2+font->AscentInPixels(); - TRect textRect( aRect ); + TRect textRect( itemRect ); TRect textMRect; // textrect with margins. - textRect.iBr.iX=aRect.iTl.iX; + textRect.iBr.iX = itemRect.iTl.iX; TInt column=0; TPtrC text; @@ -2356,11 +2490,11 @@ // be too difficult to do without - and this is cleaner solution. // pass 1, figures out x-coordinates for columns. - TInt x = aRect.iTl.iX; + TInt x = itemRect.iTl.iX; TBool mirror = AknLayoutUtils::LayoutMirrored(); if (mirror) { - x = aRect.iBr.iX; + x = itemRect.iBr.iX; } TInt maxx = x; while(column <= lastColumn) @@ -2433,13 +2567,6 @@ cc = SkinBackgroundContext(); } - // aRect is list item's rect, width of which is smaller than width of the list - // with a scroll bar. List needs to draw under scroll bar anyway, so we need to - // modify given rect here. - TRect r(aRect); - - CEikListBox* listbox = static_cast( iExtension->iControl ); - #ifdef RD_UI_TRANSITION_EFFECTS_LIST MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc ); @@ -2475,9 +2602,7 @@ #endif // RD_UI_TRANSITION_EFFECTS_LIST } - CEikListBox* list = static_cast( iExtension->iControl ); - - if ( iExtension->iCurrentRow < list->BottomItemIndex() ) + if ( iExtension->iCurrentRow < listbox->BottomItemIndex() ) { AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin ); } @@ -2494,6 +2619,47 @@ } #endif // RD_UI_TRANSITION_EFFECTS_LIST + if ( markingMode && !aItemProperties.IsSelectionHidden() ) + { + TAknLayoutRect layoutRect; + layoutRect.LayoutRect( + aRect, + AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) ); + + aGc.SetPenColor( aColors.iText ); + aGc.SetPenStyle( CGraphicsContext::ESolidPen ); + + CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked + + if ( listbox->View()->ItemIsSelected( iExtension->iCurrentRow ) ) + { + icon = (*iExtension->iMarkingIconArray)[0]; + } + + CFbsBitmap* bitmap = icon->Bitmap(); + + if ( bitmap ) + { + TSize size( bitmap->SizeInPixels() ); // set size if not already + TSize targetSize( layoutRect.Rect().Size() ); + + if ( size.iWidth != targetSize.iWidth && + size.iHeight != targetSize.iHeight ) + { + AknIconUtils::SetSize( + bitmap, + targetSize, + EAspectRatioPreservedAndUnusedSpaceRemoved ); + } + + aGc.BitBltMasked( layoutRect.Rect().iTl, + bitmap, + TRect( layoutRect.Rect().Size() ), + icon->Mask(), + EFalse ); + } + } + // The column draw loop column = 0; FOREVER @@ -2547,7 +2713,7 @@ aGc.SetBrushColor(aColors.iHighlightedBack); } - if (AknsUtils::AvkonSkinEnabled() && iExtension) + if ( AknsUtils::AvkonSkinEnabled() ) { if (iExtension->iTextColor != NULL) { @@ -2680,8 +2846,7 @@ { CGulIcon* icon=(*IconArray())[index]; - if ( iExtension - && iExtension->iSubCellIconSize[column] != TSize(0,0) ) + if ( iExtension->iSubCellIconSize[column] != TSize(0,0) ) { TSize wanted( iExtension->iSubCellIconSize[column] ); TSize got( icon->Bitmap()->SizeInPixels() ); @@ -2880,8 +3045,8 @@ TInt aColumn, const CFont* aFont) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - if (!iExtension) return; TInt index = 0; iExtension->FindRowAndColumnIndexOrAddL(index,aRow,aColumn); iExtension->At(index).iFont=aFont; @@ -2890,7 +3055,7 @@ EXPORT_C const CFont* CColumnListBoxData::RowAndColumnFont(TInt aRow,TInt aColumn) const { - if (!iExtension) return 0; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); TInt index = 0; if (iExtension->FindRowAndColumnIndex(index,aRow,aColumn)!=0) return 0; @@ -2899,6 +3064,7 @@ void CColumnListBoxData::SetCurrentItemIndex(TInt aIndex) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); if( iExtension->iCurrentRow != aIndex ) { @@ -2925,6 +3091,7 @@ const TBool aHighlight, const TBool aIsTextClipped ) const { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); TBool marqueeDisabled = static_cast( @@ -2952,6 +3119,7 @@ EXPORT_C void CColumnListBoxData::SetMarqueeParams(const TInt aLoops, const TInt aScrollAmount, const TInt aScrollDelay) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); if ( iExtension->iMarquee ) { @@ -2970,6 +3138,7 @@ EXPORT_C void CColumnListBoxData::SetMarqueeParams(const TInt aLoops, const TInt aScrollAmount, const TInt aScrollDelay, const TInt aInterval) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); if ( iExtension->iMarquee ) { @@ -2983,8 +3152,9 @@ EXPORT_C void CColumnListBoxData::SetSubCellIconSize(TInt aIndex, TSize aSize) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - if (iExtension && aIndex < 6 && aIndex >= 0) + if ( aIndex < 6 && aIndex >= 0 ) { iExtension->iSubCellIconSize[aIndex] = aSize; } @@ -2992,7 +3162,8 @@ TSize CColumnListBoxData::GetSubCellIconSize(TInt aIndex) { - if (iExtension && aIndex < 6 && aIndex >= 0) + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + if ( aIndex < 6 && aIndex >= 0 ) { return iExtension->iSubCellIconSize[aIndex]; } @@ -3005,9 +3176,8 @@ // EXPORT_C const CAknsEffectAnim* CColumnListBoxData::HighlightAnim() const { - if( iExtension ) - return iExtension->iAnimation; - return NULL; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + return iExtension->iAnimation; } // ----------------------------------------------------------------------------- @@ -3016,10 +3186,7 @@ // EXPORT_C void CColumnListBoxData::AboutToDrawHighlightAnim() const { - if( !iExtension ) - { - return; - } + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if( !iExtension->iAnimation || !iExtension->iControl ) { return; @@ -3048,11 +3215,9 @@ EXPORT_C void CColumnListBoxData::SetHighlightAnimBackgroundDrawer( MColumnListBoxAnimBackgroundDrawer* aDrawer ) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - if( iExtension ) - { - iExtension->iHighlightBgDrawer = aDrawer; - } + iExtension->iHighlightBgDrawer = aDrawer; } // ----------------------------------------------------------------------------- @@ -3061,15 +3226,14 @@ // EXPORT_C void CColumnListBoxData::SetItemCellSize( const TSize& aSizeInPixels ) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - if( iExtension ) + + if( iExtension->iAnimSize != aSizeInPixels ) { - if( iExtension->iAnimSize != aSizeInPixels ) - { - iExtension->Play(); - } - iExtension->iAnimSize = aSizeInPixels; + iExtension->Play(); } + iExtension->iAnimSize = aSizeInPixels; } // ----------------------------------------------------------------------------- @@ -3078,8 +3242,7 @@ // EXPORT_C TBool CColumnListBoxData::HasHighlightAnim() const { - if( !iExtension ) - return EFalse; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if( !iExtension->iAnimation ) return EFalse; return ETrue; @@ -3092,9 +3255,7 @@ EXPORT_C TBool CColumnListBoxData::DrawHighlightAnim( CBitmapContext& aGc, const TRect& aRect ) const { - if( !iExtension ) - return EFalse; - + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if( !iExtension->iAnimation ) return EFalse; @@ -3107,6 +3268,7 @@ // void CColumnListBoxData::FocusGained() { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); iExtension->FocusGained(); } @@ -3116,17 +3278,19 @@ // void CColumnListBoxData::FocusLost() { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); iExtension->FocusLost(); } void CColumnListBoxData::HandleResourceChange( TInt aType ) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s] aType = %d", "CColumnListBoxData", __FUNCTION__, aType ); // Animation is skin dependent, whenever skin changes animation changes // too. if( KAknsMessageSkinChange == aType ) { - iExtension->SkinChanged(); + TRAP_IGNORE( iExtension->SkinChangedL() ); } else if(aType == KEikDynamicLayoutVariantSwitch) { @@ -3178,34 +3342,28 @@ void CColumnListBoxData::SetESSTextColor(TRgb aTextColor) { - if (iExtension) - iExtension->iTextColor = aTextColor; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + iExtension->iTextColor = aTextColor; } void CColumnListBoxData::SetESSHighlightedTextColor(TRgb aHighlightedTextColor) { - if (iExtension) - iExtension->iHighlightedTextColor = aHighlightedTextColor; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + iExtension->iHighlightedTextColor = aHighlightedTextColor; } EXPORT_C void CColumnListBoxData::SetColumnUnderlined( TBitFlags32 aUnderlinedColumns ) { - if ( iExtension ) - { - iExtension->iUnderlineFlagSet = ETrue; - iExtension->iUnderlineFlags = aUnderlinedColumns; - } + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + iExtension->iUnderlineFlagSet = ETrue; + iExtension->iUnderlineFlags = aUnderlinedColumns; } void CColumnListBoxData::SetUnderlineStyle( TListItemProperties aProperties, CWindowGc& aGc, TInt aColumn ) const { - if ( !iExtension ) - { - return; - } - + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); if ( !iExtension->iUnderlineFlagSet ) { // underlining is already either on or off and @@ -3232,13 +3390,9 @@ // EXPORT_C void CColumnListBoxData::ResetSLSubCellArray() { - if ( !iExtension ) - { - return; - } - + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); iExtension->iMarginRect = TRect::EUninitialized; - if ( iExtension && iExtension->iUseLayoutData ) + if ( iExtension->iUseLayoutData ) { iExtension->iUseLayoutData = EFalse; #ifdef RD_UI_TRANSITION_EFFECTS_LIST @@ -3266,8 +3420,8 @@ EXPORT_C void CColumnListBoxData::SetGraphicSubCellL(TInt aSubCell, const TAknWindowLineLayout &aGraphicLayout) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - if (!iExtension) return; TInt index = 0; iExtension->FindSLSubCellIndexOrAddL(index,aSubCell); iExtension->AtSL(index).iTextLayout=NULL; @@ -3315,8 +3469,8 @@ EXPORT_C void CColumnListBoxData::SetTextSubCellL(TInt aSubCell, const TAknTextLineLayout &aTextLayout) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - if (!iExtension) return; TInt index = 0; iExtension->FindSLSubCellIndexOrAddL(index,aSubCell); iExtension->AtSL(index).iTextLayout=aTextLayout; @@ -3365,6 +3519,7 @@ const TAknTextLineLayout &aTextLayout, TInt aAffectedSubCell) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); // iConditionValue of affected subcell (=text subcell, which has different layouts) // contains index of graphical subcell, which existence should be checked first. @@ -3374,7 +3529,6 @@ // for compabitility - needed at least for text wrapping SetOptionalColumnL( aSubCell, ETrue ); - if (!iExtension) return; TInt i = 0x01; i = i << aSubCell; @@ -3501,10 +3655,8 @@ // TBool CColumnListBoxData::UsesScalableLayoutData() const { - if (iExtension) - return iExtension->iUseLayoutData; - - return EFalse; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + return iExtension->iUseLayoutData; } // ----------------------------------------------------------------------------- @@ -3513,11 +3665,7 @@ // void CColumnListBoxData::EnableStretching( const TBool aEnabled ) { - if ( !iExtension ) - { - return; - } - + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); iExtension->iStretchingEnabled = aEnabled; } @@ -3528,11 +3676,7 @@ // EXPORT_C TBool CColumnListBoxData::StretchingEnabled() const { - if ( !iExtension ) - { - return EFalse; - } - + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); return iExtension->iStretchingEnabled; } @@ -3558,6 +3702,7 @@ const TDesC& aText, const TRect& aItemRect ) const { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); TInt column = 0; @@ -3672,6 +3817,7 @@ // EXPORT_C void CColumnListBoxData::SubCellsMightIntersect( const TBool aMightIntersect ) { + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); iExtension->iSubCellsMightIntersect = aMightIntersect; } @@ -3772,16 +3918,14 @@ EXPORT_C TUint32 CColumnListBoxData::CurrentItemTextWasClipped() const { - return iExtension ? iExtension->iClippedColumns : 0; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + return iExtension->iClippedColumns; } TBool CColumnListBoxData::KineticScrollingEnabled() const { - if ( iExtension ) - { - return iExtension->iKineticScrolling; - } - return EFalse; + __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) ); + return iExtension->iKineticScrolling; }