summaryrefslogtreecommitdiff
path: root/raveos-sddm-theme/sddm-rave-theme/Components/VirtualKeyboardButton.qml
blob: 90a52b8bb8b63a6a9975132f4820d66b0d6d7fa2 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// Config created by Keyitdev https://git.rp1.hu/gabeszm/sddm-rave-theme
// Copyright (C) 2022-2025 Keyitdev
// Distributed under the GPLv3+ License https://www.gnu.org/licenses/gpl-3.0.html

import QtQuick 2.15
import QtQuick.Controls 2.15

Item {
    Button {
        id: virtualKeyboardButton

        anchors.horizontalCenter: parent.horizontalCenter
        z: 1
        focusPolicy: Qt.TabFocus

        visible: virtualKeyboard.status == Loader.Ready && config.HideVirtualKeyboard == "false"
        checkable: true
        onClicked: virtualKeyboard.switchState()
        
        Keys.onReturnPressed: {
            toggle();
            virtualKeyboard.switchState();
        }
        Keys.onEnterPressed: {
            toggle();
            virtualKeyboard.switchState();
        }

        contentItem: Text {
            id: virtualKeyboardButtonText

            text: config.TranslateVirtualKeyboardButtonOff || "Virtual Keyboard (off)"
            font.pointSize: root.font.pointSize * 0.8
            font.family: root.font.family
            color: parent.visualFocus ? config.HoverVirtualKeyboardButtonTextColor : config.VirtualKeyboardButtonTextColor
        }

        background: Rectangle {
            id: virtualKeyboardButtonBackground

            anchors.fill: parent
            radius: config.RoundCorners !== "" ? parseInt(config.RoundCorners) : 10
            color: virtualKeyboardButton.down ? Qt.rgba(1, 1, 1, 0.12) : (virtualKeyboardButton.hovered ? Qt.rgba(1, 1, 1, 0.08) : Qt.rgba(1, 1, 1, 0.04))
            border.color: virtualKeyboardButton.visualFocus ? Qt.rgba(1, 1, 1, 0.60) : (virtualKeyboardButton.hovered ? Qt.rgba(1, 1, 1, 0.35) : Qt.rgba(1, 1, 1, 0.18))
            border.width: virtualKeyboardButton.visualFocus ? 1.5 : 1

            Behavior on color { ColorAnimation { duration: 150 } }
            Behavior on border.color { ColorAnimation { duration: 150 } }
        }
        states: [
            State {
                name: "HoveredAndChecked"
                when: virtualKeyboardButton.checked && virtualKeyboardButton.hovered
                PropertyChanges {
                    target: virtualKeyboardButtonText
                    text: config.TranslateVirtualKeyboardButtonOn || "Virtual Keyboard (on)"
                    color: config.HoverVirtualKeyboardButtonTextColor
                }
            },
            State {
                name: "checked"
                when: virtualKeyboardButton.checked
                PropertyChanges {
                    target: virtualKeyboardButtonText
                    text: config.TranslateVirtualKeyboardButtonOn || "Virtual Keyboard (on)"
                }
            },
            State {
                name: "hovered"
                when: virtualKeyboardButton.hovered
                PropertyChanges {
                    target: virtualKeyboardButtonText
                    text: config.TranslateVirtualKeyboardButtonOff || "Virtual Keyboard (off)"
                    color: config.HoverVirtualKeyboardButtonTextColor
                }
            }
        ]
    }
}