/* Speed climbing reaction timer Copyright (C) 2019 Itsblue Development | Dorian Zedler This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ import QtQuick 2.9 import QtQuick.Controls 2.4 import QtGraphicalEffects 1.0 Button { id: control property string image property color backgroundColor: "white" property color textColor: "black" property real imageScale: 1 property double glowRadius: 0.001 property double glowSpread: 0.2 property bool glowVisible: true property double glowScale: 0.75 property double glowOpacity: 1 scale: control.pressed ? 0.8:1 Behavior on scale { PropertyAnimation { duration: 100 } } Behavior on backgroundColor { ColorAnimation { duration: 200 } } contentItem: Text { visible: false } Text { id: conetntText text: qsTr(control.text) anchors.centerIn: parent font: parent.font color: control.textColor opacity: control.enabled ? 1:0.4 } background: Item { id: controlBackgroundContainer RectangularGlow { id: effect glowRadius: control.glowRadius spread: control.glowSpread color: "black" visible: control.glowVisible cornerRadius: controlBackground.radius anchors.fill: controlBackground scale: control.glowScale opacity: control.glowOpacity } Rectangle { id: controlBackground anchors.fill: parent radius: height * 0.5 color: control.backgroundColor Image { id: buttonIcon source: control.image anchors.centerIn: parent height: parent.height * 0.5 width: height mipmap: true fillMode: Image.PreserveAspectFit scale: control.imageScale } } } }