import Qt 4.7
-BorderImage {
+Rectangle {
id: button
property alias textInButton: buttonText.text
- signal clicked
- opacity: 1
+ property bool checkable: false
+ property bool checked: false
+
+ height: 20;
+ width: 60;
+
+ signal clicked;
+ signal changeCheck;
function setText(string) { textInButton = qsTr(string); }
- border { left: 10; top: 10; right: 10; bottom: 10 }
+ function press() { mouseArea.pressed }
+
+ Keys.onReturnPressed: {
+ button.clicked();
+ if(checkable){
+ button.checked=!button.checked;
+ button.changeCheck();
+ }
+ }
MouseArea {
id: mouseArea
height: parent.height;
onClicked: {
button.clicked();
+ if(checkable){
+ button.checked=!button.checked;
+ button.changeCheck();
+ }
}
}
Text {
z:1
id: buttonText
+ width: parent.width;
anchors.centerIn: parent;
+ horizontalAlignment: Text.AlignHCenter
font.pixelSize: parent.height * .5
+ elide: Text.ElideRight;
style: Text.Sunken; color: "white"; styleColor: "black"; smooth: true
}
Image {
id: image1
- width: (35*parent.height)/107 +1
+ width: (image1.sourceSize.width*parent.height)/image1.sourceSize.height +1
height: parent.height
anchors.left: parent.left
source: "qrc:/button/buttonLeft.png"
anchors.left: image1.right
anchors.leftMargin: -1
source: "qrc:/button/buttonCenter.png"
- fillMode:Image.Stretch
+ //fillMode:Image.Stretch
+ fillMode: Image.TileHorizontally
+
}
Image {
id: image2
smooth: true
- width: (35*parent.height)/107 +1
+ width: (image1.sourceSize.width*parent.height)/image1.sourceSize.height +1
height: parent.height
anchors.right: parent.right
source: "qrc:/button/buttonR.png"
states: [
State {
name: "pressed";
- when: (mouseArea.pressed == true && button.enabled == true);
+ when: ((button.enabled) && (mouseArea.pressed || (button.checkable && button.checked) ) )
PropertyChanges { target: image1; source: "qrc:/button/buttonLeftPushed.png" }
PropertyChanges { target: image3; source: "qrc:/button/buttonCenterPushed.png" }
PropertyChanges { target: image1; source: "qrc:/button/buttonLeftDisabled.png" }
PropertyChanges { target: image3; source: "qrc:/button/buttonCenterDisabled.png" }
PropertyChanges { target: image2; source: "qrc:/button/buttonRightDisabled.png" }
+ },
+ State {
+ name: "focused";
+ when: (button.enabled && !mouseArea.pressed && button.focus)
+
+ PropertyChanges { target: image1; source: "qrc:/button/buttonLeftFocus.png" }
+ PropertyChanges { target: image3; source: "qrc:/button/buttonCenterFocus.png" }
+ PropertyChanges { target: image2; source: "qrc:/button/buttonRFocus.png" }
}
+
]
}