ukui-menu/qml/AppControls2/IconLabel.qml

76 lines
2.2 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import QtQuick 2.0
import org.ukui.menu.core 1.0
Item {
id: root
property int display: Display.TextUnderIcon
// 上下布局icon大小为48*48 左右布局icon大小为32*32
property int iconHeight: 48
property int iconWidth: 48
property string appName: ""
property string appIcon: ""
// 上下布局spacing0 左右布局spacing12
property int spacing: 2
property bool textTruncated: iconText.truncated
property bool textHighLight: false
state: root.display
states: [
State {
name: Display.TextBesideIcon
PropertyChanges {
target: iconImage
anchors.verticalCenter: root.verticalCenter
anchors.left: root.left
anchors.leftMargin: root.spacing
}
PropertyChanges {
target: iconText
width: root.width - iconImage.width - root.spacing * 2
horizontalAlignment: Text.AlignLeft
anchors.left: iconImage.right
anchors.leftMargin: root.spacing
anchors.verticalCenter: root.verticalCenter
}
},
State {
name: Display.TextUnderIcon
PropertyChanges {
target: iconImage
anchors.top: root.top
anchors.topMargin: (root.height - root.spacing - iconImage.height - iconText.height) / 2
anchors.horizontalCenter: root.horizontalCenter
}
PropertyChanges {
target: iconText
width: root.width
horizontalAlignment: Text.AlignHCenter
anchors.top: iconImage.bottom
anchors.topMargin: root.spacing
anchors.horizontalCenter: root.horizontalCenter
}
}
]
Image {
id: iconImage
height: root.iconHeight
width: root.iconWidth
sourceSize.height: root.iconHeight
sourceSize.width: root.iconWidth
source: root.appIcon
cache: false
}
StyleText {
id: iconText
text: root.appName
elide: Text.ElideRight
paletteRole: root.textHighLight ? Palette.HighlightedText : Palette.Text
}
}