diff -r 4ea6f81c838a -r 0e9bb658ef58 widgetmodel/alfwidgetmodel/src/alfrecyclinggridelement.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgetmodel/alfwidgetmodel/src/alfrecyclinggridelement.cpp Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,203 @@ +/* +* 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: The implementation for grid element with recycling of visuals supported. +* +*/ + +#include "alf/alfrecyclinggridelement.h" +#include "alfrecyclinggridelementimpl.h" + +#include +#include +#include + +#include +#include +#include +#include + +#include "alf/ialfvisualtemplate.h" +#include +#include +#include +#include +#include +#include + +using namespace osncore; + +namespace Alf + { + +//---------------------------------------------------------------- +// 1st phase Constructor. Leaves the newly created object +// on the cleanup stack +//---------------------------------------------------------------- +OSN_EXPORT AlfRecyclingGridElement::AlfRecyclingGridElement( + CAlfWidgetControl& aControl, + const char* aName, + int aNumColumns, + int aNumRows) + { + construct(aControl,aName); + + mImpl.reset( new( EMM ) AlfRecyclingGridElementImpl( + *this, aNumColumns, aNumRows ) ); + + control().addEventHandler(this); + } + +//---------------------------------------------------------------- +// Class Destructor +//---------------------------------------------------------------- +OSN_EXPORT AlfRecyclingGridElement::~AlfRecyclingGridElement() + { + control().removeEventHandler(*this); + } + +//---------------------------------------------------------------- +// Sets the fill style for the Recycle grid element +//---------------------------------------------------------------- +OSN_EXPORT void AlfRecyclingGridElement::setFillStyle(FillStyle aFillStyle, int aFillStyleParam) + { + mImpl->setFillStyle( aFillStyle, aFillStyleParam ); + } + + +OSN_EXPORT void AlfRecyclingGridElement::setAnimationTimes( + int aScrollingTime, int aFadeInTime, int aFadeInDelay, + int aFadeOutTime, int aFadeOutDelay ) + { + mImpl->setAnimationTimes( + aScrollingTime, aFadeInTime, aFadeInDelay, + aFadeOutTime, aFadeOutDelay ); + } + + +OSN_EXPORT CAlfVisual* AlfRecyclingGridElement::createVisualTree( + IAlfVariantType& aData, uint aDataID, CAlfLayout* aParentLayout, int aLayoutIndex ) + { + return mImpl->createVisualTree( + aData, aDataID, aParentLayout, aLayoutIndex ); + } + +// --------------------------------------------------------------------------- +// OfferEventL - Handle the Event. +// ?implementation_description +// --------------------------------------------------------------------------- +OSN_EXPORT AlfEventStatus AlfRecyclingGridElement::offerEvent( CAlfWidgetControl& aControl, const TAlfEvent& aEvent ) + { + return mImpl->offerEvent( aControl, aEvent ) + ?EEventHandled:EEventNotHandled; + } + +// --------------------------------------------------------------------------- +// ?implementation_description +// --------------------------------------------------------------------------- +// +OSN_EXPORT void AlfRecyclingGridElement::setActiveStates( unsigned int aStates ) + { + mImpl->setActiveStates( aStates ); + } + +// --------------------------------------------------------------------------- +// From class IAlfWidgetEventHandler. +// sets event handler data. +// --------------------------------------------------------------------------- +// +OSN_EXPORT void AlfRecyclingGridElement::setEventHandlerData( const AlfWidgetEventHandlerInitData& aData ) + { + mImpl->setEventHandlerData(aData); + } + +// --------------------------------------------------------------------------- +// From class IAlfWidgetEventHandler. +// returns the eventhandlertype . +// --------------------------------------------------------------------------- +// +IAlfWidgetEventHandler::AlfEventHandlerType AlfRecyclingGridElement::eventHandlerType() + { + return IAlfWidgetEventHandler::EPresentationEventHandler; + } + +// --------------------------------------------------------------------------- +// From class IAlfWidgetEventHandler. +// returns eventhandler excecutionphase. +// --------------------------------------------------------------------------- +// +IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase AlfRecyclingGridElement::eventExecutionPhase() + { + return IAlfWidgetEventHandler::ETunnellingPhaseEventHandler; + } +// returns event handler data. +// --------------------------------------------------------------------------- +// +OSN_EXPORT AlfWidgetEventHandlerInitData* AlfRecyclingGridElement::eventHandlerData() + { + return mImpl->eventHandlerData(); + } + +// --------------------------------------------------------------------------- +// From class IAlfInterfaceBase. +// ?implementation_description +// --------------------------------------------------------------------------- +// +OSN_EXPORT IAlfInterfaceBase* AlfRecyclingGridElement::makeInterface( const IfId& aType ) + { + IAlfInterfaceBase* ret(0); + UString param(aType.mImplementationId); + + if (param == AlfRecyclingGridElement::type().mImplementationId ) + { + ret = static_cast(this); + } + else if (param == IAlfWidgetEventHandler::type().mImplementationId ) + { + ret = static_cast(this); + } + else + { + ret = AlfElement::makeInterface(aType); + } + return ret; + } + + +OSN_EXPORT bool AlfRecyclingGridElement::accept( CAlfWidgetControl& aControl, const TAlfEvent& aEvent ) const + { + return mImpl->accept( aControl, aEvent ); + } + +OSN_EXPORT void AlfRecyclingGridElement::createChildVisualTree( + IAlfElement* aElement, IAlfVariantType& aChildData, + IAlfBranch& aData, int aIndex, uint aDataID ) + { + mImpl->createChildVisualTree( aElement, aChildData, aData, aIndex, aDataID ); + } + +OSN_EXPORT void AlfRecyclingGridElement::removeChildVisualTree( + IAlfElement* aElement, IAlfBranch& aData, int aIndex, uint aDataID ) + { + mImpl->removeChildVisualTree( aElement, aData, aIndex, aDataID ); + } + +// --------------------------------------------------------------------------- +// Description: Do not destroy visuals, because it's done elsewhere. +// --------------------------------------------------------------------------- +void AlfRecyclingGridElement::removeAndDestroyVisuals( int aTimeMilliseconds ) + { + mImpl->removeAndDestroyVisuals( aTimeMilliseconds ); + } + + } //Alf