import "root:/modules/common" import "root:/modules/common/widgets" import "root:/modules/common/functions/color_utils.js" as ColorUtils import QtQuick import QtQuick.Controls import QtQuick.Layouts /** * A container that supports GroupButton children for bounciness. * See https://m3.material.io/components/button-groups/overview */ Rectangle { id: root default property alias content: columnLayout.data property real spacing: 5 property real padding: 0 property int clickIndex: columnLayout.clickIndex property real contentHeight: { let total = 0; for (let i = 0; i < columnLayout.children.length; ++i) { const child = columnLayout.children[i]; total += child.baseHeight ?? child.implicitHeight ?? child.height; } return total + columnLayout.spacing * (columnLayout.children.length - 1); } topLeftRadius: columnLayout.children.length > 0 ? (columnLayout.children[0].radius + padding) : Appearance?.rounding?.small topRightRadius: topLeftRadius bottomLeftRadius: columnLayout.children.length > 0 ? (columnLayout.children[columnLayout.children.length - 1].radius + padding) : Appearance?.rounding?.small bottomRightRadius: bottomLeftRadius color: "transparent" height: root.contentHeight + padding * 2 implicitWidth: columnLayout.implicitWidth + padding * 2 implicitHeight: root.contentHeight + padding * 2 children: [ColumnLayout { id: columnLayout anchors.fill: parent anchors.margins: root.padding spacing: root.spacing property int clickIndex: -1 }] }