From b422a565d51b9d8dcdda29afb6b391ef3f7e798e Mon Sep 17 00:00:00 2001 From: rbalsleyMSFT Date: Tue, 31 Dec 2024 00:07:00 -0800 Subject: [PATCH] Added M365 Apps/Office tab --- FFUDevelopment/BuildFFUVM_UI.ps1 | 67 +++++++++++++++++++++++++++++++ FFUDevelopment/BuildFFUVM_UI.xaml | 31 +++++++++----- 2 files changed, 89 insertions(+), 9 deletions(-) diff --git a/FFUDevelopment/BuildFFUVM_UI.ps1 b/FFUDevelopment/BuildFFUVM_UI.ps1 index 316a9be..a07b580 100644 --- a/FFUDevelopment/BuildFFUVM_UI.ps1 +++ b/FFUDevelopment/BuildFFUVM_UI.ps1 @@ -352,6 +352,9 @@ $btnBuildConfig.Add_Click({ }) # After loading the window: +# Initialize script-scoped variable +$script:installAppsCheckedByOffice = $false + $window.Add_Loaded({ $script:vmSwitchMap = @{} $script:cmbVMSwitchName = $window.FindName('cmbVMSwitchName') @@ -557,6 +560,70 @@ $window.Add_Loaded({ # Set default values for Drivers Folder and PE Drivers Folder $window.FindName('txtDriversFolder').Text = Join-Path -Path $FFUDevelopmentPath -ChildPath "Drivers" $window.FindName('txtPEDriversFolder').Text = Join-Path -Path $FFUDevelopmentPath -ChildPath "PEDrivers" + + # Find the Install Office and Install Apps checkboxes + $script:chkInstallOffice = $window.FindName('chkInstallOffice') + $script:chkInstallApps = $window.FindName('chkInstallApps') + + # Add event handler for Install Office Checked + $script:chkInstallOffice.Add_Checked({ + if (-not $script:chkInstallApps.IsChecked) { + $script:chkInstallApps.IsChecked = $true + $script:installAppsCheckedByOffice = $true + } + $script:chkInstallApps.IsEnabled = $false + }) + + # Add event handler for Install Office Unchecked + $script:chkInstallOffice.Add_Unchecked({ + if ($script:installAppsCheckedByOffice) { + $script:chkInstallApps.IsChecked = $false + $script:installAppsCheckedByOffice = $false + } + $script:chkInstallApps.IsEnabled = $true + }) + + # Initialize additional script-scoped variables + $script:installAppsCheckedManually = $false + + # Assign script-scoped variables + $script:chkInstallOffice = $window.FindName('chkInstallOffice') + $script:chkInstallApps = $window.FindName('chkInstallApps') + # ...assign other script-scoped variables... + + # Add event handler for Install Apps Checked manually + $script:chkInstallApps.Add_Checked({ + if (-not $script:installAppsCheckedByOffice) { + # User checked Install Apps manually + $script:installAppsCheckedManually = $true + } + }) + + # Add event handler for Install Apps Unchecked manually + $script:chkInstallApps.Add_Unchecked({ + if (-not $script:installAppsCheckedByOffice) { + # User unchecked Install Apps manually + $script:installAppsCheckedManually = $false + } + }) + + # Add event handler for Install Office Checked + $script:chkInstallOffice.Add_Checked({ + if (-not $script:chkInstallApps.IsChecked) { + $script:chkInstallApps.IsChecked = $true + $script:installAppsCheckedByOffice = $true + } + $script:chkInstallApps.IsEnabled = $false + }) + + # Add event handler for Install Office Unchecked + $script:chkInstallOffice.Add_Unchecked({ + if ($script:installAppsCheckedByOffice) { + $script:chkInstallApps.IsChecked = $false + $script:installAppsCheckedByOffice = $false + } + $script:chkInstallApps.IsEnabled = $true + }) }) # Show the window diff --git a/FFUDevelopment/BuildFFUVM_UI.xaml b/FFUDevelopment/BuildFFUVM_UI.xaml index 477fa70..88b20df 100644 --- a/FFUDevelopment/BuildFFUVM_UI.xaml +++ b/FFUDevelopment/BuildFFUVM_UI.xaml @@ -123,6 +123,27 @@ + + + + + + + + + + + + + + + + + + + @@ -137,17 +158,9 @@ Focusable="True" ToolTip="Check to install Microsoft Office as part of the FFU." /> - - - - - - - +