4pragma ComponentBehavior: Bound
7import "../core/UiMetrics.js" as UiMetrics
8import "../internal/MotionAnimation.js" as MotionAnimation
11import QtQuick.Templates as T
43 objectName: "plainToolTip"
45 MD.Style.theme: control.parent ? control.parent.MD.Style.theme : MD.Style.System
48 readonly
property real _anchorWindowY: control.parent
49 ? control.parent.mapToItem(null, 0, 0).y
50 + control.parent.y * 0 : 0
52 readonly
property bool _opensBelow: control.parent
53 ? control._anchorWindowY - control.height
54 - MD.Tokens.toolTip.anchorSpacing
55 < MD.Tokens.toolTip.viewportMargin :
false
57 readonly
property bool _layoutMirrored: control.mirrored
58 || control.locale.textDirection === Qt.RightToLeft
60 && control.parent.LayoutMirroring.enabled)
62 readonly property real _naturalWidth: control.implicitContentWidth
63 + control.leftPadding + control.rightPadding
65 x: control.parent ? (control.parent.width - control.width) / 2 : 0
66 y: control.parent ? (control._opensBelow
67 ? control.parent.height + MD.
Tokens.toolTip.anchorSpacing
68 : -control.height - MD.
Tokens.toolTip.anchorSpacing) : 0
70 implicitWidth: Math.max(MD.
Tokens.toolTip.minimumWidth,
71 Math.min(MD.
Tokens.toolTip.plainMaximumWidth, _naturalWidth))
72 implicitHeight: Math.max(MD.
Tokens.toolTip.minimumHeight,
73 control.implicitContentHeight
74 + control.topPadding + control.bottomPadding)
76 margins: MD.
Tokens.toolTip.viewportMargin
77 leftPadding: MD.
Tokens.toolTip.plainHorizontalPadding
78 rightPadding: MD.
Tokens.toolTip.plainHorizontalPadding
79 topPadding: MD.
Tokens.toolTip.plainVerticalPadding
80 bottomPadding: MD.
Tokens.toolTip.plainVerticalPadding
81 closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent
82 | T.Popup.CloseOnReleaseOutsideParent
83 transformOrigin: control._opensBelow ? Item.Top : Item.Bottom
85 contentItem: MD.
Label {
86 objectName:
"plainToolTipLabel"
87 width: control.availableWidth
89 typescale: MD.
Tokens.typescale.bodySmall
90 color: control.MD.Style.inverseOnSurfaceColor
91 horizontalAlignment: control._layoutMirrored ? Text.AlignRight : Text.AlignLeft
94 Accessible.ignored: true
97 background: Rectangle {
98 objectName:
"plainToolTipBackground"
99 readonly property var containerShape: MD.
Tokens.toolTip.plainContainerShape
101 implicitWidth: MD.
Tokens.toolTip.minimumWidth
102 implicitHeight: MD.
Tokens.toolTip.minimumHeight
103 color: control.MD.Style.inverseSurfaceColor
104 topLeftRadius: UiMetrics.resolveShapeRadius(containerShape.topLeft, width, height)
105 topRightRadius: UiMetrics.resolveShapeRadius(containerShape.topRight, width, height)
106 bottomLeftRadius: UiMetrics.resolveShapeRadius(containerShape.bottomLeft, width, height)
107 bottomRightRadius: UiMetrics.resolveShapeRadius(containerShape.bottomRight, width, height)
113 from: MD.
Tokens.toolTip.closedScale
115 duration: MotionAnimation.expressiveFastSpatialDuration
116 easing.type: Easing.BezierSpline
117 easing.bezierCurve: MotionAnimation.expressiveFastSpatialCurve
123 duration: MotionAnimation.expressiveFastEffectsDuration
124 easing.type: Easing.BezierSpline
125 easing.bezierCurve: MotionAnimation.expressiveFastEffectsCurve
133 to: MD.
Tokens.toolTip.closedScale
134 duration: MotionAnimation.expressiveFastSpatialDuration
135 easing.type: Easing.BezierSpline
136 easing.bezierCurve: MotionAnimation.expressiveFastSpatialCurve
142 duration: MotionAnimation.expressiveFastEffectsDuration
143 easing.type: Easing.BezierSpline
144 easing.bezierCurve: MotionAnimation.expressiveFastEffectsCurve
Material Design 3 design tokens.
Displays text using a selectable Material 3 type scale.