diff -r 4526337fb576 -r 3eca7e70b1b8 widgetmodel/alfwidgetmodel/src/alfflowlayoutattributesetter.cpp --- a/widgetmodel/alfwidgetmodel/src/alfflowlayoutattributesetter.cpp Tue Feb 02 00:28:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,267 +0,0 @@ -/* -* 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: File implements the atrributesetters for the flowlayout. -* -*/ - - - -//includes - -//widget model includes -#include "alf/alfattributecontainer.h" -#include "alf/alfattribute.h" -#include "alf/alfflowlayoutattributesetter.h" -#include -#include -#include - -//osn includes -#include - -//alf includes -#include -#include - -//dui includes -#include "alf/attrproperty.h" - -//other includes -#include - - - -//namespaces -using namespace osncore; -using namespace duiuimodel::layoutattributes; - -namespace Alf - { - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -OSN_EXPORT AlfFlowLayoutAttributeSetter::AlfFlowLayoutAttributeSetter() - { - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -OSN_EXPORT AlfFlowLayoutAttributeSetter::~AlfFlowLayoutAttributeSetter() - { - } - -// --------------------------------------------------------------------------- -// Sets Attribute Value. Delegates based on attribute Category. -// --------------------------------------------------------------------------- -// -OSN_EXPORT void AlfFlowLayoutAttributeSetter::setAttributeValue ( - CAlfVisual &aVisual, - AlfAttributeContainer* aContainer, - IAlfMap* aData ) - { - // Ensure that the visual is a flow layout - CAlfFlowLayout* flowLayout = dynamic_cast(&aVisual); - if (!flowLayout) - { - ALF_THROW ( AlfVisualException, EInvalidVisual, "AlfFlowLayoutAttributeSetter"); - } - AlfCommonLayoutAttributeSetter::setAttributeValue(aVisual, - aContainer, aData); - } -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -OSN_EXPORT TAlfCommand* AlfFlowLayoutAttributeSetter::createCommand( - CAlfVisual& /*aVisual*/, AlfAttributeContainer* /*aContainer*/, - IAlfMap* /*aData*/, int /*aTransitionTime*/, CAlfVisual* /*aRefVisual*/) - { - TAlfCommand* cmd = 0; - return cmd; - } - -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// -OSN_EXPORT void AlfFlowLayoutAttributeSetter::createAndSendCommands( - CAlfVisual& aVisual, - AlfAttributeContainer* aContainer, - CAlfVisual* aRefVisual ) - { - // Flow layout does not have any specific API which takes timed value. - // So, call the base class implementation. It goes through its loop and - // checks if there are attributes that it handles. - AlfCommonLayoutAttributeSetter::createAndSendCommands(aVisual,aContainer, - aRefVisual); - } - -void AlfFlowLayoutAttributeSetter::handleDynamicDataAttribute ( - CAlfVisual& aVisual, AlfAttribute& aAttr, - AlfAttributeContainer& aContainer, IAlfMap* aData) - { - // Flow Layout does not have any specific dynamic attribute, so call the - // base class implementation. It goes through its loop and checks if there - // are attributes that it handles. - AlfCommonLayoutAttributeSetter::handleDynamicDataAttribute(aVisual, aAttr, - aContainer, aData); - } - -void AlfFlowLayoutAttributeSetter::handleStaticDataAttribute( - CAlfVisual &aVisual, AlfAttribute& aAttr, - AlfAttributeContainer& aContainer, IAlfMap* aData) - { - if (!aData) ALF_THROW ( AlfDataException, EInvalidVariantDataType, "AlfFlowLayoutAttributeSetter" ) - - const char* dataField = aAttr.getDataField(); - if ( !dataField ) ALF_THROW ( AlfDataException, EInvalidAttribute, "AlfFlowLayoutAttributeSetter" ) - - IAlfVariantType* data = aData->item ( UString(dataField)); - if (data) - { - const char* attrName = aAttr.name(); - CAlfFlowLayout* flowLayout = dynamic_cast(&aVisual); - if (!flowLayout) - { - ALF_THROW ( AlfVisualException, EInvalidVisual, "AlfFlowLayoutAttributeSetter"); - } - - if (!strcmp(attrName,flow::KFlowDirection)) - { - if (data->type() == IAlfVariantType::EInt) - { - int direction = data->integer(); - flowLayout->SetFlowDirection( - (CAlfFlowLayout::TFlowDirection)direction); - } - else - { - ALF_THROW ( AlfDataException, EInvalidVariantDataType, "AlfFlowLayoutAttributeSetter"); - } - } - else if (!strcmp(attrName,flow::KLayoutMode)) - { - if (data->type() == IAlfVariantType::EInt) - { - int layoutMode = data->integer(); - flowLayout->SetMode(layoutMode); - } - else - { - ALF_THROW ( AlfDataException, EInvalidVariantDataType, "AlfFlowLayoutAttributeSetter"); - } - } - else if (!strcmp(attrName,flow::KLayoutCentering)) - { - if (data->type() == IAlfVariantType::EBool) - { - TBool layoutCentering = data->boolean(); - flowLayout->SetCentering(layoutCentering); - } - else - { - ALF_THROW ( AlfDataException, EInvalidVariantDataType, "AlfFlowLayoutAttributeSetter"); - } - } - else - { - // Call the base class implementation . - // It goes through its loop and checks if there are attributes - // that it handles. - AlfCommonLayoutAttributeSetter::handleStaticDataAttribute(aVisual, - aAttr, aContainer, aData); - } - } - return; - } - -void AlfFlowLayoutAttributeSetter::handleDynamicAttribute( - CAlfVisual &aVisual, AlfAttribute& aAttr, - AlfAttributeContainer& aContainer) - { - // Flow Layout does not have any specific dynamic attribute, so call the - // base class implementation also. It goes through its loop and checks if - // there are attributes that it handles. - AlfCommonLayoutAttributeSetter::handleDynamicAttribute(aVisual, aAttr, - aContainer); - } - -void AlfFlowLayoutAttributeSetter::handleStaticAttribute( - CAlfVisual& aVisual, AlfAttribute& aAttr, - AlfAttributeContainer& aContainer) - { - CAlfFlowLayout* flowLayout = dynamic_cast(&aVisual); - if (!flowLayout) - { - ALF_THROW ( AlfVisualException, EInvalidVisual, "AlfFlowLayoutAttributeSetter"); - } - - const char* attrName = aAttr.name(); - - if (!strcmp(attrName, flow::KFlowDirection)) - { - if(aAttr.type() == AlfAttributeValueType::EInt) - { - int direction = aAttr.intValue(); - flowLayout->SetFlowDirection( - (CAlfFlowLayout::TFlowDirection)direction); - } - else - { - ALF_THROW ( AlfAttributeException, EInvalidAttributeValue, "AlfFlowLayoutAttributeSetter"); - } - } - else if (!strcmp(attrName, flow::KLayoutMode)) - { - if (aAttr.type() == AlfAttributeValueType::EInt) - { - int layoutMode = aAttr.intValue(); - flowLayout->SetMode(layoutMode); - } - else - { - ALF_THROW ( AlfAttributeException, EInvalidAttributeValue, "AlfFlowLayoutAttributeSetter"); - } - } - else if (!strcmp(attrName, flow::KLayoutCentering)) - { - if (aAttr.type() == AlfAttributeValueType::EInt) - { - int layoutCentering = aAttr.intValue(); - TBool flag=ETrue; //Assume true for any non-zero value. - if (0==layoutCentering) flag=EFalse; - flowLayout->SetCentering(flag); - } - else - { - ALF_THROW ( AlfAttributeException, EInvalidAttributeValue, "AlfFlowLayoutAttributeSetter"); - } - } - else // Call the base class implementation also. - // It goes through the same loop again and checks if there are - // attributes that it handles. - { - AlfCommonLayoutAttributeSetter::handleStaticAttribute(aVisual, aAttr, - aContainer); - } - return; - } - - } // Alf - -