import QtQuick 2.15
import Hedgewars 1.0
Item {
id: control
property string dataPrefix: "share/hedgewars/Data/"
property url themePath: "file://%1Themes/Stage/".arg(dataPrefix)
Flickable {
id: backgroundContainer
anchors.fill: parent
contentWidth: map.implicitWidth
contentHeight: map.implicitHeight
interactive: false
contentX: mapContainer.contentX * 0.7 + (contentWidth - width) * 0.15
contentY: mapContainer.contentY * 0.7 + (contentHeight - height) * 0.3
Rectangle {
anchors.fill: parent
color: "black"
}
Item {
width: parent.width
height: parent.height
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
Image {
id: skyLeft
anchors.left: parent.left
anchors.right: skyCenter.left
anchors.bottom: parent.bottom
fillMode: Image.TileHorizontally
horizontalAlignment: Image.AlignRight
source: control.themePath + "SkyL.png"
}
Image {
id: skyCenter
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
fillMode: Image.Pad
source: control.themePath + "Sky.png"
}
Image {
id: skyRight
anchors.left: skyCenter.right
anchors.right: parent.right
anchors.bottom: parent.bottom
fillMode: Image.TileHorizontally
horizontalAlignment: Image.AlignLeft
source: control.themePath + "SkyL.png"
}
}
}
Flickable {
id: mapContainer
anchors.fill: parent
boundsMovement: Flickable.StopAtBounds
contentWidth: map.implicitWidth
contentHeight: map.implicitHeight
onContentXChanged: map.update()
onContentYChanged: map.update()
onWidthChanged: map.update()
onHeightChanged: map.update()
pixelAligned: true
TiledImageItem {
id: map
}
}
MouseArea {
anchors.fill: mapContainer
property double zoom: 1.0
acceptedButtons: Qt.NoButton
enabled: false
onWheel: wheel => {
zoom = zoom * Math.exp(wheel.angleDelta.y * 0.001)
var zoomPoint = Qt.point(wheel.x + mapContainer.contentX,
wheel.y + mapContainer.contentY);
map.scale = zoom
mapContainer.resizeContent(map.implicitWidth * zoom, map.implicitHeight * zoom, zoomPoint);
mapContainer.returnToBounds();
console.log(mapContainer.scale)
}
}
Component.onCompleted: {
map.test(dataPrefix + "Maps/Ropes/map.png")
console.log(Screen.devicePixelRatio)
}
}