pragma ComponentBehavior: Bound

import QtQuick.Layouts
import ZShell.Config
import qs.Components
import qs.Modules.Settings.Common

PageBase {
	id: root

	isSubPage: true
	title: qsTr("Taskbar")

	ColumnLayout {
		anchors.horizontalCenter: parent.horizontalCenter
		anchors.top: parent.top
		spacing: Tokens.spacing.extraSmall / 2
		width: root.cappedWidth

		// Behavior
		SectionHeader {
			first: true
			text: qsTr("Behavior")
		}

		ToggleRow {
			checked: Config.bar.autoHide
			first: true
			settingAnchor: "bar-autohide"
			subtext: qsTr("Hide the bar, reveal on hover")
			text: qsTr("Auto hide")

			onToggled: Config.bar.autoHide = checked
		}

		SelectRow {
			active: Config.bar.position === "top" ? menuItems[0] : Config.bar.position === "left" ? menuItems[1] : menuItems[2]
			settingAnchor: "bar-position"
			subtext: qsTr("Change which edge the bar appears on")
			text: qsTr("Position")

			menuItems: [
				MenuItem {
					icon: "build"
					text: qsTr("Top")
					value: "top"
				},
				MenuItem {
					icon: "rotate_auto"
					text: qsTr("Left")
					value: "left"
				},
				MenuItem {
					icon: "rotate_auto"
					text: qsTr("Bottom")
					value: "bottom"
				}
			]

			onSelected: item => Config.bar.position = item.value
		}

		ToggleRow {
			checked: Config.bar.fullscreenReveal
			settingAnchor: "bar-fullscreen-reveal"
			subtext: qsTr("Hover top edge to show bar in fullscreen")
			text: qsTr("Reveal on edge")

			onToggled: Config.bar.fullscreenReveal = checked
		}

		SpinRow {
			from: 0
			last: true
			settingAnchor: "bar-reveal-delay"
			stepSize: 100
			subtext: qsTr("The delay before bar is revealed when cursor is at edge")
			text: qsTr("Reveal delay")
			to: 2000
			value: Config.bar.revealDelay

			onMoved: v => Config.bar.revealDelay = v
		}

		// Components
		SectionHeader {
			text: qsTr("Components")
		}

		NavRow {
			first: true
			icon: "widgets"
			settingAnchor: "bar-tray"
			status: qsTr("System tray icons")
			text: qsTr("Tray")

			onClicked: root.sState.openSubPage(6)
		}

		NavRow {
			icon: "signal_cellular_alt"
			settingAnchor: "bar-statusicons"
			status: qsTr("Visible indicators")
			text: qsTr("Status icons")

			onClicked: root.sState.openSubPage(7)
		}

		NavRow {
			icon: "schedule"
			last: true
			settingAnchor: "bar-clock"
			status: qsTr("Date, icon, background")
			text: qsTr("Clock")

			onClicked: root.sState.openSubPage(8)
		}
	}
}
