diff --git a/CMakeLists.txt b/CMakeLists.txt index 7469446..568bfea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,12 +10,19 @@ find_package(Qt6 6.2 COMPONENTS Core Widgets QuickControls2 Gui REQUIRED) qt_standard_project_setup() -qt_add_executable(roulette-payout +qt_add_resources(QRC res.qrc) +set(SOURCES main.cpp MainWindow.cpp MainWindow.h PlayerAreaModel.cpp PlayerAreaModel.h + StreetBetsModel.cpp + StreetBetsModel.h + ${QRC}) + +qt_add_executable(roulette-payout + ${SOURCES} ) qt_add_qml_module(roulette-payout @@ -25,6 +32,8 @@ qt_add_qml_module(roulette-payout QML_FILES Root.qml PlayerAreaView.qml + Roulette.qml + StreetBetsView.qml ) target_link_libraries(roulette-payout PRIVATE diff --git a/Root.qml b/Root.qml index 1866421..c9b9b80 100644 --- a/Root.qml +++ b/Root.qml @@ -1,6 +1,5 @@ import QtQuick import QtQuick.Controls -import QtQuick.Layouts import roulette @@ -11,11 +10,21 @@ Window { visible: true Pane { - id: rootWindow - anchors.fill: parent + PlayerAreaView { id: playerAreaView } + + Roulette { + id: roulette + height: parent.height / 1.7 + width: parent.width / 1.7 + + anchors{ + top: parent.top + right: parent.right + } + } } } diff --git a/Roulette.qml b/Roulette.qml new file mode 100644 index 0000000..e1ddaa6 --- /dev/null +++ b/Roulette.qml @@ -0,0 +1,25 @@ +import QtQuick +import Qt5Compat.GraphicalEffects + +import roulette + +Item { + + Image { + source: "qrc:/roulette.png" + signal streetBet(n: int) + + //fillMode: Image.PreserveAspectFit + height: parent.height + width: parent.width + + anchors { + top: parent.top + right: parent.right + } + + StreetBetsView { + id: streetBets + } + } +} diff --git a/StreetBetsModel.cpp b/StreetBetsModel.cpp new file mode 100644 index 0000000..6817309 --- /dev/null +++ b/StreetBetsModel.cpp @@ -0,0 +1,10 @@ +#include "StreetBetsModel.h" + +StreetBetsModel::StreetBetsModel(QObject *parent) +{ + +} + +void StreetBetsModel::betOnStreet(int n) { + printf("emit signal to mark bet on street %d\n", n); +} diff --git a/StreetBetsModel.h b/StreetBetsModel.h new file mode 100644 index 0000000..7e155fa --- /dev/null +++ b/StreetBetsModel.h @@ -0,0 +1,17 @@ +#pragma once + +#include +#include +#include +#include + +class StreetBetsModel : public QObject { + Q_OBJECT + QML_ELEMENT + + public: + explicit StreetBetsModel(QObject *parent = nullptr); + + public slots: + void betOnStreet(int n); +}; diff --git a/StreetBetsView.qml b/StreetBetsView.qml new file mode 100644 index 0000000..a5bda51 --- /dev/null +++ b/StreetBetsView.qml @@ -0,0 +1,69 @@ +import QtQuick + +import roulette + +Item { + + StreetBetsModel { + id: streetBetsModel + } + + Repeater { + model: 12 + + Rectangle { + visible: true + color: tapHandler1.pressed ? "#999999" : "#EEEEEE" + opacity: hoverHandler.hovered ? 0.4 : 0 + height: 45 + width: 35 + + anchors { + left: parent.left + leftMargin: 90 + (index * (width + 1.8)) + top: parent.top + topMargin: 22 + } + + HoverHandler { + id: hoverHandler + } + TapHandler { + id: tapHandler1 + } + + } + } + + Repeater { + model: 12 + + delegate: Rectangle { + visible: true + color: "transparent" + height: 44 + width: 35 + border.color: "blue" + border.width: 0 + + anchors { + left: parent.left + leftMargin: 90 + (index * (width + 1.8)) + top: parent.top + topMargin: 22 + } + + TapHandler { + + onTapped: ()=> { + if (parent.border.width == 0) { + parent.border.width = 2 + } else { + parent.border.width = 0 + } + streetBetsModel.betOnStreet(index) + } + } + } + } +} diff --git a/res.qrc b/res.qrc new file mode 100644 index 0000000..a3e78ac --- /dev/null +++ b/res.qrc @@ -0,0 +1,5 @@ + + + roulette.png + + diff --git a/roulette.png b/roulette.png new file mode 100644 index 0000000..b61d5be Binary files /dev/null and b/roulette.png differ