summaryrefslogtreecommitdiffstats
path: root/examples/animation/padnavigator-ng/panel.h
blob: cbceed14d70b7c2f15f26923ca84b3a277f2ae37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/****************************************************************************
**
** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
** This file is part of the $MODULE$ of the Qt Toolkit.
**
** $TROLLTECH_DUAL_LICENSE$
**
****************************************************************************/

#include <QtGui/qgraphicsview.h>
#ifdef QT_EXPERIMENTAL_SOLUTION
#include "qtgraphicswidget.h"
#else
#include <QtGui/qgraphicswidget.h>
#endif

QT_BEGIN_NAMESPACE
class Ui_BackSide;
QT_END_NAMESPACE;

class RoundRectItem;
class QAnimationGroup;
class QPropertyAnimation;

class Panel : public QGraphicsView
{
    Q_OBJECT
public:
    Panel(int width, int height);
    ~Panel();

protected:
    void keyPressEvent(QKeyEvent *event);
    void resizeEvent(QResizeEvent *event);

private Q_SLOTS:
    void flip();

private:
    QPointF posForLocation(int index) const;

    QGraphicsWidget *selectionItem;
    QGraphicsWidget *baseItem;
    RoundRectItem *backItem;
    QGraphicsWidget *splash;
    int selectedIndex;

    QVector<QGraphicsItem*> grid;
    
    int width;
    int height;
    bool flipped;
    Ui_BackSide *ui;

    QAnimationGroup *flippingGroup;
    QPropertyAnimation *rotationXanim, *rotationYanim;
};