mulwidgets/common/src/mulvisualutility.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:56:02 +0200
changeset 0 e83bab7cf002
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* 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:  Utility class for widgets visualization in terms of LCT data
 *
*/


// includes
// Class header
#include "mulvisualutility.h"

// Alf headers
#include "alf/alfanchorlayoutattributesetter.h"
#include "alf/alfattribute.h"
#include "alf/alfattributecontainer.h"
#include <alf/alfenv.h> 
#include "alf/alftextvisualattributesetter.h"
#include "alf/alfvisualtemplate.h"
#include <alf/alfutil.h>

// DUI headers for xml parser

#include "alf/attrproperty.h"

#include<aknlayoutscalable_uiaccel.cdl.h>

// Local headers
#include "mulimagevisualattributesetter.h"
#include "mulassert.h"
#include "mulutility.h"
#include "mullog.h" //for logs
using namespace duiuimodel;


namespace Alf
{

// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
//	
OSN_EXPORT MulVisualUtility::MulVisualUtility()
    {
    mData.reset(new (EMM) LCTData);                    
    }
    
// ---------------------------------------------------------------------------
// Destructor
// ---------------------------------------------------------------------------
//
OSN_EXPORT MulVisualUtility::~MulVisualUtility()
    {
	// Nothing to destroy
    }
    
    
// ---------------------------------------------------------------------------
// parseLCTInfo 
// ---------------------------------------------------------------------------
//
OSN_EXPORT void MulVisualUtility::parseLCTInfo(const LCTPair& aPair, CAlfLayout* aParentLayout)
	{
	TAknWindowLineLayout componentLayout;
	TAknLayoutRect layoutRect;
	UString lctId = aPair.mLctId;
	TSize parentSize (0,0) ; 
	if(aParentLayout )
	{
		parentSize = aParentLayout->Size().Target().AsSize();	
	}
	else
	{
		TSize size = AlfUtil::ScreenSize();
		TAknWindowLineLayout parentLayout;
		TAknLayoutRect layout;
		bool isLandscape = MulUtility::IsLandscape();
		if(!isLandscape)
		{
			parentLayout = AknLayoutScalable_UiAccel::main_pane(5).LayoutLine();
		}
		else
		{
			parentLayout = AknLayoutScalable_UiAccel::main_pane(6).LayoutLine();
		}
		
		layout.LayoutRect( TRect(size), parentLayout );
		parentSize.iWidth = layout.Rect().Width();
		parentSize.iHeight = layout.Rect().Height();
	}
	
	if(!lctId.compare(UString("uiaccel_main_aa_gridscroll_pane")))
	    {
	    componentLayout = AknLayoutScalable_UiAccel::main_aa_gridscroll_pane(aPair.mVariety).LayoutLine();
                
	    }
	if(!lctId.compare(UString("uiaccel_aagrid_gene_pane")))
	    {
	    componentLayout = AknLayoutScalable_UiAccel::aagrid_gene_pane(aPair.mVariety).LayoutLine();
        
        	    
	    }
	if(!lctId.compare(UString("uiaccel_aagrid_cell_image_pane")))
	    {
	    componentLayout = AknLayoutScalable_UiAccel::aagrid_cell_image_pane(aPair.mVariety, 0, 0 ).LayoutLine();
        
        }
	if(!lctId.compare(UString("uiaccel_aa_scroll_pane_cp001")))
	    {
	    componentLayout = AknLayoutScalable_UiAccel::aa_scroll_pane_cp001(aPair.mVariety).LayoutLine();
        
        }
        
    if(!lctId.compare(UString("uiaccel_aagrid_cell_image_pane_g1")) )
    	{
    	componentLayout = AknLayoutScalable_UiAccel::aagrid_cell_image_pane_g1(aPair.mVariety).LayoutLine();
    	}
    
    if(!lctId.compare(UString("uiaccel_aagrid_cell_image_pane_g2")) )
    	{
    	componentLayout = AknLayoutScalable_UiAccel::aagrid_cell_image_pane_g2(aPair.mVariety).LayoutLine();
    	}
    	
    if(!lctId.compare(UString("uiaccel_aagrid_cell_image_pane_g3")) )
    	{
    	componentLayout = AknLayoutScalable_UiAccel::aagrid_cell_image_pane_g3(aPair.mVariety).LayoutLine();
    	}			
	    
	if(!lctId.compare(UString("uiaccel_aagrid_cell_image_pane_g4")) )
    	{
    	componentLayout = AknLayoutScalable_UiAccel::aagrid_cell_image_pane_g4(aPair.mVariety).LayoutLine();
    	}			
	        
	    
	    layoutRect.LayoutRect( TRect(parentSize), componentLayout );
	    
	    mData->mPosX = layoutRect.Rect().iTl.iX;
        mData->mPosY = layoutRect.Rect().iTl.iY;
        mData->mWidth = layoutRect.Rect().Width();
        mData->mHeight = layoutRect.Rect().Height();
	
    }

// ---------------------------------------------------------------------------
// parseLCTInfo 
// ---------------------------------------------------------------------------
//
OSN_EXPORT void MulVisualUtility::parseLCTTextInfo()
	{
	
	}
	
// ---------------------------------------------------------------------------
// Returns the structure containing width, height etc info
// ---------------------------------------------------------------------------
//	
OSN_EXPORT const LCTData& MulVisualUtility::data() const
    {
    return *(mData.get());
    }

// ---------------------------------------------------------------------------
// Internal function to convert LCT IDs into absolute data for text
// ---------------------------------------------------------------------------
//
void MulVisualUtility::readLCTTextData()
	{
	
	}
	
// ---------------------------------------------------------------------------
// Internal function to concert LCT IDs into absolute data 
// ---------------------------------------------------------------------------
//
void MulVisualUtility::readLCTData()
	{
	
	}
	
// ---------------------------------------------------------------------------
// Internal function
// ---------------------------------------------------------------------------
//	
bool MulVisualUtility::isParentRelative(int /*aVal*/) const
    {
    return false;
    }

} // namespace Alf

// End of file