srsf/vcommandhandler/src/vcfolderinfo.cpp
branchRCL_3
changeset 18 cad71a31b7fc
parent 17 8ce15fced3a6
child 19 e36f3802f733
--- a/srsf/vcommandhandler/src/vcfolderinfo.cpp	Thu Aug 19 09:56:14 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation of the CVFolderInfo class
-*
-*/
-
-
-#include <vcommandapi.h>
-#include <AknsSkinInstance.h>
-#include <AknsUtils.h>
-#include <AknsConstants.h>
-#include <gulicon.h>
-#include <mifconvdefs.h>
-#include "rubydebug.h"
-
-/**
- * File name to read icons from if icon file name is not specified
- */
-_LIT( KDefaultIconFile, "Z:\\resource\\apps\\vcommand.mif" );
-const TInt KDefaultIconIndex = KMifIdFirst;  // first image in the file
-
-/**
-* The version of the streamed data protocol
-* It is rather likely, that the format of the data streamed changes in the future.
-* Using the protocol version, the code can check if it knows how to parse the 
-* input stream
-*/
-const TInt32 KVCFolderInfoProtocolVersion = 2;
-
-static const TAknsItemID* const KIconId[] = 
-    {
-    &KAknsIIDQgnPropFolderVcGeneral,
-    &KAknsIIDQgnPropFolderVcTools,
-    &KAknsIIDQgnPropFolderVcOrganiser,
-    &KAknsIIDQgnPropFolderVcMessage,
-    &KAknsIIDQgnPropFolderVcMedia,
-    &KAknsIIDQgnPropFolderVcProfiles
-    };
-
-/**
- * This object does not take an ownership of the passed descriptors, 
- * but makes own copies. 
- * 
- * @param aTitle Folder title. It is shown at the top of the screen,
- *        when the folder is opened in the VCommand application
- * @param aListedName Version of a title shown when the folder is
- *        is displayed in the list of VCommands in the VCommand app
- * @param aHelpTopicId Topic to open when help is requested for the 
- *        given folder
- * @param aIconIndex Index of the folder icon in the folder icons mbm file
- *        each index correspods to two images - the actual icon and its mask
- * @param aIconFile Mbm file where the icons are obtained from. If KNullDesC, 
- * 		  the default icon file is used
- */
-EXPORT_C CVCFolderInfo* CVCFolderInfo::NewL( const TDesC& aTitle,
-        const TDesC& aListedName, TUint32 aHelpTopicId, TUint aIconIndex,
-                const TDesC& aIconFile )
-    {
-    CVCFolderInfo* self = new (ELeave) CVCFolderInfo( aHelpTopicId, aIconIndex );
-    CleanupStack::PushL( self );
-    self->ConstructL( aTitle, aListedName, aIconFile );
-    CleanupStack::Pop( self );
-    return self;
-    }
-    
-/**
-* Copy the existing CVCFolderInfo
-*/
-EXPORT_C CVCFolderInfo* CVCFolderInfo::NewL( const CVCFolderInfo& aOriginal )
-    {
-    CVCFolderInfo* self = new (ELeave) CVCFolderInfo( aOriginal.HelpTopicId(), 
-                                                      aOriginal.IconIndex() );
-    CleanupStack::PushL( self );
-    self->ConstructL( aOriginal.Title(), aOriginal.ListedName(), aOriginal.IconFile() );
-    CleanupStack::Pop( self );
-    return self;
-    }
-    
-/**
- * Constructs the folder information from stream
- * @leave KErrNotSupported if the stream data format is unsupported
- */
- EXPORT_C CVCFolderInfo* CVCFolderInfo::NewL( RReadStream &aStream )
-    {
-    CVCFolderInfo* self = new (ELeave) CVCFolderInfo;
-    CleanupStack::PushL( self );
-    self->ConstructL( aStream );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-CVCFolderInfo::CVCFolderInfo( TUint32 aHelpTopicId, TUint aIconIndex ) :
-    iHelpTopicId( aHelpTopicId ), iIconIndex (aIconIndex )
-    {
-    // empty
-    }
-        
-void CVCFolderInfo::ConstructL( RReadStream &aStream )
-	{
-	/**
-	* @todo extract the repeated descriptor internalization code into
-	*       a separate method
-	*/
-	TInt32 ver;
-    aStream >> ver;
-    __ASSERT_ALWAYS( ver == KVCFolderInfoProtocolVersion, User::Leave( KErrNotSupported  ) );
-    iTitle = HBufC::NewL( aStream.ReadInt32L() );
-    TPtr pTitle = iTitle->Des();
-    aStream >> pTitle;
-    iListedName = HBufC::NewL( aStream.ReadInt32L() );
-    TPtr pListedName = iListedName->Des();
-    aStream >> pListedName;
-    iHelpTopicId = aStream.ReadUint32L();
-    iIconFile = HBufC::NewL( aStream.ReadInt32L() );
-    TPtr pIconFile = iIconFile->Des();
-    aStream >> pIconFile;
-    iIconIndex = aStream.ReadUint32L();
-	}
-    
-    
-/** 
-* Second-phase constructor 
-*/
-void CVCFolderInfo::ConstructL( const TDesC& aTitle, const TDesC& aListedName,
-                                const TDesC& aIconFile )
-    {
-    RUBY_DEBUG_BLOCKL( "" );
-    iTitle = HBufC::NewL( aTitle.Length() );
-    *iTitle = aTitle;
-    iListedName = HBufC::NewL( aListedName.Length() );
-    *iListedName = aListedName;    
-    iIconFile = HBufC::NewL( aIconFile.Length() );
-    *iIconFile = aIconFile;
-    }
-    
-EXPORT_C CVCFolderInfo::~CVCFolderInfo() 
-    {
-    delete iListedName;
-    delete iTitle;
-    delete iIconFile;
-    }
-    
-/** 
- * Saves the command to stream.
- * Descriptor components are saved as <length><descriptor> pairs, where 
- * <length> is TInt32 and <descriptor> is the default descriptor represetation
- * TBools are saved as TInt32 either
- */
-EXPORT_C void CVCFolderInfo::ExternalizeL( RWriteStream &aStream ) const
-    {
-    aStream << KVCFolderInfoProtocolVersion;
-    aStream << static_cast<TInt32>( iTitle->Length() );
-    aStream << *iTitle;
-    aStream << static_cast<TInt32>( iListedName->Length() );
-    aStream << *iListedName;
-    aStream << iHelpTopicId;
-    aStream << static_cast<TInt32> ( iIconFile->Length() );
-    aStream << *iIconFile;
-    // Mandate saving index as Uint32 to preserve the string format
-    aStream << static_cast<TUint32> ( iIconIndex );
-    }
-    
-
-EXPORT_C const TDesC& CVCFolderInfo::Title() const 
-    {
-    return *iTitle;
-    }
-
-EXPORT_C const TDesC& CVCFolderInfo::ListedName() const 
-    {
-    return *iListedName;
-    }
-
-EXPORT_C TUint32 CVCFolderInfo::HelpTopicId() const 
-    {
-    return iHelpTopicId;
-    }
-    
-EXPORT_C TBool CVCFolderInfo::operator==( const CVCFolderInfo& aFolderInfo ) const
-    {
-    return (
-            ( iHelpTopicId == aFolderInfo.HelpTopicId() ) &&
-            ( *iTitle == aFolderInfo.Title()            ) &&
-            ( *iListedName == aFolderInfo.ListedName()  ) &&
-            ( *iIconFile == aFolderInfo.IconFile()      ) &&
-            ( iIconIndex == aFolderInfo.IconIndex()     ) 
-           );
-    }
-    
-EXPORT_C TDesC& CVCFolderInfo::IconFile() const
-	{
-	return *iIconFile;
-	}    
-    
-EXPORT_C TUint CVCFolderInfo::IconIndex() const
-	{
-	return iIconIndex;
-	}
-
-/**
-* Creates an icon to represent this folder. Works only if CEikonEnv is available
-* @return Icon for the folder
-*/
-EXPORT_C CGulIcon* CVCFolderInfo::IconLC() const
-	{
- 	MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-	CFbsBitmap* bitmap = NULL;
-    CFbsBitmap* mask = NULL;
-    const TInt KBitmapsPerIcon = 2;
-    
-    // Every "index" corrsponds to two bitmaps - actual icon and its mask
-    TInt iconIndex = KMifIdFirst + IconIndex()*KBitmapsPerIcon;
-    TInt maskIndex = iconIndex + 1;
-    TDesC& iconFile = IconFile();
-    if ( iconFile == KNullDesC )
-        {
-        iconFile = KDefaultIconFile;
-        }
-    
-    TRAPD( err,    
-	    AknsUtils::CreateIconLC( skin, *KIconId[ IconIndex() ],
-       	                     bitmap, mask, iconFile, iconIndex, 
-       	                     maskIndex );
-        CleanupStack::Pop( 2 );  // mask, bitmap
-         )
-    if( err != KErrNone )
-        {
-        RUBY_DEBUG1( "CreateIconLC failed with %d. Loading default icon", err );
-        AknsUtils::CreateIconLC( skin, *KIconId[ IconIndex() ],
-                             bitmap, mask, KDefaultIconFile, KDefaultIconIndex, 
-                             KDefaultIconIndex + 1 );
-        CleanupStack::Pop( 2 );  // mask, bitmap
-        }
- 
-    CleanupStack::PushL( mask );
-    CleanupStack::PushL( bitmap );
-    CGulIcon* icon = CGulIcon::NewL( bitmap, mask );
-    icon->SetBitmapsOwnedExternally( EFalse );
-
-    // icon now owns the bitmaps, no need to keep on cleanup stack.
-    CleanupStack::Pop( bitmap );  
-    CleanupStack::Pop( mask );  
-
-    CleanupStack::PushL( icon );
-    return icon;
-	}
-	    
-//End of file