import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import TactileIPC 1.0

Item {
    id: root
    property int minValue: 0
    property int maxValue: 100
    property color colorLow: Qt.rgba(0.10, 0.75, 1.00, 1.0)
    property color colorMid: Qt.rgba(0.10, 0.95, 0.35, 1.0)
    property color colorHigh: Qt.rgba(1.00, 0.22, 0.10, 1.0)
    property int barWidth: 34
    property int barRadius: 8

    implicitWidth: barWidth + 48
    implicitHeight: 240

    ColumnLayout {
        anchors.fill: parent
        spacing: 6

        Label {
            text: root.maxValue
            font.pixelSize: 12
            opacity: 0.9
            Layout.alignment: Qt.AlignHCenter
        }

        Rectangle {
            Layout.alignment: Qt.AlignHCenter
            Layout.fillHeight: true
            width: root.barWidth
            radius: root.barRadius
            border.width: 1
            border.color: Qt.rgba(1, 1, 1, 0.18)

            gradient: Gradient {
                // must match shaders/dots.frag:dataColorRamp (high at top)
                GradientStop { position: 0.00; color: root.colorHigh }
                GradientStop { position: 0.50; color: root.colorMid }
                GradientStop { position: 1.00; color: root.colorLow }
            }
        }

        Label {
            text: root.minValue
            font.pixelSize: 12
            opacity: 0.9
            Layout.alignment: Qt.AlignHCenter
        }
    }
}
