C

Touch: Safe Touch

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial

// This file is part of the Qt Safe Renderer module

import QtQuick
import Qt.SafeRenderer

SafePicture {
    id: picture
    objectName: "picture"
    width: 64
    height: 64
    color: "gray"
    source: "qrc:/iso-icons/iso_grs_7000_4_1555.dat"

    states: [
        State {
            name: "default"
            PropertyChanges {
                target: picture
                color: "gray"
            }
        },
        State {
            name: "pressed"
            PropertyChanges {
                target: picture
                color: "green"
            }
        }
    ]

    MouseArea {
        id: mouseArea
        anchors.fill: picture

        onPressed: function(mouse) {
            if (mouse) {
                var absCoords = mouseArea.mapToItem(null, mouse.x, mouse.y);
                QSafeMessageSender.sendTouchEvent(absCoords.x, absCoords.y, true);
            }
        }
        onReleased: function(mouse) {
            if (mouse) {
                var absCoords = mouseArea.mapToItem(null, mouse.x, mouse.y);
                QSafeMessageSender.sendTouchEvent(absCoords.x, absCoords.y, false);
            }
        }
        onExited: function(mouse) {
            if (mouse && isPressed) {
                var absCoords = mouseArea.mapToItem(null, mouse.x, mouse.y);
                QSafeMessageSender.sendTouchEvent(absCoords.x, absCoords.y, false);
            }
        }
    }
}