moment/src/gui/Base/HToolTip.qml

74 lines
1.8 KiB
QML
Raw Normal View History

// Copyright Mirage authors & contributors <https://github.com/mirukana/mirage>
2019-12-19 22:46:16 +11:00
// SPDX-License-Identifier: LGPL-3.0-or-later
2019-07-13 08:02:14 +10:00
import QtQuick 2.12
import QtQuick.Controls 2.12
2019-09-12 06:47:13 +10:00
import QtQuick.Layouts 1.12
ToolTip {
id: toolTip
property bool instant: false
property alias label: label
property alias backgroundColor: background.color
2020-07-27 10:56:42 +10:00
function instantShow(timeout=-1) {
if (visible) return
instant = true
2020-07-27 10:56:42 +10:00
timeout === -1 ? open() : show(text, timeout)
instant = false
}
delay: instant ? 0 : theme.controls.toolTip.delay
padding: background.border.width
2019-08-28 12:46:31 +10:00
background: Rectangle {
id: background
color: theme.controls.toolTip.background
border.color: theme.controls.toolTip.border
border.width: theme.controls.toolTip.borderWidth
}
2019-09-12 06:47:13 +10:00
contentItem: HRowLayout {
HLabel {
id: label
color: theme.controls.toolTip.text
text: toolTip.text
wrapMode: HLabel.Wrap
2019-09-12 06:47:13 +10:00
leftPadding: theme.spacing / 1.5
rightPadding: leftPadding
topPadding: theme.spacing / 2
bottomPadding: topPadding
Layout.maximumWidth: Math.min(
2019-09-18 06:30:04 +10:00
window.width / 1.25, theme.fontSize.normal * 0.5 * 75,
2019-09-12 06:47:13 +10:00
)
}
}
enter: Transition {
HNumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
}
exit: Transition {
2019-09-18 06:30:04 +10:00
HNumberAnimation { property: "opacity"; to: 0.0 }
}
2019-07-13 08:02:14 +10:00
TapHandler {
onTapped: toolTip.hide()
}
HoverHandler {
onHoveredChanged: if (! hovered) toolTip.hide()
}
HoverHandler {
target: mainUI
enabled: toolTip.visible
onHoveredChanged: if (toolTip.visible && ! hovered) toolTip.hide()
}
}