2021-07-09 10:36:33 +03:00
|
|
|
// SPDX-FileCopyrightText: 2021 Nheko Contributors
|
2022-01-01 06:57:53 +03:00
|
|
|
// SPDX-FileCopyrightText: 2022 Nheko Contributors
|
2023-01-02 06:25:33 +03:00
|
|
|
// SPDX-FileCopyrightText: 2023 Nheko Contributors
|
2021-07-09 10:36:33 +03:00
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
import QtGraphicalEffects 1.12
|
|
|
|
import QtQuick 2.9
|
|
|
|
import QtQuick.Controls 2.5
|
2022-03-06 21:51:17 +03:00
|
|
|
import QtQuick.Layouts 1.2
|
2021-07-09 10:36:33 +03:00
|
|
|
import im.nheko 1.0
|
|
|
|
|
2022-01-11 06:12:42 +03:00
|
|
|
// FIXME(Nico): Don't use hardcoded colors.
|
2021-07-09 10:36:33 +03:00
|
|
|
Button {
|
|
|
|
id: control
|
|
|
|
|
2022-01-12 21:09:46 +03:00
|
|
|
implicitHeight: Math.ceil(control.contentItem.implicitHeight * 1.70)
|
2021-07-09 10:36:33 +03:00
|
|
|
implicitWidth: Math.ceil(control.contentItem.implicitWidth + control.contentItem.implicitHeight)
|
|
|
|
hoverEnabled: true
|
|
|
|
|
2022-03-06 21:51:17 +03:00
|
|
|
property string iconImage: ""
|
|
|
|
|
2021-07-09 10:36:33 +03:00
|
|
|
DropShadow {
|
|
|
|
anchors.fill: control.background
|
|
|
|
horizontalOffset: 3
|
|
|
|
verticalOffset: 3
|
|
|
|
radius: 8
|
|
|
|
samples: 17
|
|
|
|
cached: true
|
|
|
|
color: "#80000000"
|
|
|
|
source: control.background
|
|
|
|
}
|
|
|
|
|
2022-03-06 21:51:17 +03:00
|
|
|
contentItem: RowLayout {
|
|
|
|
spacing: 0
|
|
|
|
anchors.centerIn: parent
|
|
|
|
Image {
|
|
|
|
Layout.leftMargin: Nheko.paddingMedium
|
|
|
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
|
|
|
|
Layout.preferredHeight: fontMetrics.font.pixelSize * 1.5
|
|
|
|
Layout.preferredWidth: fontMetrics.font.pixelSize * 1.5
|
|
|
|
visible: !!iconImage
|
|
|
|
source: iconImage
|
|
|
|
}
|
|
|
|
|
|
|
|
Text {
|
|
|
|
Layout.alignment: Qt.AlignHCenter
|
|
|
|
text: control.text
|
|
|
|
//font: control.font
|
|
|
|
font.capitalization: Font.AllUppercase
|
|
|
|
font.pointSize: Math.ceil(fontMetrics.font.pointSize * 1.5)
|
|
|
|
//font.capitalization: Font.AllUppercase
|
|
|
|
color: Nheko.colors.light
|
|
|
|
horizontalAlignment: Text.AlignHCenter
|
|
|
|
verticalAlignment: Text.AlignVCenter
|
|
|
|
elide: Text.ElideRight
|
|
|
|
}
|
2021-07-09 10:36:33 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
background: Rectangle {
|
|
|
|
//height: control.contentItem.implicitHeight * 2
|
|
|
|
//width: control.contentItem.implicitWidth * 2
|
2022-01-12 21:09:46 +03:00
|
|
|
radius: height / 8
|
2021-07-09 10:36:33 +03:00
|
|
|
color: Qt.lighter(Nheko.colors.dark, control.down ? 1.4 : (control.hovered ? 1.2 : 1))
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|