mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-06-28 09:04:47 -05:00
Taskbaritem > Progressbar / Overlay icon / description / asset mgmt (#2309)
* Add Progress bar to some stuff https://learn.microsoft.com/en-us/dotnet/api/system.windows.shell.taskbariteminfo?view=windowsdesktop-8.0 * add function to manage taskbar item changed from manually setting the taskbar overlay, progressvalue and progress state to setting them through a function * add description feature * use Dispatcher.Invoke * restructure, fix, additions * fix merge conflicts * add check to progresses * remove progress from wiget & choco install * fix * polish * fix * Update functions/private/Set-WinUtilTaskbarItem.ps1 Co-authored-by: Mr.k <mineshtine28546271@gmail.com> * fix syntax * Update functions/private/Set-WinUtilTaskbarItem.ps1 Co-authored-by: Mr.k <mineshtine28546271@gmail.com> * rework - add overlay presets - rework image saving & converting - removed popup after uninstalling applications * fix description of function * undo winutil * remove check.png * Update functions/private/Set-WinUtilTaskbarItem.ps1 Co-authored-by: Mr.k <mineshtine28546271@gmail.com> * Update functions/private/Set-WinUtilTaskbarItem.ps1 Co-authored-by: Mr.k <mineshtine28546271@gmail.com> * rework assets directory & its usage * fixes - ability to set no overlay added - added relative path to winutildir * hotfix * last fixes * add comment * remove trailing whitespaces THX to Mr.K :) * renamed checkmark & added warning * last fixes remove bitmap remove unneeded "| out-null" * hotfix for new commit --------- Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
This commit is contained in:
86
functions/private/Set-WinUtilTaskbarItem.ps1
Normal file
86
functions/private/Set-WinUtilTaskbarItem.ps1
Normal file
@ -0,0 +1,86 @@
|
||||
function Set-WinUtilTaskbaritem {
|
||||
<#
|
||||
|
||||
.SYNOPSIS
|
||||
Modifies the Taskbaritem of the WPF Form
|
||||
|
||||
.PARAMETER value
|
||||
Value can be between 0 and 1, 0 being no progress done yet and 1 being fully completed
|
||||
Value does not affect item without setting the state to 'Normal', 'Error' or 'Paused'
|
||||
Set-WinUtilTaskbaritem -value 0.5
|
||||
|
||||
.PARAMETER state
|
||||
State can be 'None' > No progress, 'Indeterminate' > inf. loading gray, 'Normal' > Gray, 'Error' > Red, 'Paused' > Yellow
|
||||
no value needed:
|
||||
- Set-WinUtilTaskbaritem -state "None"
|
||||
- Set-WinUtilTaskbaritem -state "Indeterminate"
|
||||
value needed:
|
||||
- Set-WinUtilTaskbaritem -state "Error"
|
||||
- Set-WinUtilTaskbaritem -state "Normal"
|
||||
- Set-WinUtilTaskbaritem -state "Paused"
|
||||
|
||||
.PARAMETER overlay
|
||||
Overlay icon to display on the taskbar item, there are the presets 'None', 'logo' and 'checkmark' or you can specify a path/link to an image file.
|
||||
CTT logo preset:
|
||||
- Set-WinUtilTaskbaritem -overlay "logo"
|
||||
Checkmark preset:
|
||||
- Set-WinUtilTaskbaritem -overlay "checkmark"
|
||||
Warning preset:
|
||||
- Set-WinUtilTaskbaritem -overlay "warning"
|
||||
No overlay:
|
||||
- Set-WinUtilTaskbaritem -overlay "None"
|
||||
Custom icon (needs to be supported by WPF):
|
||||
- Set-WinUtilTaskbaritem -overlay "C:\path\to\icon.png"
|
||||
|
||||
.PARAMETER description
|
||||
Description to display on the taskbar item preview
|
||||
Set-WinUtilTaskbaritem -description "This is a description"
|
||||
#>
|
||||
param (
|
||||
[string]$state,
|
||||
[double]$value,
|
||||
[string]$overlay,
|
||||
[string]$description
|
||||
)
|
||||
|
||||
if ($value) {
|
||||
$sync["Form"].taskbarItemInfo.ProgressValue = $value
|
||||
}
|
||||
|
||||
if ($state) {
|
||||
switch ($state) {
|
||||
'None' { $sync["Form"].taskbarItemInfo.ProgressState = "None" }
|
||||
'Indeterminate' { $sync["Form"].taskbarItemInfo.ProgressState = "Indeterminate" }
|
||||
'Normal' { $sync["Form"].taskbarItemInfo.ProgressState = "Normal" }
|
||||
'Error' { $sync["Form"].taskbarItemInfo.ProgressState = "Error" }
|
||||
'Paused' { $sync["Form"].taskbarItemInfo.ProgressState = "Paused" }
|
||||
default { throw "[Set-WinUtilTaskbarItem] Invalid state" }
|
||||
}
|
||||
}
|
||||
|
||||
if ($overlay) {
|
||||
switch ($overlay) {
|
||||
'logo' {
|
||||
$sync["Form"].taskbarItemInfo.Overlay = "$env:LOCALAPPDATA\winutil\cttlogo.png"
|
||||
}
|
||||
'checkmark' {
|
||||
$sync["Form"].taskbarItemInfo.Overlay = "$env:LOCALAPPDATA\winutil\checkmark.png"
|
||||
}
|
||||
'warning' {
|
||||
$sync["Form"].taskbarItemInfo.Overlay = "$env:LOCALAPPDATA\winutil\warning.png"
|
||||
}
|
||||
'None' {
|
||||
$sync["Form"].taskbarItemInfo.Overlay = $null
|
||||
}
|
||||
default {
|
||||
if (Test-Path $overlay) {
|
||||
$sync["Form"].taskbarItemInfo.Overlay = $overlay
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($description) {
|
||||
$sync["Form"].taskbarItemInfo.Description = $description
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user