import QtQuick import Weave.Controls import Weave.Templates as T import "internal" T.CheckBox { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding, implicitIndicatorWidth + leftPadding + rightPadding) implicitHeight: Theme.component.checkbox.container.height spacing: Theme.component.label.positionSide.paddingLeft font.family: Theme.component.label.fontFamily font.pixelSize: Theme.component.label.positionSide.fontSize font.weight: Theme.component.label.fontWeight hoverEnabled: control.enabled checkBoxAlignment: mirrored ? CheckBox.AlignRight : CheckBox.AlignLeft opacity: control.enabled ? 1.0 : Theme.component.checkbox.opacity.disabled indicator: CheckBoxIndicator { checkState: control.checkState pressed: control.pressed hovered: control.hovered visualFocus: control.visualFocus x: control.text ? (control.checkBoxAlignment === CheckBox.AlignRight ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 } contentItem: Text { leftPadding: control.indicator && control.checkBoxAlignment === CheckBox.AlignLeft ? control.indicator.width + (text ? control.spacing : 0) : 0 rightPadding: control.indicator && control.checkBoxAlignment === CheckBox.AlignRight ? control.indicator.width + (text ? control.spacing : 0) : 0 lineHeightMode: Text.FixedHeight verticalAlignment: Text.AlignVCenter text: control.text color: Theme.component.label.textColor // TODO: change color based on hovered state? font: control.font lineHeight: Theme.component.label.positionSide.lineHeight } }