Newer
Older
import QtQuick 2.3
import QtQuick.Controls 2.12
import QtQuick.Controls.Styles 1.4
import QGroundControl.ScreenTools 1.0
id: control
hoverEnabled: true
topPadding: _verticalPadding
bottomPadding: _verticalPadding
leftPadding: _horizontalPadding
rightPadding: _horizontalPadding
focusPolicy: Qt.ClickFocus
property bool primary: false ///< primary button for a group of buttons
property real pointSize: ScreenTools.defaultFontPointSize ///< Point size for button text
property bool showBorder: qgcPal.globalTheme === QGCPalette.Light
property bool iconLeft: false
property real backRadius: 0
property real heightFactor: 0.5
property bool _showHighlight: pressed | hovered | checked
property int _horizontalPadding: ScreenTools.defaultFontPixelWidth
property int _verticalPadding: Math.round(ScreenTools.defaultFontPixelHeight * heightFactor)
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
background: Rectangle {
id: backRect
implicitWidth: ScreenTools.implicitButtonWidth
implicitHeight: ScreenTools.implicitButtonHeight
radius: backRadius
border.width: showBorder ? 1 : 0
border.color: qgcPal.buttonText
color: _showHighlight ?
qgcPal.buttonHighlight :
(primary ? qgcPal.primaryButton : qgcPal.button)
contentItem: Item {
implicitWidth: text.implicitWidth + icon.width
implicitHeight: text.implicitHeight
baselineOffset: text.y + text.baselineOffset
QGCColoredImage {
id: icon
source: control.iconSource
height: source === "" ? 0 : text.height
width: height
color: text.color
fillMode: Image.PreserveAspectFit
sourceSize.height: height
anchors.left: control.iconLeft ? parent.left : undefined
anchors.leftMargin: control.iconLeft ? ScreenTools.defaultFontPixelWidth : undefined
anchors.right: !control.iconLeft ? parent.right : undefined
anchors.rightMargin: !control.iconLeft ? ScreenTools.defaultFontPixelWidth : undefined
anchors.verticalCenter: parent.verticalCenter
}
Text {
id: text
anchors.centerIn: parent
antialiasing: true
text: control.text
font.pointSize: pointSize
font.family: ScreenTools.normalFontFamily
color: _showHighlight ?
qgcPal.buttonHighlightText :
(primary ? qgcPal.primaryButtonText : qgcPal.buttonText)