import QtQuick import Quickshell import "." as M import "../services" as S Text { id: root property string label: "" property string tooltip: "" property string minText: "" property color accentColor: parent?.accentColor ?? S.Theme.base05 property bool _hovered: false text: label width: minText ? Math.max(implicitWidth, _minMetrics.width) : implicitWidth horizontalAlignment: minText ? Text.AlignHCenter : Text.AlignLeft color: root.accentColor font.pixelSize: S.Theme.fontSize font.family: S.Theme.fontFamily verticalAlignment: Text.AlignVCenter TextMetrics { id: _minMetrics text: root.minText font.pixelSize: root.font.pixelSize font.family: root.font.family } HoverHandler { onHoveredChanged: { root._hovered = hovered; if (hovered && root.tooltip !== "") { M.FlyoutState.text = root.tooltip; M.FlyoutState.itemX = root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0); M.FlyoutState.screen = QsWindow.window?.screen ?? null; M.FlyoutState.accentColor = root.accentColor; M.FlyoutState.visible = true; } else if (!hovered && root.tooltip !== "") { M.FlyoutState.visible = false; } } } onTooltipChanged: if (_hovered && tooltip !== "") M.FlyoutState.text = tooltip }