--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/widgetmodel/alfwidgetmodel/inc/alfrecyclinggridelementimpl.h Thu Dec 17 08:56:02 2009 +0200
@@ -0,0 +1,240 @@
+/*
+* 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: Class for private implementation for AlfRecyclingGridElement.
+*
+*/
+
+
+#ifndef ALFRECYCLINGGRIDELEMENTIMPL_H
+#define ALFRECYCLINGGRIDELEMENTIMPL_H
+
+#include "alf/alfrecyclinggridelement.h"
+#include <osn/osndefines.h>
+
+class CAlfVisual;
+class CAlfLayout;
+class TAlfEvent;
+
+namespace Alf
+ {
+class CAlfWidgetControl;
+class IAlfVariantType;
+class IAlfBranch;
+class IAlfElement;
+
+/**
+ * Implementation class used with the implPtr paradigm.
+ */
+OSN_NONSHARABLE_CLASS( AlfRecyclingGridElementImpl )
+ {
+public:
+ /**
+ * Gets the unit.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ AlfRecyclingGridElementImpl(
+ AlfRecyclingGridElement& aOwner,
+ int aNumColumns,
+ int aNumRows);
+ /**
+ * Gets the unit.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ ~AlfRecyclingGridElementImpl();
+ /**
+ * setFillStyle.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ void setFillStyle(AlfRecyclingGridElement::FillStyle aFillStyle, int aFillStyleParam);
+
+ /**
+ * setAnimationTimes.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ void setAnimationTimes( int aScrollingTime,
+ int aFadeInTime, int aFadeInDelay,
+ int aFadeOutTime, int aFadeOutDelay );
+ /**
+ * createVisualTree.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ CAlfVisual* createVisualTree(
+ IAlfVariantType& aData, uint aDataID,
+ CAlfLayout* aParentLayout, int aLayoutIndex );
+ /**
+ * accept.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ bool accept( CAlfWidgetControl& aControl, const TAlfEvent& aEvent ) const;
+ /**
+ * offerEvent.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ bool offerEvent( CAlfWidgetControl& aControl, const TAlfEvent& aEvent );
+ /**
+ * setActiveStates.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ void setActiveStates( unsigned int aStates );
+ /**
+ * Sets AlfWidgetEventHandlerInitData to event handler.
+ *
+ * @param aData A data structure which contains for example id of the event
+ * handler.
+ */
+ void setEventHandlerData( const AlfWidgetEventHandlerInitData& /*aData*/ ) { }
+
+ /**
+ * Returns AlfWidgetEventHandlerInitData.
+ *
+ * @return A pointer to AlfWidgetEventHandlerInitData structure which contains
+ * for example id of the event handler.
+ */
+ AlfWidgetEventHandlerInitData* eventHandlerData() { return NULL; }
+ /**
+ * createChildVisualTree.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ void createChildVisualTree( IAlfElement* aElement,
+ IAlfVariantType& aChildData,
+ IAlfBranch& aData,
+ int aIndex, uint aDataID );
+ /**
+ * removeChildVisualTree.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ void removeChildVisualTree( IAlfElement* aElement, IAlfBranch& aData, int aIndex, uint aDataID );
+ /**
+ * removeAndDestroyVisuals.
+ *
+ * @since S60 ?S60_version
+ * @return The unit.
+ */
+ void removeAndDestroyVisuals( int aTimeMilliseconds );
+
+private:
+
+ /**
+ * Api to naviagte by a single row or column.
+ * @since S60 ?S60_version
+ * @param aControl - Widget Control
+ * @param aPageUp - indicates the direction either a page up or page down
+ */
+ bool moveSingleRowOrColumn( CAlfWidgetControl& aControl, bool aPageUp);
+
+ /**
+ * APi to find the point in the grid for a given index in the visual array on the recycle grid .
+ * @since S60 ?S60_version
+ * @param aInd - index of the element
+ * @return TPoint - Point or cordinates
+ */
+ TPoint calculateChildPos(int aInd) const;
+
+ /**
+ * APi to find the index for a given point
+ * @since S60 ?S60_version
+ * @param aPos- position for whom the index needs to be found out
+ * @return int - Index of the cordinate
+ */
+ int calculateChildInd(TPoint aPos) const;
+
+ /**
+ * Internal APi to do the index calcuation for navigation and recycling
+ */
+ void doPositioningAndScrolling( CAlfWidgetControl& aControl,uint aEventID);
+
+private:
+
+ AlfRecyclingGridElement& mOwner;
+
+ //class Data
+ /**
+ * The number of visible rows and columns.
+ */
+ int mNumVisibleColumns, mNumVisibleRows;
+
+ /**
+ * The number of rows and columns in the grid layout.
+ */
+ int mNumColumns, mNumRows;
+
+ /**
+ * The strategy for adding new items to the grid
+ */
+ AlfRecyclingGridElement::FillStyle mFillStyle;
+
+ /**
+ * The maximum number of items used with EColumnsFirst and ERowsFirst fill styles
+ */
+ int mFillStyleParam;
+
+
+ /**
+ * Duration of the scrolling animation
+ */
+ int mScrollingTime;
+
+ /**
+ * Duration of the fade in animation
+ */
+ int mFadeInTime;
+
+ /**
+ * Delay before the fade in animation
+ */
+ int mFadeInDelay;
+
+ /**
+ * Duration of the fade out animation
+ */
+ int mFadeOutTime;
+
+ /**
+ * Delay before the fade out animation
+ */
+ int mFadeOutDelay;
+
+ /**
+ * The logical scrolling offset.
+ */
+ TPoint mScrollOffset;
+
+ bool mHorizontalOffset;
+ bool mVerticalOffset;
+ unsigned int mActiveStates;
+ };
+
+ } // namespace Alf
+
+#endif // C_ALFWIDGETEVENTHANDLERIMPL_H