ganeswidgets/inc/hggridcontainer.h
changeset 19 31a1a9e11046
parent 9 dde80bf4a8c7
child 20 a60f8b6b1d32
--- a/ganeswidgets/inc/hggridcontainer.h	Fri Sep 17 08:35:50 2010 +0300
+++ b/ganeswidgets/inc/hggridcontainer.h	Mon Oct 04 02:07:13 2010 +0300
@@ -19,10 +19,12 @@
 #define HGGRIDCONTAINER_H
 
 #include "hgcontainer.h"
+#include <QPropertyAnimation>
+#include <QQueue>
 
-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<int,int> levels, Qt::Orientation scrollDirection);
+    QPair<int,int> 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<qreal> iTargetRowCountList;
+    QSizeF mTargetImageSize;
+    bool mPinchEndAlreadyHandled;
+    bool mReactToOnlyPanGestures;
+    QPropertyAnimation iFadeAnimation;
+    int mHorizontalRowCount;
+    int mVerticalColumnCount;
+    QPair<int,int> mHorizontalPinchLevels;
+    QPair<int,int> mVerticalPinchLevels;
 };
 
 #endif