ganeswidgets/inc/hgcoverflowcontainer.h
changeset 3 c863538fcbb6
parent 2 49c70dcc3f17
child 5 4fa04caf0f43
equal deleted inserted replaced
2:49c70dcc3f17 3:c863538fcbb6
    19 #define HGCOVERFLOWCONTAINER_H
    19 #define HGCOVERFLOWCONTAINER_H
    20 
    20 
    21 #include <hgwidgets/hgmediawall.h>
    21 #include <hgwidgets/hgmediawall.h>
    22 #include "HgContainer.h"
    22 #include "HgContainer.h"
    23 
    23 
    24 class HbLabel;
    24 class HgCenterItemArea;
    25 
    25 
    26 class HgCoverflowContainer: public HgContainer
    26 class HgCoverflowContainer: public HgContainer
    27 {
    27 {
    28     Q_OBJECT
    28     Q_OBJECT
    29     Q_DISABLE_COPY(HgCoverflowContainer)
    29     Q_DISABLE_COPY(HgCoverflowContainer)
    32     explicit HgCoverflowContainer(QGraphicsItem* parent = 0);
    32     explicit HgCoverflowContainer(QGraphicsItem* parent = 0);
    33     virtual ~HgCoverflowContainer();
    33     virtual ~HgCoverflowContainer();
    34 
    34 
    35     // events
    35     // events
    36     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    36     virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    37     virtual void resizeEvent(QGraphicsSceneResizeEvent *event);
       
    38 
    37 
    39     // from HgContainer
    38     // from HgContainer
    40     virtual HgMediaWallRenderer* createRenderer(Qt::Orientation scrollDirection);
    39     virtual HgMediaWallRenderer* createRenderer(Qt::Orientation scrollDirection);
    41     virtual qreal getCameraDistance(qreal springVelocity);
    40     virtual qreal getCameraDistance(qreal springVelocity);
    42     virtual qreal getCameraRotationY(qreal springVelocity);
    41     virtual qreal getCameraRotationY(qreal springVelocity);
    43     virtual void handleTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex);
    42     virtual void handleTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex);
    44     virtual void handleLongTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex);
    43     virtual void handleLongTapAction(const QPointF& pos, HgWidgetItem* hitItem, int hitItemIndex);
    45     virtual void onScrollPositionChanged(qreal pos);
    44     virtual void onScrollPositionChanged(qreal pos);
    46     virtual void handleCurrentChanged(const QModelIndex & current);
       
    47     virtual void itemDataChanged(const int &firstIndex, const int &lastIndex);
       
    48     virtual void scrollToPosition(const QPointF& pos, bool animate);
    45     virtual void scrollToPosition(const QPointF& pos, bool animate);
    49 
    46 
    50     virtual QSizeF getAutoItemSize() const;
    47     virtual QSizeF getAutoItemSize() const;
    51     virtual QSizeF getAutoItemSpacing() const;
    48     virtual QSizeF getAutoItemSpacing() const;
    52     virtual void updateItemSizeAndSpacing();
    49     virtual void updateItemSizeAndSpacing();
    53     
       
    54     void setTitlePosition(HgMediawall::LabelPosition position);
       
    55     HgMediawall::LabelPosition titlePosition() const;
       
    56     void setDescriptionPosition(HgMediawall::LabelPosition position);
       
    57     HgMediawall::LabelPosition descriptionPosition() const;
       
    58     void setTitleFontSpec(const HbFontSpec &fontSpec);
       
    59     HbFontSpec titleFontSpec() const;
       
    60     void setDescriptionFontSpec(const HbFontSpec &fontSpec);
       
    61     HbFontSpec descriptionFontSpec() const;
       
    62 
    50 
    63     void setFrontItemPositionDelta(const QPointF& position);
    51     void setFrontItemPositionDelta(const QPointF& position);
    64     QPointF frontItemPositionDelta() const;
    52     QPointF frontItemPositionDelta() const;
    65 
    53 
    66     void enableReflections(bool enabled);
    54     void enableReflections(bool enabled);
    67     bool reflectionsEnabled() const;
    55     bool reflectionsEnabled() const;
    68 
    56 
       
    57     void setCenterItemArea(HgCenterItemArea *centerItemArea);
       
    58 
       
    59 public slots:
       
    60 
       
    61     void updateItemSize();
       
    62 
    69 signals:
    63 signals:
    70 
    64 
    71     void animationAboutToEnd(const QModelIndex& targetIndex);
    65     void animationAboutToEnd(const QModelIndex& targetIndex);
    72 
    66 
    73 private: // From HgContainer
       
    74     void setDefaultImage(QImage defaultImage);
       
    75 
       
    76 private:
    67 private:
    77 
    68 
    78     void updateLabels(int itemIndex);
    69     void calculateItemSize();
    79 
       
    80     void updatePositions();
       
    81     
       
    82     void calculatePositions();    
       
    83     void positionLabels();
       
    84     void onScrollingStarted();
    70     void onScrollingStarted();
    85     void onScrollingEnded();
    71     void onScrollingEnded();
    86 
    72 
    87 private:
    73 private:
    88     HbLabel                     *mTitleLabel;
    74     int              mPrevPos;
    89     HbLabel                     *mDescriptionLabel;
    75     QSizeF           mAutoSize;
    90     HgMediawall::LabelPosition  mTitlePosition;
    76     bool             mAnimationAboutToEndReacted;
    91     HgMediawall::LabelPosition  mDescriptionPosition;
    77     HgCenterItemArea *mCenterItemArea;
    92     int                         mPrevPos;
       
    93     qreal                       mAspectRatio;
       
    94     QSizeF                      mAutoSize;
       
    95     bool                        mAnimationAboutToEndReacted;
       
    96 };
    78 };
    97 
    79 
    98 #endif
    80 #endif