filemanager/View/inc/CFileManagerIconArray.h
author Simon Howkins <simonh@symbian.org>
Tue, 16 Nov 2010 11:00:04 +0000
branchRCL_3
changeset 55 58ed58285a84
parent 0 6a9f87576119
permissions -rw-r--r--
Fixed path to IBY files to be exported

/*
* Copyright (c) 2002-2008 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:  All the files and folders icons are stored here
*
*/



#ifndef CFILEMANAGERICONARRAY_H
#define CFILEMANAGERICONARRAY_H

//  INCLUDES
#include <e32base.h>

// FORWARD DECLARATIONS
class CGulIcon;

// CLASS DECLARATION
/**
 * Array of icons.
 * Is an array of icons that is read from resource file.
 *
 *  @lib FileManagerView.lib
 *  @since S60 2.0
 */
class CFileManagerIconArray : public CArrayPtrFlat< CGulIcon >
    {
    public:  // Constructors and destructor
        /**
         * Two-phased constructor.
         * @return a new icon array.
         */
        IMPORT_C static CFileManagerIconArray* NewL();

        /**
         * Destructor.
         */
        IMPORT_C ~CFileManagerIconArray();

        /**
         * Updates icons.
         */
        IMPORT_C void UpdateIconsL();

        /**
         * Finds array index of the icon
         * @param aIconId Icon id
         * @return Array index of the icon or KErrNotFound
         */
        IMPORT_C TInt FindIcon( TInt aIconId );

        /**
         * Loads icon from icon file
         * @param aIconFile Full path of the icon file
         * @param aIconId Icon id
         * @param aMaskId Mask id
         * @param aMajorSkin Major skin id
         * @param aMinorSkin Minor skin id
         * @param aIsColorIcon True if color icon
         * @return Pointer to new icon and the ownership is transferred.
         */
        IMPORT_C static CGulIcon* LoadIconL(
            const TDesC& aIconFile,
            TInt aIconId,
            TInt aMaskId,
            TInt aMajorSkin,
            TInt aMinorSkin,
            TBool aIsColorIcon );

    private:
        NONSHARABLE_CLASS(TIconInfo)
            {
            public:
                HBufC* iFile;
                TInt iId;
                TInt iIconId;
                TInt iMaskId;
                TInt iMajorSkinId;
                TInt iMinorSkinId;
                TInt iIconType;
                TInt iIndex;
            };
        /**
         * C++ default constructor.
         */
        CFileManagerIconArray();

        /**
         * By default Symbian 2nd phase constructor is private.
         */
        void ConstructL();

        void LoadIconL( TIconInfo& aInfo );

        void LoadMandatoryIconsL();

    private:    // Data
        RArray< TIconInfo > iIconInfo;

    };

#endif      // CFILEMANAGERICONARRAY_H   
            
// End of File