mulwidgets/common/src/mulutility.cpp
changeset 0 e83bab7cf002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mulwidgets/common/src/mulutility.cpp	Thu Dec 17 08:56:02 2009 +0200
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2007-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:  Implementation for utility class
+*
+*/
+
+// Includes
+
+// Class header
+#include "mulutility.h"
+
+#include "mul/mulmodelutility.h"
+#include "mulassert.h"
+#include <osn/ustring.h>
+#include <f32file.h>
+#include <eikenv.h>
+#include <aknappui.h>
+#include <AknUtils.h>
+
+// Local includes
+#include "mulassert.h"
+//for logs
+#include "mullog.h"
+namespace Alf
+    {
+        
+//-----------------------------------------------------------------------------
+// AbsolutePath
+//-----------------------------------------------------------------------------
+//
+OSN_EXPORT bool MulUtility::AbsolutePath(UString& aRelativePath)
+    {
+    MUL_LOG_INFO("aakash::MulUtility::AbsolutePath");
+    bool result = false;
+    aRelativePath.insert(0,"c:");
+    HBufC* relBuffer =NULL;
+        
+    TRAPD(err, relBuffer = HBufC::NewL(aRelativePath.getCharLength()))
+    __MUL_ASSERT(err == KErrNone ,_L("Bad Alloc")); 
+    
+    try
+	    {  
+	    TPtr ptr = relBuffer->Des()              ;
+	    MulModelUtility::ConvertUStringToTDes(aRelativePath,ptr);    
+			
+	    if(IsFileExists(*relBuffer))
+	    	{
+	    	result = true;
+	    	}
+	   	else
+		   	{		   	
+		   	aRelativePath.replace(0,"z");
+		    MulModelUtility::ConvertUStringToTDes(aRelativePath,ptr);    
+		    if(IsFileExists(*relBuffer))
+		    	{
+		    	result = true;
+		    	}
+		    else
+		    	{
+		    	aRelativePath.erase(0,2);	
+		    	}		
+		   	}
+	   	   	    
+	    }
+	catch(...)
+		{
+		
+		}
+	delete relBuffer;	
+    return result;
+    }
+
+//-----------------------------------------------------------------------------
+// IsLandscape
+//-----------------------------------------------------------------------------
+//    
+OSN_EXPORT  bool MulUtility::IsLandscape()
+	{
+	MUL_LOG_INFO("aakash::MulUtility::IsLandscape");
+	CAknAppUiBase::TAppUiOrientation 
+        orientation = static_cast<CAknAppUi*>((CEikonEnv::Static()->EikAppUi()))->Orientation();
+        
+                            
+	if (orientation == CAknAppUiBase::EAppUiOrientationLandscape)
+    {
+  	 return true;
+   
+    }
+    
+     else if (orientation == CAknAppUiBase::EAppUiOrientationUnspecified )
+     {
+        AknLayoutUtils::TAknCbaLocation cbaLocation = AknLayoutUtils::CbaLocation();
+        if ( (cbaLocation == AknLayoutUtils::EAknCbaLocationRight) ||
+             (cbaLocation == AknLayoutUtils::EAknCbaLocationLeft) )
+            {
+            //landscape
+            return true;
+            }
+        else
+            {
+            // Portrait
+            return false;
+            }
+    }
+    return false;
+    
+	}
+
+//-----------------------------------------------------------------------------
+// IsFileExists
+//-----------------------------------------------------------------------------
+//  
+bool MulUtility::IsFileExists(/*const char* afilePath*/const TDesC& aFilePath)
+    {
+    MUL_LOG_INFO("aakash::MulUtility::IsFileExists");
+    bool result(false);
+    
+  	  
+    RFs fSession;
+    TInt fsError = fSession.Connect();    
+    __MUL_ASSERT(fsError == KErrNone,_L("File Session unable to connect"));    
+    
+    RFile chkFile;    
+    TInt errCode = chkFile.Open(fSession,aFilePath,EFileRead);
+    if(KErrPathNotFound != errCode)
+    	{
+    	result = true;	
+    	}    
+    chkFile.Close();	
+    fSession.Close();		
+    return result;        
+    }
+    
+// ---------------------------------------------------------------------------
+// IsPoolResource   
+// ---------------------------------------------------------------------------
+//
+OSN_EXPORT bool MulUtility::IsPoolResource(const UString& aImageTag)
+    {    
+    TPtrC8 src((TUint8*)aImageTag.getUtf8());
+    _LIT8(KMulTag,"MUL_RP");
+
+    return ( KErrNotFound != src.FindC(KMulTag));    
+    }
+//----------------------------------------------------------------------------
+//IsQwerty
+//----------------------------------------------------------------------------
+OSN_EXPORT bool MulUtility::IsQwerty()
+	{
+		CKeyBoardUtility* iKBUtility = CKeyBoardUtility::NewL();
+		if(iKBUtility)
+		{
+			return iKBUtility->IsQwerty();
+		}
+		return false;
+	}
+
+    } // namespace ends
+
+// End of file