Files
NowPlaying/package/contents/ui/ShadowedLabel.qml

62 lines
1.9 KiB
QML

import QtQuick
import QtQuick.Effects
import org.kde.plasma.components as PlasmaComponents
Item {
id: shadowedLabel
property alias text: foregroundLabel.text
property alias font: foregroundLabel.font
property alias lineHeight: foregroundLabel.lineHeight
property alias elide: foregroundLabel.elide
property alias horizontalAlignment: foregroundLabel.horizontalAlignment
property alias verticalAlignment: foregroundLabel.verticalAlignment
property alias color: foregroundLabel.color
property bool shadowEnabled: false
readonly property real contentWidth: width > 0 ? width : foregroundLabel.implicitWidth
readonly property real contentHeight: height > 0 ? height : foregroundLabel.implicitHeight
implicitWidth: foregroundLabel.implicitWidth
implicitHeight: foregroundLabel.implicitHeight
PlasmaComponents.Label {
id: shadowSourceLabel
visible: false
width: shadowedLabel.contentWidth
height: shadowedLabel.contentHeight
text: foregroundLabel.text
font: foregroundLabel.font
lineHeight: foregroundLabel.lineHeight
elide: foregroundLabel.elide
horizontalAlignment: foregroundLabel.horizontalAlignment
verticalAlignment: foregroundLabel.verticalAlignment
color: "white"
}
MultiEffect {
x: shadowSourceLabel.x
y: shadowSourceLabel.y
width: shadowSourceLabel.width
height: shadowSourceLabel.height
autoPaddingEnabled: true
shadowBlur: 0.5
shadowColor: "#3f4c66"
shadowEnabled: shadowedLabel.shadowEnabled
shadowHorizontalOffset: 0
shadowOpacity: 0.42
shadowScale: 1
shadowVerticalOffset: 2
source: shadowSourceLabel
visible: shadowedLabel.shadowEnabled
}
PlasmaComponents.Label {
id: foregroundLabel
width: shadowedLabel.contentWidth
height: shadowedLabel.contentHeight
}
}