import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Layouts 1.0 import QtQuick.Controls.Styles 1.1 Rectangle { id: buttonActionContainer property string disableStateImg property string enabledStateImg property string buttonTooltip property string buttonShortcut property bool buttonLeft property bool buttonRight signal clicked color: "transparent" width: 35 height: 24 function enabled(state) { buttonAction.enabled = state; if (state) debugImage.source = enabledStateImg; else debugImage.source = disableStateImg; } Rectangle { color: "#DCDADA" width: 10 height: 24 radius: 4 x: 0 visible: buttonLeft Rectangle { anchors { left: parent.left right: parent.right top: parent.top bottom: parent.bottom bottomMargin: debugImg.pressed ? 0 : 1; topMargin: debugImg.pressed ? 1 : 0; } color: "#FCFBFC" radius: 3 } } Rectangle { color: "#DCDADA" width: 10 height: 24 radius: 4 x: 25 visible: buttonRight Rectangle { anchors { left: parent.left right: parent.right top: parent.top bottom: parent.bottom bottomMargin: debugImg.pressed ? 0 : 1; topMargin: debugImg.pressed? 1 : 0; } color: "#FCFBFC" radius: 3 } } Rectangle { id: contentRectangle width: 25 height: 24 color: "#DCDADA" x: 5 Rectangle { anchors { left: parent.left right: parent.right top: parent.top bottom: parent.bottom bottomMargin: debugImg.pressed ? 0 : 1; topMargin: debugImg.pressed ? 1 : 0; } color: "#FCFBFC" Image { id: debugImage source: enabledStateImg anchors.centerIn: parent anchors.topMargin: debugImg.pressed ? 1 : 0; fillMode: Image.PreserveAspectFit width: 15 height: 15 } } Button { anchors.fill: parent id: debugImg action: buttonAction style: ButtonStyle { background: Rectangle { color: "transparent" } } } Action { tooltip: buttonTooltip id: buttonAction shortcut: buttonShortcut onTriggered: { buttonActionContainer.clicked(); } } } }