aboutsummaryrefslogtreecommitdiffstats
path: root/config/quickshell/modules/common/widgets/RoundCorner.qml
diff options
context:
space:
mode:
authorKiran George <kirangeorge1995@gmail.com>2025-06-09 11:30:08 +0530
committerKiran George <kirangeorge1995@gmail.com>2025-06-09 11:30:08 +0530
commit952aa63147c9fb28f6ace6f0bc7ccf45ced1299a (patch)
tree306e6d86603a162c00bc5113b56baac0fe7bec7c /config/quickshell/modules/common/widgets/RoundCorner.qml
parent4cf0d0bd5930da76e60f6770de3ee97c10ca7024 (diff)
Overview v2
Diffstat (limited to 'config/quickshell/modules/common/widgets/RoundCorner.qml')
-rw-r--r--config/quickshell/modules/common/widgets/RoundCorner.qml64
1 files changed, 64 insertions, 0 deletions
diff --git a/config/quickshell/modules/common/widgets/RoundCorner.qml b/config/quickshell/modules/common/widgets/RoundCorner.qml
new file mode 100644
index 00000000..c9a2827a
--- /dev/null
+++ b/config/quickshell/modules/common/widgets/RoundCorner.qml
@@ -0,0 +1,64 @@
+import QtQuick 2.9
+
+Item {
+ id: root
+
+ property int size: 25
+ property color color: "#000000"
+
+ onColorChanged: {
+ canvas.requestPaint();
+ }
+
+ property QtObject cornerEnum: QtObject {
+ property int topLeft: 0
+ property int topRight: 1
+ property int bottomLeft: 2
+ property int bottomRight: 3
+ }
+
+ property int corner: cornerEnum.topLeft // Default to TopLeft
+
+ width: size
+ height: size
+
+ Canvas {
+ id: canvas
+
+ anchors.fill: parent
+ antialiasing: true
+
+ onPaint: {
+ var ctx = getContext("2d");
+ var r = root.size;
+
+ ctx.beginPath();
+ switch (root.corner) {
+ case cornerEnum.topLeft:
+ ctx.arc(r, r, r, Math.PI, 3 * Math.PI / 2);
+ ctx.lineTo(0, 0);
+ break;
+ case cornerEnum.topRight:
+ ctx.arc(0, r, r, 3 * Math.PI / 2, 2 * Math.PI);
+ ctx.lineTo(r, 0);
+ break;
+ case cornerEnum.bottomLeft:
+ ctx.arc(r, 0, r, Math.PI / 2, Math.PI);
+ ctx.lineTo(0, r);
+ break;
+ case cornerEnum.bottomRight:
+ ctx.arc(0, 0, r, 0, Math.PI / 2);
+ ctx.lineTo(r, r);
+ break;
+ }
+ ctx.closePath();
+ ctx.fillStyle = root.color;
+ ctx.fill();
+ }
+ }
+
+ Behavior on size {
+ animation: Appearance?.animation.elementMoveFast.numberAnimation.createObject(this)
+ }
+
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage