import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
import Linphone

RowLayout {
	id:mainItem
	property string titleText
	property string subTitleText
	property string propertyName
	property var propertyOwner
	property var propertyOwnerGui
	property bool enabled: true
	spacing : 20 * DefaultStyle.dp
	Layout.minimumHeight: 32 * DefaultStyle.dp
	signal checkedChanged(bool checked)

	function setChecked(value) {
		switchButton.checked = value
	}

	ColumnLayout {
		Text {
			text: titleText
			font: Typography.p2l
			wrapMode: Text.WordWrap
			color: DefaultStyle.main2_600
			Layout.fillWidth: true
		}
		Text {
			text: subTitleText
			font: Typography.p1
			wrapMode: Text.WordWrap
			visible: subTitleText.length > 0
			color: DefaultStyle.main2_600
			Layout.fillWidth: true
		}
	}
	Switch {
		id: switchButton
		Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
		checked: propertyOwnerGui ? propertyOwnerGui.core[mainItem.propertyName]
						: propertyOwner ? propertyOwner[mainItem.propertyName] : false
		enabled: mainItem.enabled
		onCheckedChanged: mainItem.checkedChanged(checked)
		onToggled: binding.when = true
	}
	Binding {
		id: binding
		target: propertyOwnerGui ? propertyOwnerGui.core : propertyOwner ? propertyOwner : null
		property: mainItem.propertyName
		value: switchButton.checked
		when: false
	}
}
