Warning, /education/kstars/kstars/kstarslite/qml/modules/helpers/TopMenuButton.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2016 Artem Fedoskin <afedoskin3@gmail.com>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003
0004 import QtQuick 2.6
0005 import QtQuick.Controls 2.0
0006 import QtGraphicalEffects 1.0
0007 import "../../constants/" 1.0
0008
0009 AbstractButton {
0010 id: button
0011 property string iconSrc: ""
0012 width: icon.width + 5
0013 height: icon.height + 5
0014 property bool toggled: false
0015 opacity: toggled ? 1 : 0.3
0016
0017 property string title: " "
0018 property bool titlePlural: true
0019
0020 onClicked: {
0021 toggled = !toggled
0022 }
0023
0024 onToggledChanged: {
0025 if(isLoaded) { //Disable while loading
0026 if(toggled) {
0027 if(titlePlural) {
0028 skyMapLite.notification.showNotification(xi18n("%1 are toggled on", title))
0029 } else {
0030 skyMapLite.notification.showNotification(xi18n("%1 is toggled on", title))
0031 }
0032 } else {
0033 if(titlePlural) {
0034 skyMapLite.notification.showNotification(xi18n("%1 are toggled off", title))
0035 } else {
0036 skyMapLite.notification.showNotification(xi18n("%1 is toggled off", title))
0037 }
0038 }
0039 }
0040 }
0041
0042 DropShadow {
0043 anchors.fill: iconRect
0044 radius: 8.0
0045 samples: 16
0046 horizontalOffset: 0
0047 verticalOffset: 0
0048 color: "#000000"
0049 source: iconRect
0050 opacity: pressed ? 1 : 0
0051
0052 Behavior on opacity {
0053 OpacityAnimator { duration: 100 }
0054 }
0055 }
0056
0057 Image {
0058 id: icon
0059 source: iconSrc
0060 width: sourceSize.width/Num.pixelRatio //FIX /Num.pixelRatio we don't need it here!
0061 height: sourceSize.height/Num.pixelRatio
0062 anchors.centerIn: iconRect
0063 }
0064
0065 background: Rectangle {
0066 id: iconRect
0067 radius: 5
0068 anchors {
0069 fill: parent
0070 }
0071 color: "black"
0072 border {
0073 color: toggled ? Num.sysPalette.highlight : "grey"
0074 width: 1
0075 }
0076 }
0077
0078 onDownChanged: {
0079 /*if(down) opacity = 0.6
0080 else opacity = 1*/
0081 }
0082
0083 onPressed: {
0084 //opacity = 0.6
0085 }
0086
0087 onReleased: {
0088 //opacity = 1
0089 }
0090
0091 Behavior on opacity {
0092 OpacityAnimator { duration: 100 }
0093 }
0094 }