roulette-payout/BetButton.qml

108 lines
3.5 KiB
QML
Raw Normal View History

import QtQuick
import QtQuick.Controls
import roulette
Item {
required property int betType
required property int index_
required property int offsetX
required property int offsetY
id: betButton
Rectangle {
id: selected
visible: true
height: parent.height
width: parent.width
border.color: "blue"
border.width: 0
2024-06-05 07:52:49 +01:00
color: {
2024-06-07 10:06:28 +01:00
if (PlayerAreaModel.focusedPlayer == 0 && rouletteTable.numberOfBets == 1 && border.width != 3) {
"#00000000"
} else if (PlayerAreaModel.focusedPlayer == 0 && betType != 9) {
"#00000000"
2024-06-07 10:06:28 +01:00
} else if (rouletteTable.numberOfBets < 2 || border.width == 3) {
if ((PlayerAreaModel.focusedPlayer == 0 && rouletteTable.numberOfBets < 1) || PlayerAreaModel.focusedPlayer != 0 || border.width == 3) {
if (tapHandler.pressed) {
"#88999999"
} else if (hoverHandler.hovered) {
"#88EEEEEE"
} else {
"#00000000"
}
} else {
"#00000000"
}
} else {
"#00000000"
}
}
HoverHandler {
id: hoverHandler
}
TapHandler {
id: tapHandler
onTapped: {
2024-06-07 10:06:28 +01:00
if (PlayerAreaModel.focusedPlayer == 0 && rouletteTable.numberOfBets == 1 && parent.border.width != 3) {
} else if (PlayerAreaModel.focusedPlayer == 0 && betType != 9) {
}else if (rouletteTable.numberOfBets < 2 && parent.border.width == 0) {
parent.border.width = 3
2024-06-07 10:06:28 +01:00
/* Don't show this dialog for the croupier */
if (PlayerAreaModel.focusedPlayer != 0) {
roulette.showBetInputDialog(betType, index_, betButton.parent.x + offsetX,
betButton.parent.y + offsetY)
} else {
rouletteTable.numberOfBets = 1
PlayerAreaModel.bet(betType, index_, 0)
}
} else if (parent.border.width == 3) {
parent.border.width = 0
PlayerAreaModel.removeBet(betType, index_)
rouletteTable.numberOfBets -= 1
}
}
}
Connections {
target: PlayerAreaModel
function onFocusedPlayerChanged(b1, n1, b2, n2) {
if (b1 == betType && n1 == index_) {
if (selected.border.width != 0) {
rouletteTable.numberOfBets -=1
}
selected.border.width = 3;
rouletteTable.numberOfBets += 1
} else if (b2 == betType && n2 == index_) {
if (selected.border.width != 0) {
rouletteTable.numberOfBets -=1
}
selected.border.width = 3;
rouletteTable.numberOfBets += 1
} else {
if (selected.border.width != 0) {
rouletteTable.numberOfBets -=1
}
selected.border.width = 0;
}
}
function onBetCanceled(b, n) {
if (b == betType && index_ == n) {
selected.border.width = 0
}
}
}
}
}