diff --git a/examples/demos/samegame/content/Button.qml b/examples/demos/samegame/content/Button.qml index 2d1a993226..44da525144 100644 --- a/examples/demos/samegame/content/Button.qml +++ b/examples/demos/samegame/content/Button.qml @@ -45,6 +45,7 @@ Rectangle { id: container property string text: "Button" + property int fontSize: 24 signal clicked @@ -70,6 +71,6 @@ Rectangle { MouseArea { id: mouseArea; anchors.fill: parent; onClicked: container.clicked() } Text { - id: buttonLabel; text: container.text; anchors.centerIn: container; color: activePalette.buttonText; font.pixelSize: 24 + id: buttonLabel; text: container.text; anchors.centerIn: container; color: activePalette.buttonText; font.pixelSize: container.fontSize } } diff --git a/examples/demos/samegame/content/NameInputDialog.qml b/examples/demos/samegame/content/NameInputDialog.qml index 7c3bfa274a..26101d6645 100644 --- a/examples/demos/samegame/content/NameInputDialog.qml +++ b/examples/demos/samegame/content/NameInputDialog.qml @@ -62,7 +62,7 @@ Dialog { Text { id: dialogText anchors { left: nameInputDialog.left; leftMargin: 20; verticalCenter: parent.verticalCenter } - text: "You won! Please enter your name: " + text: "You won! Your name: " } MouseArea { anchors.fill: parent diff --git a/examples/demos/samegame/content/samegame.js b/examples/demos/samegame/content/samegame.js index 611767584b..d530718927 100755 --- a/examples/demos/samegame/content/samegame.js +++ b/examples/demos/samegame/content/samegame.js @@ -173,7 +173,7 @@ function victoryCheck() } initHighScoreBar(); if(gameCanvas.score > highScoreBar){ - nameInputDialog.show("You won! Please enter your name: "); + nameInputDialog.show("You won! Your name: "); nameInputDialog.initialWidth = nameInputDialog.text.width + 20; if (nameInputDialog.name == "") nameInputDialog.width = nameInputDialog.initialWidth; diff --git a/examples/demos/samegame/main.cpp b/examples/demos/samegame/main.cpp new file mode 100644 index 0000000000..4a0f88ae70 --- /dev/null +++ b/examples/demos/samegame/main.cpp @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include + +void usage() +{ + printf("Pass -desktop to use the Desktop UI. Default is the mobile UI."); + exit(0); +} + +int main(int argc, char* argv[]) +{ + QGuiApplication app(argc,argv); + QQuickView view; + QUrl launchFile = QUrl::fromLocalFile(QLatin1String("samegame-mobile.qml")); + if (app.arguments().contains(QLatin1String("-help"))) + usage(); + if (app.arguments().contains(QLatin1String("-desktop"))) + launchFile = QUrl::fromLocalFile(QLatin1String("samegame-desktop.qml")); + view.setSource(launchFile); + view.show(); + return app.exec(); +} + diff --git a/examples/demos/samegame/samegame.qml b/examples/demos/samegame/samegame-desktop.qml similarity index 100% rename from examples/demos/samegame/samegame.qml rename to examples/demos/samegame/samegame-desktop.qml diff --git a/examples/demos/samegame/samegame-mobile.qml b/examples/demos/samegame/samegame-mobile.qml new file mode 100644 index 0000000000..04555a8f25 --- /dev/null +++ b/examples/demos/samegame/samegame-mobile.qml @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the QtQml module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtQuick.Particles 2.0 +import "content" +import "content/samegame.js" as Logic + +Rectangle { + id: screen + width: 320; height: 480 + + SystemPalette { id: activePalette } + + GameArea { + id: gameCanvas + width: parent.width + blockSize: 40 + anchors { top: parent.top; bottom: toolBar.top } + } + + Rectangle { + id: toolBar + width: parent.width; height: 40 + color: activePalette.window + anchors.bottom: screen.bottom + + Button { + id: newGameButton + anchors { left: parent.left; leftMargin: 12; verticalCenter: parent.verticalCenter } + fontSize: 12 + text: "New Game" + onClicked: Logic.startNewGame(gameCanvas) + } + + Text { + id: score + anchors { right: parent.right; rightMargin: 12; verticalCenter: parent.verticalCenter } + text: "Score: " + gameCanvas.score + font.bold: true + font.pixelSize: 12 + color: activePalette.windowText + } + } +} diff --git a/examples/demos/samegame/samegame.pro b/examples/demos/samegame/samegame.pro new file mode 100644 index 0000000000..4f9a295dc4 --- /dev/null +++ b/examples/demos/samegame/samegame.pro @@ -0,0 +1,9 @@ +TEMPLATE = app + +QT += qml +SOURCES += main.cpp + +target.path = $$[QT_INSTALL_EXAMPLES]/qtdeclarative/demos/samegame +qml.files = samegame-desktop.qml samegame-mobile.qml content +qml.path = $$[QT_INSTALL_EXAMPLES]/qtdeclarative/demos/samegame +INSTALLS += target qml diff --git a/examples/demos/samegame/samegame.qdoc b/examples/demos/samegame/samegame.qdoc new file mode 100644 index 0000000000..7a311600c6 --- /dev/null +++ b/examples/demos/samegame/samegame.qdoc @@ -0,0 +1,38 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms +** and conditions contained in a signed written agreement between you +** and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \title QML Demo - SameGame + \example demos/samegame + \brief This is an example game written in QML. + \image qml-samegame-demo-small.png + + The SameGame demo implements a simple game in QML. It is written for desktop and portrait devices. + + This game has the logic implemented in Javascipt and the appearance implemented in QML. +*/ + diff --git a/examples/demos/samegame/samegame.qmlproject b/examples/demos/samegame/samegame.qmlproject index 42ffacf4f8..e0f1074913 100644 --- a/examples/demos/samegame/samegame.qmlproject +++ b/examples/demos/samegame/samegame.qmlproject @@ -1,7 +1,7 @@ import QmlProject 1.1 Project { - mainFile: "samegame.qml" + mainFile: "samegame-desktop.qml" /* Include .qml, .js, and image files from current directory and subdirectories */ QmlFiles {