plugins/consoleui/src/Create-Menu.ps1
function Global:CreateMenu ($Title, $MenuItems, $TitleColor, $LineColor, $MenuItemColor) { #CreateMenu -Title "THIS IS TITLE" -MenuItems "Exchange Server","Active Directory","Sytem Center Configuration Manager","Lync Server","Microsoft Azure" -TitleColor Red -LineColor Cyan -MenuItemColor Yellow [string]$Title = "$Title" $TitleCount = $Title.Length $LongestMenuItem = ($MenuItems | Measure-Object -Maximum -Property Length).Maximum if ($TitleCount -lt $LongestMenuItem) { $reference = $LongestMenuItem } else {$reference = $TitleCount} $reference = $reference + 10 $Line = "═" * $reference $TotalLineCount = $Line.Length $RemaniningCountForTitleLine = $reference - $TitleCount $RemaniningCountForTitleLineForEach = $RemaniningCountForTitleLine / 2 $RemaniningCountForTitleLineForEach = [math]::Round($RemaniningCountForTitleLineForEach) $LineForTitleLine = "`0" * $RemaniningCountForTitleLineForEach $Tab = "`t" Write-Host "╔" -NoNewline -f $LineColor; Write-Host $Line -NoNewline -f $LineColor; Write-Host "╗" -f $LineColor if ($RemaniningCountForTitleLine % 2 -eq 1) { $RemaniningCountForTitleLineForEach = $RemaniningCountForTitleLineForEach - 1 $LineForTitleLine2 = "`0" * $RemaniningCountForTitleLineForEach Write-Host "║" -f $LineColor -nonewline; Write-Host $LineForTitleLine -nonewline -f $LineColor; Write-Host $Title -f $TitleColor -nonewline; Write-Host $LineForTitleLine2 -f $LineColor -nonewline; Write-Host "║" -f $LineColor } else { Write-Host "║" -nonewline -f $LineColor; Write-Host $LineForTitleLine -nonewline -f $LineColor; Write-Host $Title -f $TitleColor -nonewline; Write-Host $LineForTitleLine -nonewline -f $LineColor; Write-Host "║" -f $LineColor } Write-Host "╠" -NoNewline -f $LineColor; Write-Host $Line -NoNewline -f $LineColor; Write-Host "╣" -f $LineColor $i = 1 foreach ($menuItem in $MenuItems) { $number = $i++ $RemainingCountForItemLine = $TotalLineCount - $menuItem.Length - 9 $LineForItems = "`0" * $RemainingCountForItemLine Write-Host "║" -nonewline -f $LineColor ; Write-Host $Tab -nonewline; Write-Host $number"." -nonewline -f $MenuItemColor; Write-Host $menuItem -nonewline -f $MenuItemColor; Write-Host $LineForItems -nonewline -f $LineColor; Write-Host "║" -f $LineColor } Write-Host "╚" -NoNewline -f $LineColor; Write-Host $Line -NoNewline -f $LineColor; Write-Host "╝" -f $LineColor } |