diff -r 2e7bab7ab409 -r 9d6a662e71d9 extras/about/src/AboutContainer.cpp --- a/extras/about/src/AboutContainer.cpp Wed Sep 15 12:14:32 2010 +0300 +++ b/extras/about/src/AboutContainer.cpp Wed Oct 13 14:33:39 2010 +0300 @@ -1,4 +1,4 @@ - /* +/* * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available @@ -26,6 +26,7 @@ #include "AboutResource.h" #include #include +#include #include #include #include @@ -55,6 +56,7 @@ _LIT( KAboutPanicCategory, "About" ); // Resource files for about application loading real data because this rsc file must be loaded by yourself +_LIT( KRSCDirAndFileFirst, "Z:\\resource\\apps\\about_oss_text.rsc" ); _LIT( KRSCDirAndFile, "Z:\\resource\\apps\\about_oss_part_text.rsc" ); _LIT( KRSCDirAndFileAdd, "Z:\\resource\\apps\\about_oss_other_text.rsc" ); @@ -101,14 +103,13 @@ CreateWindowL(); iScrollBarDragged = EFalse; iBreakFlag = EFalse; - iSkinContext = NULL; - iText = NULL; - iImages = NULL; - iScreenStarts = NULL; - iSBFrame = NULL; - iHandleFlag = ETrue; + iSkinContext = NULL; + iText = NULL; + iImages = NULL; + iScreenStarts = NULL; + iSBFrame = NULL; iLoader = CAboutResourceLoader::NewL( iEikonEnv, this ); - CalculateL( aRect ); + CalculateL(aRect); ActivateL(); } @@ -117,17 +118,17 @@ // ----------------------------------------------------------------------------- CAboutContainer::~CAboutContainer() { - delete iSkinContext; + delete iSkinContext; delete iSBFrame; delete iScreenStarts; delete iIcon; - + if ( iText ) { iText->ResetAndDestroy(); delete iText; } - + if ( iImages ) { iImages->ResetAndDestroy(); @@ -148,25 +149,25 @@ // ----------------------------------------------------------------------------- void CAboutContainer::SizeChanged() { - TRect parentRect( Rect() ); - if (iSkinContext) + TRect parentRect(Rect()); + if (iSkinContext) { - iSkinContext->SetRect( parentRect ); + iSkinContext->SetRect(parentRect); } - } - + } // ----------------------------------------------------------------------------- // CAboutContainer::Draw() // ----------------------------------------------------------------------------- + void CAboutContainer::Draw( const TRect& aRect ) const { CWindowGc& gc = SystemGc(); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - if ( iSkinContext ) + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + if (iSkinContext) { //Draw the skin background AknsDrawUtils::Background( - skin, iSkinContext, this, gc, aRect ); + skin, iSkinContext, this, gc, aRect); } else {// clear the area @@ -185,7 +186,7 @@ { if ( ( iScreenStarts ) && (iScreenStarts->Count() >= iCurrentScreen ) ) { - firstLine = ( ( *iScreenStarts )[ iCurrentScreen ] ); + firstLine = ( ( *iScreenStarts )[ iCurrentScreen ] ); } } else @@ -216,9 +217,9 @@ TInt error = AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); - if( error == KErrNone ) + if(error == KErrNone) { - gc.SetPenColor( color ); + gc.SetPenColor(color); } gc.DrawText( *text, TRect( topLeft, rectSize ), @@ -244,7 +245,7 @@ position.iY -= iBaseLineDelta - iFont->DescentInPixels(); // Now iY is the top line of rectangle where the picture is // centered in. - position.iY += ( ( image->Lines()+1 ) * iBaseLineDelta - + position.iY += ( (image->Lines()+1) * iBaseLineDelta - iFont->HeightInPixels() - image->HeightInPixels() ) / 2; @@ -304,11 +305,11 @@ default: break; } - if( !line->Length() ) + if(!line->Length()) { iText->AppendL( NULL ); - CleanupStack::PopAndDestroy( line ); // line + CleanupStack::PopAndDestroy(line); // line } else { @@ -346,7 +347,7 @@ iText->AppendL( NULL ); } - CleanupStack::PopAndDestroy( wrappedArray ); // wrappedArray + CleanupStack::PopAndDestroy(wrappedArray); // wrappedArray delete dataToDestroy; // update screen scrolling info array @@ -397,7 +398,7 @@ } iImages->AppendL( image ); - CleanupStack::Pop( image ); // image + CleanupStack::Pop(image); // image // update screen scrolling info array @@ -550,7 +551,7 @@ if (AknLayoutUtils::DefaultScrollBarType(appUi) == CEikScrollBarFrame::EDoubleSpan) { // For EDoubleSpan type scrollbar - iSBFrame->CreateDoubleSpanScrollBarsL(ETrue, EFalse); // non-window owning scrollbar + iSBFrame->CreateDoubleSpanScrollBarsL(ETrue, EFalse); // non-window owning scrollbar iSBFrame->SetTypeOfVScrollBar(CEikScrollBarFrame::EDoubleSpan); } else @@ -608,7 +609,7 @@ // ----------------------------------------------------------------------------- // CAboutContainer::CalculateL() // ----------------------------------------------------------------------------- -void CAboutContainer::CalculateL( const TRect& aRect ) +void CAboutContainer::CalculateL(const TRect& aRect) { TRect rect( 0, 0, 0, 0 ); iCurrentScreen = 0; @@ -706,45 +707,47 @@ // ----------------------------------------------------------------------------- // CAboutContainer::HandleResourceChange() // ----------------------------------------------------------------------------- -void CAboutContainer::HandleResourceChange( TInt aType ) - { - switch ( aType ) - { - case KEikDynamicLayoutVariantSwitch : - { + void CAboutContainer::HandleResourceChange(TInt aType) + { + +switch ( aType ) + { + case KEikDynamicLayoutVariantSwitch : + { TRAP_IGNORE( CalculateL( iAvkonAppUi->ClientRect() ) ); - DrawNow(); - } - break; - case KEikMessageUnfadeWindows : - case KAknsMessageSkinChange : - { + DrawNow(); + } + break; + case KEikMessageUnfadeWindows : + case KAknsMessageSkinChange : + { // window owning scrollbar TRAP_IGNORE( iSBFrame->CreateDoubleSpanScrollBarsL( ETrue, EFalse ) ); - iSBFrame->SetTypeOfVScrollBar( CEikScrollBarFrame::EDoubleSpan ); + iSBFrame->SetTypeOfVScrollBar(CEikScrollBarFrame::EDoubleSpan); TRAP_IGNORE( iSBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,CEikScrollBarFrame::EOn ) ); - TRAP_IGNORE( UpdateScrollIndicatorL() ); - } - default: - { - CCoeControl::HandleResourceChange( aType ); - } - break; - } -} + TRAP_IGNORE(UpdateScrollIndicatorL()); + } + + default: + { + CCoeControl::HandleResourceChange(aType); + } + break; + } +} // --------------------------------------------------------- // CAboutContainer::MopSupplyObject() // Pass skin information if need. // --------------------------------------------------------- -TTypeUid::Ptr CAboutContainer::MopSupplyObject( TTypeUid aId ) +TTypeUid::Ptr CAboutContainer::MopSupplyObject(TTypeUid aId) { - if ( aId.iUid == MAknsControlContext::ETypeId && iSkinContext ) + if (aId.iUid == MAknsControlContext::ETypeId && iSkinContext) { - return MAknsControlContext::SupplyMopObject( aId, iSkinContext ); + return MAknsControlContext::SupplyMopObject(aId, iSkinContext); } - return CCoeControl::MopSupplyObject( aId ); + return CCoeControl::MopSupplyObject(aId); } // --------------------------------------------------------- @@ -755,8 +758,8 @@ TEikScrollEvent aEventType ) { //Only on page up/down,scroll up/down and drag events - if( ( aEventType == EEikScrollPageDown ) || ( aEventType == EEikScrollPageUp ) || - ( aEventType == EEikScrollThumbDragVert ) || ( aEventType == EEikScrollUp ) || + if((aEventType == EEikScrollPageDown) || (aEventType == EEikScrollPageUp) || + (aEventType == EEikScrollThumbDragVert) || (aEventType == EEikScrollUp) || ( aEventType == EEikScrollDown ) ) { //Get the current position from the scroll bar @@ -781,7 +784,6 @@ { User::Panic( KAboutPanicCategory, aError ); } - // Display loaded texts RPointerArray* items = iLoader->LoadedResourceItems(); if ( items ) @@ -793,38 +795,16 @@ { if ( R_ABOUT_MAIN_TEXT == iLoader->CurrentResourceId() ) { - // Only one data record for each - if ( iHandleFlag ) + SetTextL( *item->ResourceItem(), item->ResourceIndex() ); + if ( iLoader->ItemCount() == item->ResourceIndex() + 1 ) { - // Store the count of the current resource - iCurrentCount = iLoader->ItemCount(); - iHandleFlag = EFalse; + iFinalCount = iLoader->ItemCount() + 1; } - - SetTextL( *item->ResourceItem(), item->ResourceIndex() ); - - // Set the flag to ETrue - if ( iCurrentCount == item->ResourceIndex() ) - { - iHandleFlag = ETrue; - } - } - else if ( R_ABOUT_OSS_TEXT == iLoader->CurrentResourceId() ) - { - iFinalCount = iCurrentCount + item->ResourceIndex() + 1; - SetTextL( *item->ResourceItem(), iFinalCount ); } else { - // Only one data record for each - if ( iHandleFlag ) - { - iCurrentCount = iLoader->ItemCount(); - iHandleFlag = EFalse; - } - - iFinalCount = iCurrentCount + item->ResourceIndex() + 1; SetTextL( *item->ResourceItem(), iFinalCount ); + iFinalCount++; } } else if( item->ResourceType() == EAboutImageItem ) @@ -862,10 +842,16 @@ TInt resourceId( aResourceId ); if( R_ABOUT_MAIN_TEXT == resourceId ) { - // Load the R_ABOUT_OSS_TEXT + // Load the R_ABOUT_OSS_TEXT_FIRST // Set the resource which you want to load next + resourceId = R_ABOUT_OSS_TEXT_FIRST; + // Set the resource's path + iResourcePath.Copy( KRSCDirAndFileFirst ); + } + else if ( R_ABOUT_OSS_TEXT_FIRST == resourceId ) + { + // Load the R_ABOUT_OSS_TEXT resourceId = R_ABOUT_OSS_TEXT; - // Set the resource's path iResourcePath.Copy( KRSCDirAndFile ); } else