functions/private.ps1
|
#private helper functions Function ShowAbout { [CmdletBinding()] Param() Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Starting $($MyInvocation.MyCommand)" #$TerminalGuiVersion = [System.Reflection.Assembly]::GetAssembly([Terminal.Gui.Application]).GetName().version ` #7 Nov 2025 Pull the product version from the assembly file $TerminalGuiVersion = (Get-Item ([System.Reflection.Assembly]::GetAssembly([Terminal.Gui.Application]).location)).VersionInfo.ProductVersion -split "\+" | Select-Object -first 1 $NStackVersion = [System.Reflection.Assembly]::GetAssembly([NStack.UString]).GetName().version $about = @" PSTuiTools: $((Get-Module PSTuiTools).version) PSVersion: $($PSVersionTable.PSVersion) Terminal.Gui: $TerminalGuiVersion NStack: $NStackVersion "@ $dialog = [Terminal.Gui.Dialog]@{ Title = 'About PSTuiTools' TextAlignment = 'Left' Width = 40 Height = 12 Text = $about } $ok = [Terminal.Gui.Button]@{ Text = 'OK' } $ok.Add_Clicked({ $dialog.RequestStop() }) $dialog.AddButton($ok) Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Invoking dialog" [Terminal.Gui.Application]::Run($dialog) #Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Show message box" # Replaced 24 Feb 2024 with a dialog which allows for better formatting #[Terminal.Gui.MessageBox]::Query('About Open-PSWorkItemConsole', $About, @('Ok')) Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Ending $($MyInvocation.MyCommand)" } Function ShowMp3About { [CmdletBinding()] Param() Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Starting $($MyInvocation.MyCommand)" #$TerminalGuiVersion = [System.Reflection.Assembly]::GetAssembly([Terminal.Gui.Application]).GetName().version ` #7 Nov 2025 Pull the product version from the assembly file $TerminalGuiVersion = (Get-Item ([System.Reflection.Assembly]::GetAssembly([Terminal.Gui.Application]).location)).VersionInfo.ProductVersion -split "\+" | Select-Object -first 1 $NStackVersion = [System.Reflection.Assembly]::GetAssembly([NStack.UString]).GetName().version $TagLibVersion = [System.Reflection.Assembly]::GetAssembly([TagLib.File]).GetName().Version $about = @" PSTuiTools: $((Get-Module PSTuiTools).version) PSVersion: $($PSVersionTable.PSVersion) Terminal.Gui: $TerminalGuiVersion NStack: $NStackVersion TagLibSharp: $TagLibVersion "@ $dialog = [Terminal.Gui.Dialog]@{ Title = 'About Invoke-TuiMP3' TextAlignment = 'Left' Width = 40 Height = 12 Text = $about } $ok = [Terminal.Gui.Button]@{ Text = 'OK' } $ok.Add_Clicked({ $dialog.RequestStop() }) $dialog.AddButton($ok) Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Invoking dialog" [Terminal.Gui.Application]::Run($dialog) #Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Show message box" # Replaced 24 Feb 2024 with a dialog which allows for better formatting #[Terminal.Gui.MessageBox]::Query('About Open-PSWorkItemConsole', $About, @('Ok')) Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Ending $($MyInvocation.MyCommand)" } Function OpenFile { [CmdletBinding( )] Param( [string]$Title ="Open File", #specify the allowed file types [string]$Filter = ".*", #specify the starting folder [string]$Path = $Home, [Switch]$MultiSelect ) Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Starting $($MyInvocation.MyCommand)" $Dialog = [Terminal.Gui.OpenDialog]::new($Title, '') $Dialog.CanChooseDirectories = $false $Dialog.CanChooseFiles = $true $Dialog.AllowsMultipleSelection = $MultiSelect $Dialog.DirectoryPath = $Path $Dialog.AllowedFileTypes = @($Filter) [Terminal.Gui.Application]::Run($Dialog) If (-Not $Dialog.Canceled -AND $dialog.FilePath.ToString()) { #return the path of the selected file $dialog.FilePath.ToString() } Write-Verbose "[$((Get-Date).TimeOfDay) PRIVATE] Starting $($MyInvocation.MyCommand)" } |