54 lines
1.4 KiB
QML
54 lines
1.4 KiB
QML
import QtQuick
|
|
|
|
Item {
|
|
id: root
|
|
|
|
property bool fillWindowWidth: false;
|
|
property real extraVerticalMargin: 0;
|
|
|
|
property alias mouseArea: mouseArea;
|
|
property alias hoverEnabled: mouseArea.hoverEnabled;
|
|
property alias acceptedButtons: mouseArea.acceptedButtons;
|
|
property alias pressedButtons: mouseArea.pressedButtons;
|
|
property alias containsMouse: mouseArea.containsMouse;
|
|
property alias isPressed: mouseArea.pressed;
|
|
|
|
signal clicked(event: MouseEvent);
|
|
signal entered();
|
|
signal exited();
|
|
signal pressed(event: MouseEvent);
|
|
signal released(event: MouseEvent);
|
|
signal wheel(event: WheelEvent);
|
|
|
|
MouseArea {
|
|
id: mouseArea
|
|
|
|
anchors {
|
|
fill: parent
|
|
// not much point in finding exact values
|
|
leftMargin: root.fillWindowWidth ? -50 : 0
|
|
rightMargin: root.fillWindowWidth ? -50 : 0
|
|
topMargin: -root.extraVerticalMargin
|
|
bottomMargin: -root.extraVerticalMargin
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
this.clicked.connect(root.clicked);
|
|
//this.entered.connect(root.entered);
|
|
//this.exited.connect(root.exited);
|
|
//this.pressed.connect(root.pressed);
|
|
this.released.connect(root.released);
|
|
//this.wheel.connect(root.wheel);
|
|
}
|
|
|
|
// for some reason MouseArea.pressed is both a prop and signal so connect doesn't work
|
|
onPressed: event => root.pressed(event);
|
|
|
|
// connecting to onwheel seems to implicitly accept it. undo that.
|
|
onWheel: event => {
|
|
event.accepted = false;
|
|
root.wheel(event);
|
|
}
|
|
}
|
|
}
|