5import QtQuick.Templates as T
22 property MD.typescale typescale: MD.Tokens.typescale.labelLarge
25 property bool error: false
27 implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding)
28 implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding)
30 spacing: MD.Tokens.checkBox.contentSpacing
31 padding: MD.Tokens.checkBox.contentPadding
32 verticalPadding: padding + 7
35 focusPolicy: Qt.StrongFocus
40 property color iconColor: control.error ? control.MD.Style.onErrorColor : control.MD.Style.onPrimaryColor
41 property color containerColor: control.checkState === Qt.Unchecked ? "transparent" : control.error ? control.MD.Style.errorColor : control.MD.Style.primaryColor
42 property color outlineColor: control.error ? control.MD.Style.errorColor : MD.Style.onSurfaceVariantColor
43 property color labelColor: control.MD.Style.onSurfaceColor
44 property color stateLayerColor:
"transparent"
46 property real outlineWidth: control.checkState == Qt.Checked ? MD.Tokens.checkBox.selectedOutlineWidth : MD.Tokens.checkBox.unselectedOutlineWidth
48 property real contentOpacity: 1.0
49 property real containerOpacity: 1.0
50 property real stateLayerOpacity: 1.0
56 when: !control.enabled
60 iconColor: control.MD.Style.surfaceColor
61 containerColor: control.checkState === Qt.Unchecked ?
"transparent" : control.error ? control.MD.Style.errorColor : control.MD.Style.onSurfaceColor
62 outlineColor: control.error ? control.MD.Style.errorColor : control.checkState === Qt.Checked ? MD.Style.onSurfaceVariantColor : control.MD.Style.onSurfaceColor
63 outlineWidth: control.checkState == Qt.Checked ? MD.Tokens.checkBox.selectedOutlineWidth : MD.Tokens.checkBox.unselectedOutlineWidth
64 contentOpacity: MD.Tokens.checkBox.selectedDisabledContainerOpacity
65 containerOpacity: MD.Tokens.checkBox.selectedDisabledContainerOpacity
70 when: control.hovered && control.enabled
74 outlineColor: control.error ? control.MD.Style.errorColor : control.checkState === Qt.Checked ? MD.Style.onSurfaceVariantColor : control.MD.Style.onSurfaceColor
75 stateLayerColor: control.error ? control.MD.Style.errorColor : control.checkState === Qt.Checked ? control.MD.Style.primaryColor : control.MD.Style.onSurfaceColor
76 stateLayerOpacity: MD.Tokens.checkBox.hoverStateLayerOpacity
81 when: control.visualFocus && control.enabled
85 outlineColor: control.error ? control.MD.Style.errorColor : control.checkState === Qt.Checked ? MD.Style.onSurfaceVariantColor : control.MD.Style.onSurfaceColor
86 stateLayerColor: control.error ? control.MD.Style.errorColor : control.checkState === Qt.Checked ? control.MD.Style.primaryColor : control.MD.Style.onSurfaceColor
87 stateLayerOpacity: MD.Tokens.checkBox.focusStateLayerOpacity
92 when: control.down && control.enabled
96 outlineColor: control.error ? control.MD.Style.errorColor : control.checkState === Qt.Checked ? MD.Style.onSurfaceVariantColor : control.MD.Style.onSurfaceColor
97 stateLayerColor: control.error ? control.MD.Style.errorColor : control.checkState === Qt.Checked ? control.MD.Style.primaryColor : control.MD.Style.onSurfaceColor
98 stateLayerOpacity: MD.Tokens.checkBox.pressedStateLayerOpacity
103 indicator: MD.CheckIndicator {
104 x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
105 y: control.topPadding + (control.availableHeight - height) / 2
108 color: state.iconColor
109 opacity: state.containerOpacity
110 backgroundColor: state.containerColor
111 outlineColor: state.outlineColor
112 outlineWidth: state.outlineWidth
115 anchors.centerIn: parent
116 width: MD.
Tokens.checkBox.stateLayerSize
117 height: MD.
Tokens.checkBox.stateLayerSize
119 pressX: control.pressX
120 pressY: control.pressY
121 pressed: control.pressed
122 stateOpacity: state.stateLayerOpacity
123 color: state.stateLayerColor
127 contentItem: MD.
Label {
128 leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
129 rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
132 typescale: control.typescale
133 color: state.labelColor
134 opacity: state.contentOpacity
135 elide: Text.ElideRight
136 verticalAlignment: Text.AlignVCenter
Material Design 3 design tokens.
Displays text using a selectable Material 3 type scale.