diff -r 4ea6f81c838a -r 0e9bb658ef58 inc/alf/alfrecyclinggridelement.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/alf/alfrecyclinggridelement.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,249 @@ +/* +* 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 presentation elements. +* +*/ + + +#ifndef ALF_RECYCLINGGRIDELEMENT_H +#define ALF_RECYCLINGGRIDELEMENT_H + + +//INCLUDES +#include // TPoint +#include +#include "alf/alfelement.h" +#include + +class CAlfControl; + + +namespace Alf + { +class CAlfWidgetControl; +class AlfRecyclingGridElementImpl; + +namespace alfrecyclinggridelement + { +static const IfId Ident= + { + 0,"alfrecyclinggridelement" + }; + } + +/** @class AlfRecyclingGridElement alfrecyclinggridelement.h "alf/alfrecyclinggridelement.h" + * The implementation of a generic element with a functionality + * for recyclign the created visual trees. This is commonly used + * in scrolling list-like components, where only few of the items + * are visible at the same time. Scrolling is supported in both + * dimensions (rows / columns). + * + * @interfaces IAlfElement + * @lib alfwidgetmodel.lib + * @since S60 ?S60_version + * @status Draft + */ +class AlfRecyclingGridElement : public AlfElement, public IAlfWidgetEventHandler + { +public: + static inline const IfId& type() + { + return alfrecyclinggridelement::Ident; + } + /** + * Enumerations of the Fill Style + */ + OSN_IMPORT enum FillStyle{EColumnsFirst, ERowsFirst}; + + + + /** + * Constructor. + * @exception std::bad_alloc + * @param aControl - Widget Control + * @param aName - Name of the Recycling grid element + * @param aNumColumns - Number of Columns + * @param aNumRows - Number of Rows + * @since S60 ?S60_version + * @return New object. The widgets are owned by Alfred. The objects is pushed on to the cleanup stack + */ + OSN_IMPORT AlfRecyclingGridElement(CAlfWidgetControl& aControl, const char* aName, int aNumColumns, int aNumRows); + + + /** Class Destructor estructor. + * + * @since S60 ?S60_version + */ + OSN_IMPORT virtual ~AlfRecyclingGridElement(); + + /** + * Constructor. + * @param aFillStyle - style to be used to fill the grid + * @param aFillStyleParam - + * @since S60 ?S60_version + * @return New object. The widgets are owned by Alfred. The objects is pushed on to the cleanup stack + */ + OSN_IMPORT void setFillStyle(FillStyle aFillStyle, int aFillStyleParam); + /* + * Sets the animation times for diferent visual changes + * @param aScrollingTime - animation time while scrolling + * @param aFadeInTime - amination time for fading in + * @param aFadeinDelay - a delay time after which fade in starts + * @param aFadeOutTime - animation time for fading out + * @param aFadeOutDelay - a delay time after which fade out will start + */ + + OSN_IMPORT void setAnimationTimes( int aScrollingTime, + int aFadeInTime, int aFadeInDelay, + int aFadeOutTime, int aFadeOutDelay ); + + /** + * Creates a visual tree with the data given for visuals. + * + * @exception std::bad_alloc + * @exception osncore::AlfVisualException Thrown with the error code osncore::ECanNotCreateVisual\n + * when creation of visual fails. + * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n + * when wrond data id is supplied. + * @exception std::bad_alloc + * @since S60 ?S60_version + * @param aData Data for visual tree to be created + * @param aDataID Parent visual tree's data id + * @param aParentLayout Parent layout to which newly created visual tree will be added + * @param aLayoutIndex Position in parent layout at which new visual tree will be added + */ + + OSN_IMPORT virtual CAlfVisual* createVisualTree( + IAlfVariantType& aData, uint aDataID, + CAlfLayout* aParentLayout, int aLayoutIndex ); + + //Implementation of IAlfWidgetEventHandler + + /** + * Used to identify event handlers that are capable of handling + * a specified key or custom event. Pointer event handlers cannot be + * identified directly, since they are dependent on the presentation. + * Therefore, pointer event handlers should be associated with + * a custom event ID that can be used to simulate the actual pointer event. + * + * @since S60 ?S60_version + * @param aEvent The event. + * @return ETrue if the event can be processed. Otherwise EFalse. + */ + OSN_IMPORT virtual bool accept( CAlfWidgetControl& aControl, const TAlfEvent& aEvent ) const; + + /** + * Called when an input event is being offered to this event handler. + * The return value is used to indicate if the event was processed. + * Processed events may not be offered to other event handlers. + * + * @since S60 ?S60_version + * @param aControl The parent control of this event handler. + * @param aEvent The event. + * @return Result of event processing. See AlfEventStatus. + */ + OSN_IMPORT AlfEventStatus offerEvent( CAlfWidgetControl& aControl,const TAlfEvent& aEvent ); + + /** + * @see MAlfWidgetEventHandler + */ + OSN_IMPORT void setActiveStates( unsigned int aStates ); + + /** + * Sets AlfWidgetEventHandlerInitData to event handler. + * + * @param aData A data structure which contains for example id of the event + * handler. + */ + OSN_IMPORT void setEventHandlerData( const AlfWidgetEventHandlerInitData& aData ); + + /** + * Returns AlfWidgetEventHandlerInitData. + * + * @return A pointer to AlfWidgetEventHandlerInitData structure which contains + * for example id of the event handler. + */ + OSN_IMPORT AlfWidgetEventHandlerInitData* eventHandlerData(); + + /** + * Returns the type of EventHandler. + * @see IAlfWidgetEventHandler::AlfEventHandlerType + * + * @return The type of event handler. + */ + IAlfWidgetEventHandler::AlfEventHandlerType eventHandlerType(); + + /** + * Returns information about the phase in the event handling cycle in + * which the event hadler will be executed. + * @see IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase + * + * @return Event handler execution phase. + */ + IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase eventExecutionPhase(); + + /** + * From @see MAlfInterfaceBase. + * @since S60 ?S60_version + * @param aType The type of interface requested. + * @return Returns the new Interface + */ + OSN_IMPORT virtual IAlfInterfaceBase* makeInterface( const IfId& aType ); + + + /** + * Creates a visual tree with the data given for visuals. + * + * @exception std::bad_alloc + * @exception osncore::AlfVisualException Thrown with the error code osncore::ECanNotCreateVisual\n + * when creation of visual fails. + * @exception osncore::AlfVisualException Thrown with the error code osncore::EInvalidElement\n + * when wrond data id is supplied. + * @exception std::bad_alloc + * @since S60 ?S60_version + * @param aData Data for visual tree to be created + * @param aDataID Parent visual tree's data id + * @param aParentLayout Parent layout to which newly created visual tree will be added + * @param aLayoutIndex Position in parent layout at which new visual tree will be added + */ + OSN_IMPORT virtual void createChildVisualTree( IAlfElement* aElement, + IAlfVariantType& aChildData, + IAlfBranch& aData, + int aIndex, uint aDataID ); + /** + * Removes visual tree from given element. + * + * @since S60 ?S60_version + * @param aElement Element from which visual tree is to be removed + * @param aData + * @param aIndex + * @param aDataID + */ + OSN_IMPORT virtual void removeChildVisualTree( IAlfElement* aElement, IAlfBranch& aData, int aIndex, uint aDataID ); + + /** + * removes and destroys all the visuals. + * + * @param aTimeMilliseconds animation time for remove. + */ + OSN_IMPORT void removeAndDestroyVisuals( int aTimeMilliseconds ); + +private: + friend class AlfRecyclingGridElementImpl; + auto_ptr mImpl; + }; + + } // namespace + +#endif // ALF_RECYCLINGGRIDELEMENT_H