import QtQuick
import qs.Common
import qs.Services
import qs.Widgets

DankOSD {
    id: root

    property string deviceName: ""
    property string deviceIcon: "speaker"

    osdWidth: Math.min(Math.max(120, Theme.iconSize + textMetrics.width + Theme.spacingS * 4), screenWidth - Theme.spacingM * 2)
    osdHeight: 40 + Theme.spacingS * 2
    autoHideInterval: 2500
    enableMouseInteraction: false

    TextMetrics {
        id: textMetrics
        font.pixelSize: Theme.fontSizeMedium
        font.weight: Font.Medium
        font.family: Theme.fontFamily
        text: root.deviceName
    }

    Connections {
        target: AudioService

        function onAudioOutputCycled(name, icon) {
            if (!SettingsData.osdAudioOutputEnabled)
                return;
            root.deviceName = name;
            root.deviceIcon = icon;
            root.show();
        }
    }

    content: Item {
        property int gap: Theme.spacingS

        anchors.centerIn: parent
        width: parent.width - Theme.spacingS * 2
        height: 40

        DankIcon {
            id: iconItem
            width: Theme.iconSize
            height: Theme.iconSize
            x: parent.gap
            anchors.verticalCenter: parent.verticalCenter
            name: root.deviceIcon
            size: Theme.iconSize
            color: Theme.primary
        }

        StyledText {
            id: textItem
            x: parent.gap * 2 + Theme.iconSize
            width: parent.width - Theme.iconSize - parent.gap * 3
            anchors.verticalCenter: parent.verticalCenter
            text: root.deviceName
            font.pixelSize: Theme.fontSizeMedium
            font.weight: Font.Medium
            color: Theme.surfaceText
            elide: Text.ElideRight
        }
    }
}
