photosgallery/common/src/glxresourceutilities.cpp
changeset 0 4e91876724a2
child 25 191387a8b767
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/common/src/glxresourceutilities.cpp	Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2008-2009 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:    Utility for loading resource files
+*
+*/
+
+
+
+
+//  CLASS HEADER
+#include "glxresourceutilities.h"
+    
+//  EXTERNAL INCLUDES
+#include <bautils.h>
+#include <AknUtils.h>
+#include <f32file.h>
+
+//  INTERNAL INCLUDES
+
+// ---------------------------------------------------------------------------
+// GetResourceFilenameL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CGlxResourceUtilities::GetResourceFilenameL( TFileName& aResFile )
+    {
+	RFs fs;
+    User::LeaveIfError( fs.Connect() );
+    CleanupClosePushL( fs );
+    CGlxResourceUtilities::GetResourceFilenameL( aResFile, fs );
+    CleanupStack::PopAndDestroy( &fs );
+    }
+
+// ---------------------------------------------------------------------------
+// GetResourceFilenameL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CGlxResourceUtilities::GetResourceFilenameL( TFileName& aResFile, RFs& aFs )
+    {
+    // don't use AknUtils CompleteWithAppPath  
+    aResFile.Insert( 0, TDriveUnit( EDriveC).Name() );
+	// try to locate the localised resource
+    BaflUtils::NearestLanguageFile( aFs, aResFile );
+    // if the localised resource is found, the file name is changed to 
+    // the localised name (z:\apps\resources\xxx.r001)
+    if( !BaflUtils::FileExists( aFs, aResFile ) )
+        {
+        // not found on c drive, try z
+        aResFile.Replace( 0, KMaxDriveName, TDriveUnit( EDriveZ ).Name() );
+    	// try to locate the localised resource again
+        BaflUtils::NearestLanguageFile( aFs, aResFile );
+        // if file was not found this time, there is no localised 
+        // resource with the name
+        if (!BaflUtils::FileExists( aFs, aResFile ) )
+            {
+            User::Leave( KErrNotFound );
+            }
+        }
+    }
+
+