forked from Shinonome/dots-hyprland
39 lines
1.1 KiB
QML
39 lines
1.1 KiB
QML
import QtQuick
|
|
import Quickshell
|
|
|
|
/**
|
|
* Abstract morphed panel to be used in TopLayerPanel.
|
|
* Screen width and height are to be supplied when declared in the top layer panel
|
|
* Others are to be declared by panels deriving from this
|
|
*
|
|
* To make sure morph movements don't look weird:
|
|
* - Follow the convention of having points start from bottom-middle and go clockwise
|
|
* - Make sure the number of points is "balanced" in all directions
|
|
* - Tip: Sometimes symmetry is not enough. Try to have more intermediate points if ones you have are too spaced out and act funny.
|
|
*/
|
|
Item {
|
|
id: root
|
|
|
|
// To be fed
|
|
property int screenWidth: QsWindow.window.width
|
|
property int screenHeight: QsWindow.window.height
|
|
|
|
// Signals & loading
|
|
signal requestFocus()
|
|
signal dismissed()
|
|
property bool load: true
|
|
property bool shown: true
|
|
|
|
// Some info
|
|
property int reservedTop: 0
|
|
property int reservedBottom: 0
|
|
property int reservedLeft: 0
|
|
property int reservedRight: 0
|
|
|
|
// Main stuff
|
|
property var backgroundPolygon
|
|
property Region maskRegion: Region {
|
|
item: root
|
|
}
|
|
}
|