diff -r 1ef5359bf0f4 -r a10844a9914d ganeswidgets/inc/hggridcontainer.h --- a/ganeswidgets/inc/hggridcontainer.h Fri Sep 03 10:22:04 2010 +0300 +++ b/ganeswidgets/inc/hggridcontainer.h Fri Sep 17 15:55:58 2010 +0300 @@ -19,10 +19,12 @@ #define HGGRIDCONTAINER_H #include "hgcontainer.h" +#include +#include -class HbLabel; class HgWidgetItem; class HgMediaWallRenderer; +class HbPinchGesture; class HgGridContainer : public HgContainer { @@ -37,6 +39,18 @@ void setEffect3dEnabled(bool effect3dEnabled); bool effect3dEnabled() const; + void setPinchEnabled(bool pinchEnabled); + bool pinchEnabled() const; + void setPinchLevels(QPair levels, Qt::Orientation scrollDirection); + QPair pinchLevels(Qt::Orientation scrollDirection) const; + + void setRowCount(int count, Qt::Orientation scrollDirection = Qt::Horizontal); + int rowCount(Qt::Orientation scrollDirection) const; + +signals: + + void emptySpacePressed(); + protected: // events @@ -46,13 +60,43 @@ virtual HgMediaWallRenderer* createRenderer(Qt::Orientation scrollDirection); virtual qreal getCameraDistance(qreal springVelocity); virtual qreal getCameraRotationY(qreal springVelocity); - virtual void handleTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex); - virtual void handleLongTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemindex); + virtual bool handleTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex); + virtual bool handleLongTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemindex); virtual void onScrollPositionChanged(qreal pos); + virtual bool handleTap(Qt::GestureState state, const QPointF &pos); + virtual bool handleLongTap(Qt::GestureState state, const QPointF &pos); + virtual void setOrientation(Qt::Orientation orientation, bool animate=true); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void gestureEvent(QGestureEvent* event); + bool event(QEvent *e); + + void handlePinchEnd(); + void handlePinchUpdate(HbPinchGesture* pinch); + +public slots: + + void effectFinished(); + private: bool mEffect3dEnabled; + bool mPinchEnabled; + bool mPinchingOngoing; + int mTempImageHeightForLineGrid; //this is changed during pinching + int mTempImageHeightFinal; //this is changed during pinching + int mTempRowCount; //this is changed during pinching + int mTargetRowCount; + QQueue iTargetRowCountList; + QSizeF mTargetImageSize; + bool mPinchEndAlreadyHandled; + bool mReactToOnlyPanGestures; + QPropertyAnimation iFadeAnimation; + int mHorizontalRowCount; + int mVerticalColumnCount; + QPair mHorizontalPinchLevels; + QPair mVerticalPinchLevels; }; #endif