mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-12-29 16:14:55 +00:00
66 lines
2.5 KiB
PowerShell
66 lines
2.5 KiB
PowerShell
|
|
function Invoke-MicrowinBusyInfo {
|
||
|
|
<#
|
||
|
|
.DESCRIPTION
|
||
|
|
Function to display the busy info for the Microwin process
|
||
|
|
#>
|
||
|
|
[CmdletBinding(DefaultParameterSetName='done')]
|
||
|
|
param(
|
||
|
|
[Parameter(ParameterSetName='wip', Mandatory, Position = 0)]
|
||
|
|
[Parameter(ParameterSetName='warning', Mandatory, Position = 0)]
|
||
|
|
[Parameter(ParameterSetName='done', Mandatory, Position = 0)]
|
||
|
|
[Parameter(ParameterSetName='hide', Mandatory, Position = 0)]
|
||
|
|
[ValidateSet('wip', 'warning', 'done', 'hide')]
|
||
|
|
[string]$action,
|
||
|
|
|
||
|
|
[Parameter(ParameterSetName='wip', Mandatory, Position = 1)]
|
||
|
|
[Parameter(ParameterSetName='warning', Mandatory, Position = 1)]
|
||
|
|
[Parameter(ParameterSetName='done', Mandatory, Position = 1)]
|
||
|
|
[string]$message,
|
||
|
|
|
||
|
|
[Parameter(ParameterSetName='wip', Position = 2)] [bool]$interactive = $false
|
||
|
|
)
|
||
|
|
|
||
|
|
switch ($action) {
|
||
|
|
"wip" {
|
||
|
|
$sync.form.Dispatcher.BeginInvoke([action]{
|
||
|
|
$sync.MicrowinBusyIndicator.Visibility="Visible"
|
||
|
|
$finalMessage = ""
|
||
|
|
if ($interactive -eq $false) {
|
||
|
|
$finalMessage += "Please wait. "
|
||
|
|
}
|
||
|
|
$finalMessage += $message
|
||
|
|
$sync.BusyText.Text = $finalMessage
|
||
|
|
$sync.BusyIcon.Foreground="#FFA500"
|
||
|
|
$sync.BusyText.Foreground="#FFA500"
|
||
|
|
})
|
||
|
|
}
|
||
|
|
"warning" {
|
||
|
|
$sync.form.Dispatcher.BeginInvoke([action]{
|
||
|
|
$sync.MicrowinBusyIndicator.Visibility="Visible"
|
||
|
|
$sync.BusyText.Text=$message
|
||
|
|
$sync.BusyText.Foreground="#FF0000"
|
||
|
|
$sync.BusyIcon.Foreground="#FF0000"
|
||
|
|
})
|
||
|
|
}
|
||
|
|
"done" {
|
||
|
|
$sync.form.Dispatcher.BeginInvoke([action]{
|
||
|
|
$sync.MicrowinBusyIndicator.Visibility="Visible"
|
||
|
|
$sync.BusyText.Text=$message
|
||
|
|
$sync.BusyText.Foreground="#00FF00"
|
||
|
|
$sync.BusyIcon.Foreground="#00FF00"
|
||
|
|
})
|
||
|
|
}
|
||
|
|
"hide" {
|
||
|
|
$sync.form.Dispatcher.BeginInvoke([action]{
|
||
|
|
$sync.MicrowinBusyIndicator.Visibility="Hidden"
|
||
|
|
$sync.BusyText.Foreground=$sync.Form.Resources.MicrowinBusyColor
|
||
|
|
$sync.BusyIcon.Foreground=$sync.Form.Resources.MicrowinBusyColor
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Force the UI to process pending messages
|
||
|
|
[System.Windows.Forms.Application]::DoEvents()
|
||
|
|
Start-Sleep -Milliseconds 50
|
||
|
|
}
|