KGC_TEST/KGCAPP/3rdparty/qwindowkit/examples/qml/main.qml

220 lines
6.2 KiB
QML

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import Qt.labs.platform 1.1
import QWindowKit 1.0
Window {
id: window
width: 800
height: 600
color: darkStyle.windowBackgroundColor
title: qsTr("Hello, world!")
Component.onCompleted: {
windowAgent.setup(window)
window.visible = true
}
QtObject {
id: lightStyle
}
QtObject {
id: darkStyle
readonly property color windowBackgroundColor: "#1E1E1E"
}
Timer {
interval: 100
running: true
repeat: true
onTriggered: timeLabel.text = Qt.formatTime(new Date(), "hh:mm:ss")
}
WindowAgent {
id: windowAgent
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: contextMenu.open()
}
Rectangle {
id: titleBar
anchors {
top: parent.top
topMargin: 1
left: parent.left
right: parent.right
}
height: 32
color: window.active ? "#3C3C3C" : "#505050"
Component.onCompleted: windowAgent.setTitleBar(titleBar)
Image {
id: iconButton
anchors {
verticalCenter: parent.verticalCenter
left: parent.left
leftMargin: 10
}
width: 18
height: 18
mipmap: true
source: "qrc:///app/example.png"
}
Text {
anchors {
verticalCenter: parent.verticalCenter
left: iconButton.right
leftMargin: 10
}
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: window.title
font.pixelSize: 14
color: "#ECECEC"
}
Row {
anchors {
top: parent.top
right: parent.right
}
height: parent.height
QWKButton {
id: minButton
height: parent.height
source: "qrc:///window-bar/minimize.svg"
onClicked: window.showMinimized()
Component.onCompleted: windowAgent.setSystemButton(WindowAgent.Minimize, minButton)
}
QWKButton {
id: maxButton
height: parent.height
source: window.visibility === Window.Maximized ? "qrc:///window-bar/restore.svg" : "qrc:///window-bar/maximize.svg"
onClicked: {
if (window.visibility === Window.Maximized) {
window.showNormal()
} else {
window.showMaximized()
}
}
Component.onCompleted: windowAgent.setSystemButton(WindowAgent.Maximize, maxButton)
}
QWKButton {
id: closeButton
height: parent.height
source: "qrc:///window-bar/close.svg"
background: Rectangle {
color: {
if (!closeButton.enabled) {
return "gray";
}
if (closeButton.pressed) {
return "#e81123";
}
if (closeButton.hovered) {
return "#e81123";
}
return "transparent";
}
}
onClicked: window.close()
Component.onCompleted: windowAgent.setSystemButton(WindowAgent.Close, closeButton)
}
}
}
Label {
id: timeLabel
anchors.centerIn: parent
font {
pointSize: 75
bold: true
}
color: "#FEFEFE"
}
Menu {
id: contextMenu
Menu {
id: themeMenu
title: qsTr("Theme")
MenuItemGroup {
id: themeMenuGroup
items: themeMenu.items
}
MenuItem {
text: qsTr("Light")
checkable: true
onTriggered: windowAgent.setWindowAttribute("dark-mode", false)
}
MenuItem {
text: qsTr("Dark")
checkable: true
onTriggered: windowAgent.setWindowAttribute("dark-mode", true)
}
}
Menu {
id: specialEffectMenu
title: qsTr("Special effect")
MenuItemGroup {
id: specialEffectMenuGroup
items: specialEffectMenu.items
}
MenuItem {
enabled: Qt.platform.os === "windows"
text: qsTr("DWM blur")
checkable: true
onTriggered: {
window.color = checked ? "transparent" : darkStyle.windowBackgroundColor
windowAgent.setWindowAttribute("dwm-blur", checked)
}
}
MenuItem {
enabled: Qt.platform.os === "windows"
text: qsTr("Acrylic material")
checkable: true
onTriggered: {
window.color = checked ? "transparent" : darkStyle.windowBackgroundColor
windowAgent.setWindowAttribute("acrylic-material", checked)
}
}
MenuItem {
enabled: Qt.platform.os === "windows"
text: qsTr("Mica")
checkable: true
onTriggered: {
window.color = checked ? "transparent" : darkStyle.windowBackgroundColor
windowAgent.setWindowAttribute("mica", checked)
}
}
MenuItem {
enabled: Qt.platform.os === "windows"
text: qsTr("Mica Alt")
checkable: true
onTriggered: {
window.color = checked ? "transparent" : darkStyle.windowBackgroundColor
windowAgent.setWindowAttribute("mica-alt", checked)
}
}
}
}
}