summaryrefslogtreecommitdiffstats
path: root/examples/animation
diff options
context:
space:
mode:
authorDavid Boddie <david.boddie@nokia.com>2011-04-28 17:39:11 (GMT)
committerDavid Boddie <david.boddie@nokia.com>2011-04-28 17:39:11 (GMT)
commit3abaecc3aec4e46f1c5969c33875fd45aa542385 (patch)
tree58613c5d2b765018c31d0b189e9c5a34d8adde69 /examples/animation
parentddb22795641253a026b72f752ebc769745dd41be (diff)
downloadQt-3abaecc3aec4e46f1c5969c33875fd45aa542385.zip
Qt-3abaecc3aec4e46f1c5969c33875fd45aa542385.tar.gz
Qt-3abaecc3aec4e46f1c5969c33875fd45aa542385.tar.bz2
Squashed commit of the changes from the mobile-examples repository
(4.7-generated-declarative branch).
Diffstat (limited to 'examples/animation')
-rw-r--r--examples/animation/animatedtiles/animatedtiles.desktop11
-rw-r--r--examples/animation/animatedtiles/animatedtiles.pro1
-rw-r--r--examples/animation/animatedtiles/main.cpp4
-rw-r--r--examples/animation/appchooser/appchooser.desktop11
-rw-r--r--examples/animation/appchooser/appchooser.pro1
-rw-r--r--examples/animation/appchooser/main.cpp30
-rw-r--r--examples/animation/easing/easing.desktop11
-rw-r--r--examples/animation/easing/easing.pro9
-rw-r--r--examples/animation/easing/form.ui95
-rw-r--r--examples/animation/easing/main.cpp8
-rw-r--r--examples/animation/easing/window.cpp7
-rw-r--r--examples/animation/easing/window.h3
-rw-r--r--examples/animation/moveblocks/main.cpp41
-rw-r--r--examples/animation/moveblocks/moveblocks.desktop11
-rw-r--r--examples/animation/moveblocks/moveblocks.pro1
-rw-r--r--examples/animation/states/main.cpp38
-rw-r--r--examples/animation/states/states.desktop11
-rw-r--r--examples/animation/states/states.pro1
-rw-r--r--examples/animation/stickman/graphicsview.cpp5
-rw-r--r--examples/animation/stickman/graphicsview.h1
-rw-r--r--examples/animation/stickman/lifecycle.cpp6
-rw-r--r--examples/animation/stickman/lifecycle.h3
-rw-r--r--examples/animation/stickman/main.cpp34
-rw-r--r--examples/animation/stickman/rectbutton.cpp33
-rw-r--r--examples/animation/stickman/rectbutton.h25
-rw-r--r--examples/animation/stickman/stickman.desktop11
-rw-r--r--examples/animation/stickman/stickman.pro7
27 files changed, 360 insertions, 59 deletions
diff --git a/examples/animation/animatedtiles/animatedtiles.desktop b/examples/animation/animatedtiles/animatedtiles.desktop
new file mode 100644
index 0000000..97e646f
--- /dev/null
+++ b/examples/animation/animatedtiles/animatedtiles.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Animated Tiles
+Exec=/opt/usr/bin/animatedtiles
+Icon=animatedtiles
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/animation/animatedtiles/animatedtiles.pro b/examples/animation/animatedtiles/animatedtiles.pro
index d700642..17528b7 100644
--- a/examples/animation/animatedtiles/animatedtiles.pro
+++ b/examples/animation/animatedtiles/animatedtiles.pro
@@ -11,3 +11,4 @@ symbian {
TARGET.UID3 = 0xA000D7D1
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
}
+maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri)
diff --git a/examples/animation/animatedtiles/main.cpp b/examples/animation/animatedtiles/main.cpp
index 1badb4f..46b5d1d 100644
--- a/examples/animation/animatedtiles/main.cpp
+++ b/examples/animation/animatedtiles/main.cpp
@@ -210,7 +210,11 @@ int main(int argc, char **argv)
view->setBackgroundBrush(bgPix);
view->setCacheMode(QGraphicsView::CacheBackground);
view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
+#ifdef Q_OS_SYMBIAN
+ view->showMaximized();
+#else
view->show();
+#endif
QStateMachine states;
states.addState(rootState);
diff --git a/examples/animation/appchooser/appchooser.desktop b/examples/animation/appchooser/appchooser.desktop
new file mode 100644
index 0000000..8e413e9
--- /dev/null
+++ b/examples/animation/appchooser/appchooser.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Application Chooser
+Exec=/opt/usr/bin/appchooser
+Icon=appchooser
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/animation/appchooser/appchooser.pro b/examples/animation/appchooser/appchooser.pro
index 7d45da2..8355c6f 100644
--- a/examples/animation/appchooser/appchooser.pro
+++ b/examples/animation/appchooser/appchooser.pro
@@ -11,3 +11,4 @@ symbian {
TARGET.UID3 = 0xA000E3F5
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
}
+maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri)
diff --git a/examples/animation/appchooser/main.cpp b/examples/animation/appchooser/main.cpp
index 86ec073..3788533 100644
--- a/examples/animation/appchooser/main.cpp
+++ b/examples/animation/appchooser/main.cpp
@@ -80,6 +80,21 @@ private:
QPixmap p;
};
+class GraphicsView : public QGraphicsView
+{
+ Q_OBJECT
+public:
+ GraphicsView(QGraphicsScene *scene, QWidget *parent = 0) : QGraphicsView(scene, parent)
+ {
+ }
+
+ virtual void resizeEvent(QResizeEvent *event)
+ {
+ fitInView(sceneRect(), Qt::KeepAspectRatio);
+ }
+};
+
+
void createStates(const QObjectList &objects,
const QRect &selectedRect, QState *parent)
{
@@ -112,10 +127,10 @@ int main(int argc, char **argv)
p3->setObjectName("p3");
p4->setObjectName("p4");
- p1->setGeometry(QRectF(0.0, 0.0, 64.0, 64.0));
- p2->setGeometry(QRectF(236.0, 0.0, 64.0, 64.0));
+ p1->setGeometry(QRectF( 0.0, 0.0, 64.0, 64.0));
+ p2->setGeometry(QRectF(236.0, 0.0, 64.0, 64.0));
p3->setGeometry(QRectF(236.0, 236.0, 64.0, 64.0));
- p4->setGeometry(QRectF(0.0, 236.0, 64.0, 64.0));
+ p4->setGeometry(QRectF( 0.0, 236.0, 64.0, 64.0));
QGraphicsScene scene(0, 0, 300, 300);
scene.setBackgroundBrush(Qt::white);
@@ -124,7 +139,7 @@ int main(int argc, char **argv)
scene.addItem(p3);
scene.addItem(p4);
- QGraphicsView window(&scene);
+ GraphicsView window(&scene);
window.setFrameStyle(0);
window.setAlignment(Qt::AlignLeft | Qt::AlignTop);
window.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -135,12 +150,13 @@ int main(int argc, char **argv)
QState *group = new QState(&machine);
group->setObjectName("group");
+
QRect selectedRect(86, 86, 128, 128);
QState *idleState = new QState(group);
group->setInitialState(idleState);
- QObjectList objects;
+ QObjectList objects;
objects << p1 << p2 << p3 << p4;
createStates(objects, selectedRect, group);
createAnimations(objects, &machine);
@@ -148,8 +164,12 @@ int main(int argc, char **argv)
machine.setInitialState(group);
machine.start();
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+ window.showMaximized();
+#else
window.resize(300, 300);
window.show();
+#endif
return app.exec();
}
diff --git a/examples/animation/easing/easing.desktop b/examples/animation/easing/easing.desktop
new file mode 100644
index 0000000..56d1222
--- /dev/null
+++ b/examples/animation/easing/easing.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Easing Curves
+Exec=/opt/usr/bin/easing
+Icon=easing
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/animation/easing/easing.pro b/examples/animation/easing/easing.pro
index a8eda70..763a680 100644
--- a/examples/animation/easing/easing.pro
+++ b/examples/animation/easing/easing.pro
@@ -5,15 +5,18 @@ SOURCES = main.cpp \
FORMS = form.ui
-RESOURCES = easing.qrc
+RESOURCES = easing.qrc
-# install
target.path = $$[QT_INSTALL_EXAMPLES]/animation/easing
sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS easing.pro images
sources.path = $$[QT_INSTALL_EXAMPLES]/animation/easing
-INSTALLS += target sources
+INSTALLS += sources
+
+INSTALLS += target
symbian {
TARGET.UID3 = 0xA000E3F6
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
}
+
+maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri)
diff --git a/examples/animation/easing/form.ui b/examples/animation/easing/form.ui
index b60ade8..364aebe 100644
--- a/examples/animation/easing/form.ui
+++ b/examples/animation/easing/form.ui
@@ -49,12 +49,27 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="groupBox_2">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
<property name="title">
<string>Path type</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
<widget class="QRadioButton" name="lineRadio">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::LeftToRight</enum>
+ </property>
<property name="text">
<string>Line</string>
</property>
@@ -66,8 +81,14 @@
</attribute>
</widget>
</item>
- <item>
+ <item row="1" column="0">
<widget class="QRadioButton" name="circleRadio">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>40</height>
+ </size>
+ </property>
<property name="text">
<string>Circle</string>
</property>
@@ -96,6 +117,18 @@
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="text">
<string>Period</string>
</property>
@@ -106,6 +139,18 @@
<property name="enabled">
<bool>false</bool>
</property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="minimum">
<double>-1.000000000000000</double>
</property>
@@ -117,18 +162,17 @@
</property>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Amplitude</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
+ <item row="2" column="1">
<widget class="QDoubleSpinBox" name="amplitudeSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="minimum">
<double>-1.000000000000000</double>
</property>
@@ -140,18 +184,30 @@
</property>
</widget>
</item>
- <item row="2" column="0">
+ <item row="4" column="0">
<widget class="QLabel" name="label_3">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="text">
<string>Overshoot</string>
</property>
</widget>
</item>
- <item row="2" column="1">
+ <item row="4" column="1">
<widget class="QDoubleSpinBox" name="overshootSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
<property name="minimum">
<double>-1.000000000000000</double>
</property>
@@ -163,6 +219,19 @@
</property>
</widget>
</item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Amplitude</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
diff --git a/examples/animation/easing/main.cpp b/examples/animation/easing/main.cpp
index def1db2..66a6958 100644
--- a/examples/animation/easing/main.cpp
+++ b/examples/animation/easing/main.cpp
@@ -46,7 +46,15 @@ int main(int argc, char **argv)
Q_INIT_RESOURCE(easing);
QApplication app(argc, argv);
Window w;
+
+#if defined(Q_OS_SYMBIAN)
+ w.showMaximized();
+#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_SIMULATOR)
+ w.show();
+#else
w.resize(400, 400);
w.show();
+#endif
+
return app.exec();
}
diff --git a/examples/animation/easing/window.cpp b/examples/animation/easing/window.cpp
index b466cec..869bca4 100644
--- a/examples/animation/easing/window.cpp
+++ b/examples/animation/easing/window.cpp
@@ -41,7 +41,12 @@
#include "window.h"
Window::Window(QWidget *parent)
- : QWidget(parent), m_iconSize(64, 64)
+ : QWidget(parent),
+#if defined(Q_OS_SYMBIAN) || defined(Q_WS_SIMULATOR)
+ m_iconSize(32, 32)
+#else
+ m_iconSize(64, 64)
+#endif
{
m_ui.setupUi(this);
QButtonGroup *buttonGroup = findChild<QButtonGroup *>(); // ### workaround for uic in 4.4
diff --git a/examples/animation/easing/window.h b/examples/animation/easing/window.h
index bbdf14e..17899a4 100644
--- a/examples/animation/easing/window.h
+++ b/examples/animation/easing/window.h
@@ -39,7 +39,6 @@
****************************************************************************/
#include <QtGui>
-
#include "ui_form.h"
#include "animation.h"
@@ -73,6 +72,4 @@ private:
PixmapItem *m_item;
Animation *m_anim;
QSize m_iconSize;
-
-
};
diff --git a/examples/animation/moveblocks/main.cpp b/examples/animation/moveblocks/main.cpp
index 3194c1b..ca1876f 100644
--- a/examples/animation/moveblocks/main.cpp
+++ b/examples/animation/moveblocks/main.cpp
@@ -154,25 +154,28 @@ QState *createGeometryState(QObject *w1, const QRect &rect1,
}
//![13]
+
+class GraphicsView : public QGraphicsView
+{
+ Q_OBJECT
+public:
+ GraphicsView(QGraphicsScene *scene, QWidget *parent = NULL) : QGraphicsView(scene, parent)
+ {
+ }
+
+protected:
+ virtual void resizeEvent(QResizeEvent *event)
+ {
+ fitInView(scene()->sceneRect());
+ QGraphicsView::resizeEvent(event);
+ }
+};
+
+
int main(int argc, char **argv)
{
QApplication app(argc, argv);
-#if 0
- QWidget window;
- QPalette palette;
- palette.setBrush(QPalette::Window, Qt::black);
- window.setPalette(palette);
- QPushButton *button1 = new QPushButton("A", &window);
- QPushButton *button2 = new QPushButton("B", &window);
- QPushButton *button3 = new QPushButton("C", &window);
- QPushButton *button4 = new QPushButton("D", &window);
-
- button1->setObjectName("button1");
- button2->setObjectName("button2");
- button3->setObjectName("button3");
- button4->setObjectName("button4");
-#else
//![1]
QGraphicsRectWidget *button1 = new QGraphicsRectWidget;
QGraphicsRectWidget *button2 = new QGraphicsRectWidget;
@@ -188,12 +191,11 @@ int main(int argc, char **argv)
scene.addItem(button3);
scene.addItem(button4);
//![1]
- QGraphicsView window(&scene);
+ GraphicsView window(&scene);
window.setFrameStyle(0);
window.setAlignment(Qt::AlignLeft | Qt::AlignTop);
window.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
window.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-#endif
//![2]
QStateMachine machine;
@@ -308,8 +310,13 @@ int main(int argc, char **argv)
machine.start();
//![9]
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5)
+ window.showMaximized();
+ window.fitInView(scene.sceneRect() );
+#else
window.resize(300, 300);
window.show();
+#endif
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
diff --git a/examples/animation/moveblocks/moveblocks.desktop b/examples/animation/moveblocks/moveblocks.desktop
new file mode 100644
index 0000000..4100f44
--- /dev/null
+++ b/examples/animation/moveblocks/moveblocks.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Move Blocks
+Exec=/opt/usr/bin/moveblocks
+Icon=moveblocks
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/animation/moveblocks/moveblocks.pro b/examples/animation/moveblocks/moveblocks.pro
index 0a32ecf..ad83ba0 100644
--- a/examples/animation/moveblocks/moveblocks.pro
+++ b/examples/animation/moveblocks/moveblocks.pro
@@ -10,3 +10,4 @@ symbian {
TARGET.UID3 = 0xA000E3F7
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
}
+maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri)
diff --git a/examples/animation/states/main.cpp b/examples/animation/states/main.cpp
index 1565489..d49aa41 100644
--- a/examples/animation/states/main.cpp
+++ b/examples/animation/states/main.cpp
@@ -62,6 +62,19 @@ private:
QPixmap p;
};
+class GraphicsView : public QGraphicsView
+{
+public:
+ GraphicsView(QGraphicsScene *scene) : QGraphicsView(scene)
+ {
+ }
+
+ virtual void resizeEvent(QResizeEvent *event)
+ {
+ fitInView(sceneRect(), Qt::KeepAspectRatio);
+ }
+};
+
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(states);
@@ -130,12 +143,12 @@ int main(int argc, char *argv[])
state1->assignProperty(button, "text", "Switch to state 2");
state1->assignProperty(widget, "geometry", QRectF(0, 0, 400, 150));
state1->assignProperty(box, "geometry", QRect(-200, 150, 200, 150));
- state1->assignProperty(p1, "pos", QPointF(68, 185));
- state1->assignProperty(p2, "pos", QPointF(168, 185));
- state1->assignProperty(p3, "pos", QPointF(268, 185));
- state1->assignProperty(p4, "pos", QPointF(68-150, 48-150));
- state1->assignProperty(p5, "pos", QPointF(168, 48-150));
- state1->assignProperty(p6, "pos", QPointF(268+150, 48-150));
+ state1->assignProperty(p1, "pos", QPointF(68, 200)); // 185));
+ state1->assignProperty(p2, "pos", QPointF(168, 200)); // 185));
+ state1->assignProperty(p3, "pos", QPointF(268, 200)); // 185));
+ state1->assignProperty(p4, "pos", QPointF(68 - 150, 48 - 150));
+ state1->assignProperty(p5, "pos", QPointF(168, 48 - 150));
+ state1->assignProperty(p6, "pos", QPointF(268 + 150, 48 - 150));
state1->assignProperty(p1, "rotation", qreal(0));
state1->assignProperty(p2, "rotation", qreal(0));
state1->assignProperty(p3, "rotation", qreal(0));
@@ -154,9 +167,9 @@ int main(int argc, char *argv[])
state2->assignProperty(button, "text", "Switch to state 3");
state2->assignProperty(widget, "geometry", QRectF(200, 150, 200, 150));
state2->assignProperty(box, "geometry", QRect(9, 150, 190, 150));
- state2->assignProperty(p1, "pos", QPointF(68-150, 185+150));
- state2->assignProperty(p2, "pos", QPointF(168, 185+150));
- state2->assignProperty(p3, "pos", QPointF(268+150, 185+150));
+ state2->assignProperty(p1, "pos", QPointF(68 - 150, 185 + 150));
+ state2->assignProperty(p2, "pos", QPointF(168, 185 + 150));
+ state2->assignProperty(p3, "pos", QPointF(268 + 150, 185 + 150));
state2->assignProperty(p4, "pos", QPointF(64, 48));
state2->assignProperty(p5, "pos", QPointF(168, 48));
state2->assignProperty(p6, "pos", QPointF(268, 48));
@@ -262,8 +275,13 @@ int main(int argc, char *argv[])
machine.start();
- QGraphicsView view(&scene);
+ GraphicsView view(&scene);
+
+#if defined(Q_OS_SYMBIAN)
+ view.showMaximized();
+#else
view.show();
+#endif
return app.exec();
}
diff --git a/examples/animation/states/states.desktop b/examples/animation/states/states.desktop
new file mode 100644
index 0000000..8429979
--- /dev/null
+++ b/examples/animation/states/states.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=States
+Exec=/opt/usr/bin/states
+Icon=states
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/animation/states/states.pro b/examples/animation/states/states.pro
index 9d9a9c1..307e098 100644
--- a/examples/animation/states/states.pro
+++ b/examples/animation/states/states.pro
@@ -11,3 +11,4 @@ symbian {
TARGET.UID3 = 0xA000E3F8
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
}
+maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri)
diff --git a/examples/animation/stickman/graphicsview.cpp b/examples/animation/stickman/graphicsview.cpp
index 23036ef..0f7ce5f 100644
--- a/examples/animation/stickman/graphicsview.cpp
+++ b/examples/animation/stickman/graphicsview.cpp
@@ -54,4 +54,7 @@ void GraphicsView::keyPressEvent(QKeyEvent *e)
emit keyPressed(Qt::Key(e->key()));
}
-
+void GraphicsView::resizeEvent(QResizeEvent *event)
+{
+ fitInView(scene()->sceneRect());
+}
diff --git a/examples/animation/stickman/graphicsview.h b/examples/animation/stickman/graphicsview.h
index 9cf87b6..400e4a6 100644
--- a/examples/animation/stickman/graphicsview.h
+++ b/examples/animation/stickman/graphicsview.h
@@ -51,6 +51,7 @@ public:
GraphicsView(QWidget *parent = 0);
protected:
+ virtual void resizeEvent(QResizeEvent *event);
void keyPressEvent(QKeyEvent *);
signals:
diff --git a/examples/animation/stickman/lifecycle.cpp b/examples/animation/stickman/lifecycle.cpp
index 4abcdc2..8e9dbe1 100644
--- a/examples/animation/stickman/lifecycle.cpp
+++ b/examples/animation/stickman/lifecycle.cpp
@@ -159,10 +159,14 @@ void LifeCycle::start()
m_machine->start();
}
-void LifeCycle::addActivity(const QString &fileName, Qt::Key key)
+void LifeCycle::addActivity(const QString &fileName, Qt::Key key, QObject *sender, const char *signal)
{
QState *state = makeState(m_alive, fileName);
m_alive->addTransition(new KeyPressTransition(m_keyReceiver, key, state));
+
+ if((sender != NULL) || (signal != NULL)) {
+ m_alive->addTransition(sender, signal, state);
+ }
}
QState *LifeCycle::makeState(QState *parentState, const QString &animationFileName)
diff --git a/examples/animation/stickman/lifecycle.h b/examples/animation/stickman/lifecycle.h
index 1bf3661..ca1a052 100644
--- a/examples/animation/stickman/lifecycle.h
+++ b/examples/animation/stickman/lifecycle.h
@@ -50,6 +50,7 @@ class QAnimationGroup;
class QState;
class QAbstractState;
class QAbstractTransition;
+class QObject;
QT_END_NAMESPACE
class GraphicsView;
class LifeCycle
@@ -59,7 +60,7 @@ public:
~LifeCycle();
void setDeathAnimation(const QString &fileName);
- void addActivity(const QString &fileName, Qt::Key key);
+ void addActivity(const QString &fileName, Qt::Key key, QObject *sender = NULL, const char *signal = NULL);
void start();
diff --git a/examples/animation/stickman/main.cpp b/examples/animation/stickman/main.cpp
index 08df766..902e572 100644
--- a/examples/animation/stickman/main.cpp
+++ b/examples/animation/stickman/main.cpp
@@ -43,6 +43,7 @@
#include "lifecycle.h"
#include "stickman.h"
#include "graphicsview.h"
+#include "rectbutton.h"
#include <QtCore>
#include <QtGui>
@@ -55,6 +56,11 @@ int main(int argc, char **argv)
StickMan *stickMan = new StickMan;
stickMan->setDrawSticks(false);
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5) || defined(Q_WS_SIMULATOR)
+ RectButton *buttonJump = new RectButton("Jump"); buttonJump->setPos(100, 125);
+ RectButton *buttonDance = new RectButton("Dance"); buttonDance->setPos(100, 200);
+ RectButton *buttonChill = new RectButton("Chill"); buttonChill->setPos(100, 275);
+#else
QGraphicsTextItem *textItem = new QGraphicsTextItem();
textItem->setHtml("<font color=\"white\"><b>Stickman</b>"
"<p>"
@@ -71,31 +77,55 @@ int main(int argc, char **argv)
qreal w = textItem->boundingRect().width();
QRectF stickManBoundingRect = stickMan->mapToScene(stickMan->boundingRect()).boundingRect();
textItem->setPos(-w / 2.0, stickManBoundingRect.bottom() + 25.0);
+#endif
QGraphicsScene scene;
scene.addItem(stickMan);
+
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5) || defined(Q_WS_SIMULATOR)
+ scene.addItem(buttonJump);
+ scene.addItem(buttonDance);
+ scene.addItem(buttonChill);
+#else
scene.addItem(textItem);
+#endif
scene.setBackgroundBrush(Qt::black);
GraphicsView view;
view.setRenderHints(QPainter::Antialiasing);
view.setTransformationAnchor(QGraphicsView::NoAnchor);
view.setScene(&scene);
- view.show();
- view.setFocus();
QRectF sceneRect = scene.sceneRect();
// making enough room in the scene for stickman to jump and die
view.resize(sceneRect.width() + 100, sceneRect.height() + 100);
view.setSceneRect(sceneRect);
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5) || defined(Q_WS_SIMULATOR)
+ view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ view.showMaximized();
+ view.fitInView(scene.sceneRect(), Qt::KeepAspectRatio);
+#else
+ view.show();
+ view.setFocus();
+#endif
+
LifeCycle cycle(stickMan, &view);
cycle.setDeathAnimation(":/animations/dead");
+#if defined(Q_WS_S60) || defined(Q_WS_MAEMO_5) || defined(Q_WS_SIMULATOR)
+ cycle.addActivity(":/animations/jumping", Qt::Key_J, buttonJump, SIGNAL(clicked()));
+ cycle.addActivity(":/animations/dancing", Qt::Key_D, buttonDance, SIGNAL(clicked()));
+ cycle.addActivity(":/animations/chilling", Qt::Key_C, buttonChill, SIGNAL(clicked()));
+#else
cycle.addActivity(":/animations/jumping", Qt::Key_J);
cycle.addActivity(":/animations/dancing", Qt::Key_D);
cycle.addActivity(":/animations/chilling", Qt::Key_C);
+#endif
+
cycle.start();
+
return app.exec();
}
diff --git a/examples/animation/stickman/rectbutton.cpp b/examples/animation/stickman/rectbutton.cpp
new file mode 100644
index 0000000..f8b00da
--- /dev/null
+++ b/examples/animation/stickman/rectbutton.cpp
@@ -0,0 +1,33 @@
+#include "rectbutton.h"
+#include <QPainter>
+
+RectButton::RectButton(QString buttonText) : m_ButtonText(buttonText)
+{
+}
+
+
+RectButton::~RectButton()
+{
+}
+
+
+void RectButton::mousePressEvent (QGraphicsSceneMouseEvent *event)
+{
+ emit clicked();
+}
+
+
+QRectF RectButton::boundingRect() const
+{
+ return QRectF(0.0, 0.0, 90.0, 40.0);
+}
+
+
+void RectButton::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+ painter->setBrush(Qt::gray);
+ painter->drawRoundedRect(boundingRect(), 5, 5);
+
+ painter->setPen(Qt::white);
+ painter->drawText(20, 25, m_ButtonText);
+}
diff --git a/examples/animation/stickman/rectbutton.h b/examples/animation/stickman/rectbutton.h
new file mode 100644
index 0000000..95ca2e2
--- /dev/null
+++ b/examples/animation/stickman/rectbutton.h
@@ -0,0 +1,25 @@
+#ifndef RECTBUTTON_H
+#define RECTBUTTON_H
+
+#include <QGraphicsObject>
+
+class RectButton : public QGraphicsObject
+{
+ Q_OBJECT
+public:
+ RectButton(QString buttonText);
+ ~RectButton();
+
+ virtual QRectF boundingRect() const;
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+
+protected:
+ QString m_ButtonText;
+
+ virtual void mousePressEvent (QGraphicsSceneMouseEvent *event);
+
+signals:
+ void clicked();
+};
+
+#endif // RECTBUTTON_H
diff --git a/examples/animation/stickman/stickman.desktop b/examples/animation/stickman/stickman.desktop
new file mode 100644
index 0000000..1722d4d
--- /dev/null
+++ b/examples/animation/stickman/stickman.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Stickman
+Exec=/opt/usr/bin/stickman
+Icon=stickman
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/examples/animation/stickman/stickman.pro b/examples/animation/stickman/stickman.pro
index 37ff8d3..db0c4e5 100644
--- a/examples/animation/stickman/stickman.pro
+++ b/examples/animation/stickman/stickman.pro
@@ -2,13 +2,15 @@ HEADERS += stickman.h \
animation.h \
node.h \
lifecycle.h \
- graphicsview.h
+ graphicsview.h \
+ rectbutton.h
SOURCES += main.cpp \
stickman.cpp \
animation.cpp \
node.cpp \
lifecycle.cpp \
- graphicsview.cpp
+ graphicsview.cpp \
+ rectbutton.cpp
RESOURCES += stickman.qrc
@@ -22,3 +24,4 @@ symbian {
TARGET.UID3 = 0xA000E3F9
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
}
+maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri)