mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-12-18 10:15:26 +00:00
58 lines
2.6 KiB
PowerShell
58 lines
2.6 KiB
PowerShell
|
|
function Initialize-WPFUI {
|
||
|
|
[OutputType([void])]
|
||
|
|
param(
|
||
|
|
[Parameter(Mandatory)]
|
||
|
|
[string]$TargetGridName
|
||
|
|
)
|
||
|
|
|
||
|
|
switch ($TargetGridName) {
|
||
|
|
"appscategory"{
|
||
|
|
# TODO
|
||
|
|
# Switch UI generation of the sidebar to this function
|
||
|
|
# $sync.ItemsControl = Initialize-InstallAppArea -TargetElement $TargetGridName
|
||
|
|
# ...
|
||
|
|
|
||
|
|
# Create and configure a popup for displaying selected apps
|
||
|
|
$selectedAppsPopup = New-Object Windows.Controls.Primitives.Popup
|
||
|
|
$selectedAppsPopup.IsOpen = $false
|
||
|
|
$selectedAppsPopup.PlacementTarget = $sync.WPFselectedAppsButton
|
||
|
|
$selectedAppsPopup.Placement = [System.Windows.Controls.Primitives.PlacementMode]::Bottom
|
||
|
|
$selectedAppsPopup.AllowsTransparency = $true
|
||
|
|
|
||
|
|
# Style the popup with a border and background
|
||
|
|
$selectedAppsBorder = New-Object Windows.Controls.Border
|
||
|
|
$selectedAppsBorder.SetResourceReference([Windows.Controls.Control]::BackgroundProperty, "MainBackgroundColor")
|
||
|
|
$selectedAppsBorder.SetResourceReference([Windows.Controls.Control]::BorderBrushProperty, "MainForegroundColor")
|
||
|
|
$selectedAppsBorder.SetResourceReference([Windows.Controls.Control]::BorderThicknessProperty, "ButtonBorderThickness")
|
||
|
|
$selectedAppsBorder.Width = 200
|
||
|
|
$selectedAppsBorder.Padding = 5
|
||
|
|
$selectedAppsPopup.Child = $selectedAppsBorder
|
||
|
|
$sync.selectedAppsPopup = $selectedAppsPopup
|
||
|
|
|
||
|
|
# Add a stack panel inside the popup's border to organize its child elements
|
||
|
|
$sync.selectedAppsstackPanel = New-Object Windows.Controls.StackPanel
|
||
|
|
$selectedAppsBorder.Child = $sync.selectedAppsstackPanel
|
||
|
|
|
||
|
|
# Close selectedAppsPopup when mouse leaves both button and selectedAppsPopup
|
||
|
|
$sync.WPFselectedAppsButton.Add_MouseLeave({
|
||
|
|
if (-not $sync.selectedAppsPopup.IsMouseOver) {
|
||
|
|
$sync.selectedAppsPopup.IsOpen = $false
|
||
|
|
}
|
||
|
|
})
|
||
|
|
$selectedAppsPopup.Add_MouseLeave({
|
||
|
|
if (-not $sync.WPFselectedAppsButton.IsMouseOver) {
|
||
|
|
$sync.selectedAppsPopup.IsOpen = $false
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
"appspanel" {
|
||
|
|
$sync.ItemsControl = Initialize-InstallAppArea -TargetElement $TargetGridName
|
||
|
|
Initialize-InstallCategoryAppList -TargetElement $sync.ItemsControl -Apps $sync.configs.applicationsHashtable
|
||
|
|
}
|
||
|
|
default {
|
||
|
|
Write-Output "$TargetGridName not yet implemented"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|