From adb46e1e151b73e56a7e0066a896b48b92a7230e Mon Sep 17 00:00:00 2001
From: Zhao Yuhang <2546789017@qq.com>
Date: 周五, 22 12月 2023 21:44:10 +0800
Subject: [PATCH] win: use modern API

---
 examples/qml/main.qml |   99 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 93 insertions(+), 6 deletions(-)

diff --git a/examples/qml/main.qml b/examples/qml/main.qml
index 7f5c228..b266921 100644
--- a/examples/qml/main.qml
+++ b/examples/qml/main.qml
@@ -5,13 +5,20 @@
 
 Window {
     id: window
-    width: 640
-    height: 480
-    color: "#f0f0f0"
+    width: 800
+    height: 600
+    color: "#1E1E1E"
     title: qsTr("Hello, world!")
     Component.onCompleted: {
         windowAgent.setup(window)
         window.visible = true
+    }
+
+    Timer {
+        interval: 100
+        running: true
+        repeat: true
+        onTriggered: timeLabel.text = Qt.formatTime(new Date(), "hh:mm:ss")
     }
 
     WindowAgent {
@@ -22,20 +29,100 @@
         id: titleBar
         anchors {
             top: parent.top
+            topMargin: 1
             left: parent.left
             right: parent.right
         }
         height: 32
-        color: "white"
+        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.centerIn: parent
+            anchors {
+                verticalCenter: parent.verticalCenter
+                left: iconButton.right
+                leftMargin: 10
+            }
             horizontalAlignment: Text.AlignHCenter
             verticalAlignment: Text.AlignVCenter
             text: window.title
             font.pixelSize: 14
-            color: window.active ? "black" : "gray"
+            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"
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1