sdkcreationmw/sdkexamples/cppexamples/S60Ex/helperfunctions/IconFileProvider.h
changeset 0 b26acd06ea60
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sdkcreationmw/sdkexamples/cppexamples/S60Ex/helperfunctions/IconFileProvider.h	Mon Mar 08 12:09:11 2010 +0530
@@ -0,0 +1,95 @@
+/*
+* 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 "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: 
+*
+*/
+
+
+#ifndef ICONFILEPROVIDER_H
+#define ICONFILEPROVIDER_H
+
+#include <akniconutils.h>
+
+/**
+*  CIconFileProvider class.
+*  This class is used to provide a icon file handle to MAknIconFileProvider.
+*  With this class it is possible to use icons from application's private
+*  folder.
+*/
+class CIconFileProvider : public CBase,
+                          public MAknIconFileProvider
+    {
+
+    public:
+
+    	/**
+        * Two-phased constructor.
+        * @param aSession File server session.
+        * @param aFilename Full path to the icon file
+        */
+    	static CIconFileProvider* NewL(RFs aSession, const TDesC& aFilename);
+
+    	/**
+        * Destructor.
+        */
+    	~CIconFileProvider();
+
+    private: //from MAknIconFileProvider
+
+    	/**
+        * Returns an open file handle to the icon file.
+        * @param aFile Icon file should be opened in this file handle, which
+        *              is an empty file handle, when the AknIcon framework
+        *              calls this method. The AknIcon framework takes care of
+        *              closing the file handle after having used it.
+        * @param aType Icon file type.
+        */
+    	void RetrieveIconFileHandleL( RFile& aFile, const TIconFileType aType );
+
+    	/**
+        * With this method, AknIcon framework informs that it does not use
+        * this MAknIconFileProvider instance any more.
+        */
+        void Finished();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        * @param aSession. File server session.
+        */
+    	CIconFileProvider(RFs aSession);
+
+        /**
+        * 2nd phase constructor.
+        * @param aFilename. Full path to the icon file.
+        */
+        void ConstructL( const TDesC& aFilename);
+
+    private: // Data
+
+        /**
+        * File server
+        */
+        RFs iSession;
+
+        /**
+        * Icon file name.
+        *
+        * Owned.
+        */
+        HBufC* iFilename;
+    };
+
+#endif // ICONFILEPROVIDER