Warning, /frameworks/kirigami/src/controls/private/DefaultCardBackground.qml is written in an unsupported language. File is not indexed.

0001 
0002 /*
0003  *  SPDX-FileCopyrightText: 2019 Marco Martin <mart@kde.org>
0004  *
0005  *  SPDX-License-Identifier: LGPL-2.0-or-later
0006  */
0007 import QtQuick
0008 import org.kde.kirigami as Kirigami
0009 
0010 /**
0011  * @brief This is the default background for Cards.
0012  *
0013  * It provides background feedback on hover and click events, border customizability, and the ability to change the radius of each individual corner.
0014  *
0015  * @inherit org::kde::kirigami::ShadowedRectangle
0016  */
0017 Kirigami.ShadowedRectangle {
0018     id: root
0019 
0020 //BEGIN properties
0021     /**
0022      * @brief This property sets whether there should be a background change on a click event.
0023      *
0024      * default: ``false``
0025      */
0026     property bool clickFeedback: false
0027 
0028     /**
0029      * @brief This property sets whether there should be a background change on a click event.
0030      *
0031      * default: ``false``
0032      */
0033     property bool hoverFeedback: false
0034 
0035     /**
0036      * @brief This property holds the card's normal background color.
0037      *
0038      * default: ``Kirigami.Theme.backgroundColor``
0039      */
0040     property color defaultColor: Kirigami.Theme.backgroundColor
0041 
0042     /**
0043      * @brief This property holds the color displayed when a click event is triggered.
0044      * @see DefaultCardBackground::clickFeedback
0045      */
0046     property color pressedColor: Kirigami.ColorUtils.tintWithAlpha(
0047                                      defaultColor,
0048                                      Kirigami.Theme.highlightColor, 0.3)
0049 
0050     /**
0051      * @brief This property holds the color displayed when a hover event is triggered.
0052      * @see DefaultCardBackground::hoverFeedback
0053      */
0054     property color hoverColor: Kirigami.ColorUtils.tintWithAlpha(
0055                                    defaultColor,
0056                                    Kirigami.Theme.highlightColor, 0.1)
0057 
0058     /**
0059      * @brief This property holds the border width which is displayed at the edge of DefaultCardBackground.
0060      *
0061      * default: ``1``
0062      */
0063     property int borderWidth: 1
0064 
0065     /**
0066      * @brief This property holds the border color which is displayed at the edge of DefaultCardBackground.
0067      */
0068     property color borderColor: Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, Kirigami.Theme.frameContrast)
0069 
0070 //END properties
0071 
0072     color: {
0073         if (root.parent.checked || (root.clickFeedback && (root.parent.down || root.parent.highlighted)))
0074             return root.pressedColor
0075         else if (root.hoverFeedback && root.parent.hovered)
0076             return root.hoverColor
0077         return root.defaultColor
0078     }
0079 
0080     radius: Kirigami.Units.smallSpacing
0081 
0082     border {
0083         width: root.borderWidth
0084         color: root.borderColor
0085     }
0086     shadow {
0087         size: Kirigami.Units.gridUnit
0088         color: Qt.rgba(0, 0, 0, 0.05)
0089         yOffset: 2
0090     }
0091 
0092     // basic drop shadow
0093     Rectangle {
0094         anchors.left: parent.left
0095         anchors.right: parent.right
0096         anchors.top: parent.top
0097         anchors.topMargin: Math.round(Kirigami.Units.smallSpacing / 4)
0098 
0099         radius: root.radius
0100         height: root.height
0101         color: Qt.darker(Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.6), 1.1)
0102         visible: !root.clickFeedback || !root.parent.down
0103 
0104         z: -1
0105     }
0106 }