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