photosgallery/viewframework/uiutilities/src/glxgeneraluiutilities.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:45:44 +0200
changeset 0 4e91876724a2
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* 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:    general ui utilities
*
*/




#include <StringLoader.h>
#include <glxuiutilities.rsg>
#include <bautils.h>
#include "glxgeneraluiutilities.h"

// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::ShowErrorNoteL
// -----------------------------------------------------------------------------
//
EXPORT_C void GlxGeneralUiUtilities::ShowErrorNoteL(TInt aError)
	{
	// TextResolver instance for error resolving.
    CTextResolver* textresolver = CTextResolver::NewLC();
    // Resolve the error text
    const TDesC& text =
        textresolver->ResolveErrorString( aError );
    ShowErrorNoteL(text, ETrue);
    CleanupStack::PopAndDestroy( textresolver );
	}

// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::ConfirmQueryL
// -----------------------------------------------------------------------------
//
EXPORT_C TBool GlxGeneralUiUtilities::ConfirmQueryL( TInt aQueryResourceId,
                                                const TDesC& aTitleText )
    {
    CAknQueryDialog* query = CAknQueryDialog::NewL();
    TInt ret = query->ExecuteLD( aQueryResourceId, aTitleText );

    if ( ( ret == EAknSoftkeyOk ) || ( ret == EAknSoftkeyYes ) )
        {
        return ETrue;
        }

    return EFalse;
    }
    
// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::ConfirmQueryL
// -----------------------------------------------------------------------------
//
EXPORT_C TBool GlxGeneralUiUtilities::ConfirmQueryL( const TDesC& aTitleText )
    {
    return ConfirmQueryL(R_GLX_QUERY_OK_CANCEL, aTitleText);
    }
    
// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::ShowErrorNoteL
// -----------------------------------------------------------------------------
//
EXPORT_C void GlxGeneralUiUtilities::ShowErrorNoteL( const TDesC& aInfoText,
                                      TBool aWaitingDialog )
    {
    CAknErrorNote* infoNote =
                          new( ELeave ) CAknErrorNote( aWaitingDialog );
    infoNote->ExecuteLD( aInfoText );
    }   

// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::ShowInfoNoteL
// -----------------------------------------------------------------------------
//
EXPORT_C void GlxGeneralUiUtilities::ShowInfoNoteL( const TDesC& aInfoText,
                                      TBool aWaitingDialog )
    {
    CAknInformationNote* infoNote =
                          new( ELeave ) CAknInformationNote( aWaitingDialog );
    infoNote->ExecuteLD( aInfoText );
    }

// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::ShowConfirmationNoteL
// -----------------------------------------------------------------------------
//
EXPORT_C void GlxGeneralUiUtilities::ShowConfirmationNoteL( const TDesC& aInfoText,
                                              TBool aWaitingDialog )
    {
    CAknConfirmationNote* confNote =
                            new( ELeave ) CAknConfirmationNote( aWaitingDialog );
    confNote->ExecuteLD( aInfoText );
    }
    

// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::FormatString
// -----------------------------------------------------------------------------
//
EXPORT_C void GlxGeneralUiUtilities::FormatString( TDes& aDestination,
                                      const TDesC& aSource,
                                      TInt aPosition,
                                      TInt aNumber,
                                      TBool aNumberConversion )
    {
    StringLoader::Format( aDestination, aSource, aPosition, aNumber );

    if( aNumberConversion )
        {
        AknTextUtils::LanguageSpecificNumberConversion( aDestination );
        }
    }
    
// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::IsLandscape()
// -----------------------------------------------------------------------------
//
EXPORT_C TBool GlxGeneralUiUtilities::IsLandscape()
    {    
    // This class does not have access to a CEikonEnv and hence 
    // pls ignore the code scanner warning - Using CEikonEnv::Static
    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;
    }
    
    
// -----------------------------------------------------------------------------
// GlxGeneralUiUtilities::LayoutIsMirrored
// -----------------------------------------------------------------------------
//
EXPORT_C TBool GlxGeneralUiUtilities::LayoutIsMirrored()
    {
// remove comment from next line to force arabic/hebrew layout for testing    
//#define FORCE_ARABIC_HEBREW_LAYOUT   
#ifdef FORCE_ARABIC_HEBREW_LAYOUT
    return ETrue;
#else
    return AknLayoutUtils::LayoutMirrored();
#endif
    }