Private/ShowTooltip.ps1
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '')] $ShowTooltip = { param ( [string]$tooltip, [string]$foregroundColor, [string]$backgroundColor ) $fgRgb = Convert-HexToRgb($foregroundColor) $bgRgb = Convert-HexToRgb($backgroundColor) $coloredTooltip = "`e[38;2;${fgRgb}m`e[48;2;${bgRgb}m$tooltip`e[0m" $saveX = [console]::CursorLeft $saveY = [console]::CursorTop $drawX = [Console]::WindowWidth - $tooltip.Length - 1 [console]::CursorVisible = $false [console]::setcursorposition($drawX, $saveY) Write-Host -NoNewline $coloredTooltip [console]::setcursorposition($saveX, $saveY) [console]::CursorVisible = $true } function Convert-HexToRgb($hex) { $red = [convert]::ToInt32($hex.Substring(1,2), 16) $green = [convert]::ToInt32($hex.Substring(3,2), 16) $blue = [convert]::ToInt32($hex.Substring(5,2), 16) return "${red};${green};${blue}" } |