import QtQuick import "../../../config" as Cfg Item { id: root property real fraction: 0 property bool interactive: true signal seeked(real fraction) readonly property var t: Cfg.Config.theme implicitHeight: 14 function seek(posX) { seeked(Math.max(0, Math.min(1, posX / width))) } Rectangle { anchors.verticalCenter: parent.verticalCenter width: parent.width height: 3 radius: 2 color: root.t.mprisTrackColor Rectangle { width: parent.width * root.fraction height: parent.height radius: parent.radius color: root.t.mprisAccent } } Rectangle { anchors.verticalCenter: parent.verticalCenter x: Math.max(0, Math.min(parent.width - width, (parent.width - width) * root.fraction)) width: 10 height: 10 radius: 5 color: root.t.mprisAccent } MouseArea { anchors.fill: parent cursorShape: root.interactive ? Qt.PointingHandCursor : Qt.ArrowCursor onPressed: pos => root.seek(pos.x) onPositionChanged: pos => { if (pressed) root.seek(pos.x) } } }