You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.9 KiB

10 months ago
import QtQuick 2.13
10 months ago
import QtQml 2.13
import QtQuick.Layouts 1.13
import "../"
import "../aCommon"
10 months ago
Item {
10 months ago
id: root
height: 38
width: 400
10 months ago
10 months ago
property var listOfObj: []
property var options: ["High", "Low", "Medium"]
property var currentText: options[currentIndex]
property var currentIndex: 0
property var stateOfComponent: Setting.Enable
Item {
anchors.fill: parent
RowLayout {
id: idLayout
anchors.fill: parent
spacing: 0
}
}
Rectangle {
id: idBackGround
anchors.fill: parent
radius: Setting.mediumRadius
color: "transparent"
border.color: Colors.tertiaryEnable
border.width: 1
clip: true
}
CurrentSelectedManager {
id: indexManager
}
function buildComponent() {
let lengthOfList = listOfObj.length
for (var k = 0; k < lengthOfList; k++) {
listOfObj[k].destroy()
}
listOfObj = []
let numberOfBtns = options.length
let numberOfLines = numberOfBtns - 1
let btnCompoent = Qt.createComponent("MultiOptionBtn.qml")
let lineComponent = Qt.createComponent(
"qrc:/SepantaUiKit/aCommon/Line.qml")
if (numberOfLines > 0) {
let lengthOfEachBtn = root.width / numberOfBtns
for (var j = 0; j < numberOfBtns; j++) {
let rightHasRadius = false
let leftHasRadius = false
if (j === 0) {
leftHasRadius = true
} else if (j === numberOfBtns - 1) {
rightHasRadius = true
}
let sprite = btnCompoent.createObject(idLayout, {
"text": options[j],
"indexManager": indexManager,
"myIndex": j,
"leftHasRadius": leftHasRadius,
"rightHasRadius": rightHasRadius,
"radius": idBackGround.radius
})
listOfObj.push(sprite)
if (j !== numberOfBtns - 1) {
let spriteL = lineComponent.createObject(idLayout, {
"color": Colors.tertiaryEnable,
"Layout.fillHeight": true,
"width": 1
})
listOfObj.push(spriteL)
}
}
}
}
Line {}
Component.onCompleted: {
buildComponent()
}
10 months ago
}