mirror of
https://github.com/celesrenata/end-4-flakes.git
synced 2026-06-06 02:39:27 -05:00
62 lines
1.7 KiB
QML
62 lines
1.7 KiB
QML
import QtQuick 2.9
|
|
|
|
Item {
|
|
id: root
|
|
|
|
enum CornerEnum { TopLeft, TopRight, BottomLeft, BottomRight }
|
|
property var corner: RoundCorner.CornerEnum.TopLeft // Default to TopLeft
|
|
|
|
property int size: 25
|
|
property color color: "#000000"
|
|
|
|
onColorChanged: {
|
|
canvas.requestPaint();
|
|
}
|
|
onCornerChanged: {
|
|
canvas.requestPaint();
|
|
}
|
|
|
|
implicitWidth: size
|
|
implicitHeight: size
|
|
|
|
Canvas {
|
|
id: canvas
|
|
|
|
anchors.fill: parent
|
|
antialiasing: true
|
|
|
|
onPaint: {
|
|
var ctx = getContext("2d");
|
|
var r = root.size;
|
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
ctx.beginPath();
|
|
switch (root.corner) {
|
|
case RoundCorner.CornerEnum.TopLeft:
|
|
ctx.arc(r, r, r, Math.PI, 3 * Math.PI / 2);
|
|
ctx.lineTo(0, 0);
|
|
break;
|
|
case RoundCorner.CornerEnum.TopRight:
|
|
ctx.arc(0, r, r, 3 * Math.PI / 2, 2 * Math.PI);
|
|
ctx.lineTo(r, 0);
|
|
break;
|
|
case RoundCorner.CornerEnum.BottomLeft:
|
|
ctx.arc(r, 0, r, Math.PI / 2, Math.PI);
|
|
ctx.lineTo(0, r);
|
|
break;
|
|
case RoundCorner.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)
|
|
}
|
|
|
|
}
|