summaryrefslogtreecommitdiff
path: root/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Plugins/PluginControlCenterWrapper.qml
blob: 5d4082632e147e22663c00366f586343325c43de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import QtQuick
import qs.Common
import qs.Services
import qs.Widgets

Item {
    id: root

    property string pluginId: ""
    property var pluginInstance: null
    property bool isCompoundPill: false
    property bool isSmallToggle: false

    readonly property bool hasDetail: pluginInstance?.ccDetailContent !== null
    readonly property string iconName: pluginInstance?.ccWidgetIcon || "extension"
    readonly property string primaryText: pluginInstance?.ccWidgetPrimaryText || "Plugin"
    readonly property string secondaryText: pluginInstance?.ccWidgetSecondaryText || ""
    readonly property bool isActive: pluginInstance?.ccWidgetIsActive || false
    readonly property Component detailContent: pluginInstance?.ccDetailContent || null
    readonly property real detailHeight: pluginInstance?.ccDetailHeight || 250

    signal toggled()
    signal expanded()

    Component.onCompleted: {
        if (pluginInstance) {
            pluginInstance.ccWidgetToggled.connect(handleToggled)
            pluginInstance.ccWidgetExpanded.connect(handleExpanded)
        }
    }

    function handleToggled() {
        toggled()
    }

    function handleExpanded() {
        expanded()
    }

    function invokeToggle() {
        if (pluginInstance) {
            pluginInstance.ccWidgetToggled()
        }
    }

    function invokeExpand() {
        if (pluginInstance) {
            pluginInstance.ccWidgetExpanded()
        }
    }
}