import QtQuick 2.3 import QtQuick.Controls 2.12 import QtQuick.Controls.Styles 1.4 import QGroundControl.Palette 1.0 import QGroundControl.ScreenTools 1.0 Button { 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 string iconSource 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) } } }