ukui-menu/qml/AppControls2/IconLabel.qml

74 lines
2.1 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
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
textMaxWidth: root.width - iconImage.width - root.spacing
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
textMaxWidth: root.width
anchors.top: iconImage.bottom
anchors.topMargin: root.spacing
anchors.horizontalCenter: root.horizontalCenter
}
}
]
Image {
id: iconImage
height: root.iconHeight
width: root.iconWidth
source: root.appIcon
}
StyleText {
id: iconText
property int textMaxWidth: root.width
text: root.appName
font.pixelSize: 14
elide: Text.ElideRight
Component.onCompleted: {
var textWidth = contentWidth > textMaxWidth ? textMaxWidth : contentWidth
width = textWidth
}
}
}