Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
/*
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
* which accompanies this distribution, and is available
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Directory Localizer interface class
*
*/
#ifndef C_CDIRECTORYLOCALIZER_H
#define C_CDIRECTORYLOCALIZER_H
#include <e32def.h>
class TResourceReader;
/**
* Directory Localizer interface class.
*
* @lib directorylocalizer.lib
* @since S60 v3.2
*/
NONSHARABLE_CLASS(CDirectoryLocalizer) : public CBase
{
public: // Constructors and destructor
/**
* Two-phased constructor.
* Construct a CDirectoryLocalizer and initialize it with platform specific
* default localization data.
*
* @return apointer to the created instance of CDirectoryLocalizer.
*/
IMPORT_C static CDirectoryLocalizer* NewL();
/**
* Two-phased constructor.
* Construct a CDirectoryLocalizer and initialize it from resource pointed
* by aReader.
*
* @param aReader Reference to an initialized resource reader instance.
* @return apointer to the created instance of CDirectoryLocalizer.
*/
IMPORT_C static CDirectoryLocalizer* NewL( TResourceReader& aReader );
/**
* Two-phased constructor.
* Construct a CDirectoryLocalizer and initialize it from a resource ID.
*
* @param aResourceId Resource identifier to DIRECTORYLOCALIZER resource.
* @return apointer to the created instance of CDirectoryLocalizer.
*/
IMPORT_C static CDirectoryLocalizer* NewL( TInt aResourceId );
/**
* Destructor.
*/
IMPORT_C virtual ~CDirectoryLocalizer();
public: // New methods
/**
* Adds entries to the localizer from resource pointed by aReader.
*
* @param aReader Reference to an initialized resouce reader instance.
* @return None.
*/
IMPORT_C void AddFromResourceL( TResourceReader& aReader );
/**
* Adds entries to the localizer from resource pointed by aResourceId.
*
* @param aResourceId Resource identifier to DIRECTORYLOCALIZER resource.
* @return None.
*/
IMPORT_C void AddFromResourceL( TInt aResourceId );
/**
* This method is used to set the absolute path to be localized.
* For example "c:\\nokia\\images\\pictures". Take care that the path
* is given with or without the trailing backslash depending on
* how the paths are defined in the resource. localizer can utilize
* pathinfo to retrieve predefined folder paths.
*
* @param aFullPath Full path name.
* @return None.
*
* @code
* #include <PathInfo.h>
*
* // Get the the full path of the contacts folder in the memory card.
* TFileName path = PathInfo::GetPath( PathInfo::EImagesPath );
*
* // 'path' contains now the images path to be appended to a root path.
*
* CDirectoryLocalizer loc = CDirectoryLocalizer::NewL();
* loc->SetFullPath ( path );
* @endcode
*
* @see PathInfo
*/
IMPORT_C void SetFullPath( const TDesC& aFullPath );
/**
* Tells if the last given path is recognized as a localized directory.
*
* @return ETrue if last given path is localized and EFalse if not.
*/
IMPORT_C TBool IsLocalized() const;
/**
* Returns a reference to a TDesC that contains the last given path's
* localized name. If the path is not a localized directory, then
* a pointer to KNullDesc is returned.
*
* @return the last given path's localized name.
*/
IMPORT_C const TDesC& LocalizedName() const;
/**
* Returns a reference to a TDesC that contains the last given path's
* extra data. If the path is not a localized directory or no extra
* data is defined, then a pointer to KNullDesc is returned.
*
* @return the last given path's extra data.
*/
IMPORT_C const TDesC& ExtraData() const;
/**
* Returns the icon index of the last given path. If the path is not a
* localized directory KErrGeneral is returned.
*
* @return the icon index of the last given path.
*
* @code
* CDirectoryLocalizer loc = CDirectoryLocalizer::NewL();
* loc-> SetFullPath( aDir );
* if ( loc->Icon() != KErrGeneral )
* {
* //...
* }
* @endcode
*/
IMPORT_C TInt Icon() const;
protected:
/**
* C++ default constructor.
*/
CDirectoryLocalizer();
/**
* Symbian 2nd phase constructor.
*/
void ConstructL();
private: // data
/**
* The index of the current entry.
*/
TInt iCurrentEntry;
/**
* A pointer to the array for paths.
* Own.
*/
CArrayPtrFlat<TDesC>* iPaths;
/**
* A pointer to the array for localised names.
* Own.
*/
CArrayPtrFlat<TDesC>* iLocalizedNames;
/**
* A pointer to the array for extra data.
* Own.
*/
CArrayPtrFlat<TDesC>* iExtraData;
/**
* The array for icon indices.
*/
RArray<TInt> iIconIndices;
};
#endif // C_CDIRECTORYLOCALIZER_H