ganeswidgets/inc/hggridcontainer.h
changeset 17 a10844a9914d
parent 6 1cdcc61142d2
child 20 a60f8b6b1d32
equal deleted inserted replaced
15:1ef5359bf0f4 17:a10844a9914d
    17 
    17 
    18 #ifndef HGGRIDCONTAINER_H
    18 #ifndef HGGRIDCONTAINER_H
    19 #define HGGRIDCONTAINER_H
    19 #define HGGRIDCONTAINER_H
    20 
    20 
    21 #include "hgcontainer.h"
    21 #include "hgcontainer.h"
       
    22 #include <QPropertyAnimation>
       
    23 #include <QQueue>
    22 
    24 
    23 class HbLabel;
       
    24 class HgWidgetItem;
    25 class HgWidgetItem;
    25 class HgMediaWallRenderer;
    26 class HgMediaWallRenderer;
       
    27 class HbPinchGesture;
    26 
    28 
    27 class HgGridContainer : public HgContainer
    29 class HgGridContainer : public HgContainer
    28 {
    30 {
    29     Q_OBJECT
    31     Q_OBJECT
    30     Q_DISABLE_COPY(HgGridContainer)
    32     Q_DISABLE_COPY(HgGridContainer)
    35     virtual ~HgGridContainer();
    37     virtual ~HgGridContainer();
    36 
    38 
    37     void setEffect3dEnabled(bool effect3dEnabled);
    39     void setEffect3dEnabled(bool effect3dEnabled);
    38     bool effect3dEnabled() const;
    40     bool effect3dEnabled() const;
    39     
    41     
       
    42     void setPinchEnabled(bool pinchEnabled);
       
    43     bool pinchEnabled() const;
       
    44     void setPinchLevels(QPair<int,int> levels, Qt::Orientation scrollDirection);
       
    45     QPair<int,int> pinchLevels(Qt::Orientation scrollDirection) const;
       
    46     
       
    47     void setRowCount(int count, Qt::Orientation scrollDirection = Qt::Horizontal);
       
    48     int rowCount(Qt::Orientation scrollDirection) const;
       
    49 
       
    50 signals:
       
    51 
       
    52     void emptySpacePressed();
       
    53     
    40 protected:
    54 protected:
    41 
    55 
    42     // events
    56     // events
    43     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    57     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    44     
    58     
    45     // from HgContainer
    59     // from HgContainer
    46     virtual HgMediaWallRenderer* createRenderer(Qt::Orientation scrollDirection);
    60     virtual HgMediaWallRenderer* createRenderer(Qt::Orientation scrollDirection);
    47     virtual qreal getCameraDistance(qreal springVelocity);
    61     virtual qreal getCameraDistance(qreal springVelocity);
    48     virtual qreal getCameraRotationY(qreal springVelocity);
    62     virtual qreal getCameraRotationY(qreal springVelocity);
    49     virtual void handleTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex);
    63     virtual bool handleTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex);
    50     virtual void handleLongTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemindex);
    64     virtual bool handleLongTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemindex);
    51     virtual void onScrollPositionChanged(qreal pos);
    65     virtual void onScrollPositionChanged(qreal pos);
       
    66     virtual bool handleTap(Qt::GestureState state, const QPointF &pos);
       
    67     virtual bool handleLongTap(Qt::GestureState state, const QPointF &pos);
       
    68     virtual void setOrientation(Qt::Orientation orientation, bool animate=true);
    52 
    69 
       
    70     void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
       
    71     void mousePressEvent(QGraphicsSceneMouseEvent *event);
       
    72     void gestureEvent(QGestureEvent* event);
       
    73     bool event(QEvent *e);
       
    74     
       
    75     void handlePinchEnd();
       
    76     void handlePinchUpdate(HbPinchGesture* pinch);    
       
    77 
       
    78 public slots:
       
    79     
       
    80     void effectFinished();
       
    81     
    53 private:    
    82 private:    
    54     
    83     
    55     bool mEffect3dEnabled;
    84     bool mEffect3dEnabled;
       
    85     bool mPinchEnabled;
       
    86     bool mPinchingOngoing;
       
    87     int mTempImageHeightForLineGrid;    //this is changed during pinching
       
    88     int mTempImageHeightFinal;          //this is changed during pinching
       
    89     int mTempRowCount;                  //this is changed during pinching
       
    90     int mTargetRowCount;
       
    91     QQueue<qreal> iTargetRowCountList;
       
    92     QSizeF mTargetImageSize;
       
    93     bool mPinchEndAlreadyHandled;
       
    94     bool mReactToOnlyPanGestures;
       
    95     QPropertyAnimation iFadeAnimation;
       
    96     int mHorizontalRowCount;
       
    97     int mVerticalColumnCount;
       
    98     QPair<int,int> mHorizontalPinchLevels;
       
    99     QPair<int,int> mVerticalPinchLevels;
    56 };
   100 };
    57 
   101 
    58 #endif
   102 #endif