src/GUI/Functions.ps1
function Get-UIData { @{ inputFile = $Script:refs['CompileFileTextBox'].Text outputFile = $Script:refs['OutputFileTextBox'].Text CompilerOptions = $Script:refs['CompileParamsTextBox'].Text TempDir = $Script:refs['TempDirTextBox'].Text minifyer = $Script:refs['MinifyScriptTextBox'].Text SepcArgsHandling = $Script:refs['SpecialParamsCheckBox'].Checked prepareDebug = $Script:refs['DebugInfoCheckBox'].Checked architecture = if ($Script:refs['x64CheckBox'].Checked) { 'x64' } elseif ($Script:refs['x86CheckBox'].Checked) { 'x86' } else { 'anycpu' } lcid = $Script:refs['RegionIDTextBox'].Text threadingModel = if ($Script:refs['SingleThreadCheckBox'].Checked) { 'STA' } else { 'MTA' } noConsole = -not $Script:refs['ConsoleAppCheckBox'].Checked UNICODEEncoding = $Script:refs['UnicodeEncodingCheckBox'].Enabled -and $Script:refs['UnicodeEncodingCheckBox'].Checked credentialGUI = $Script:refs['CredentialGUICheckBox'].Enabled -and $Script:refs['CredentialGUICheckBox'].Checked resourceParams = @{ iconFile = $Script:refs['IconFileTextBox'].Text title = $Script:refs['TitleTextBox'].Text description = $Script:refs['DescriptionTextBox'].Text company = $Script:refs['CompanyTextBox'].Text product = $Script:refs['ProductNameTextBox'].Text copyright = $Script:refs['CopyrightInfoTextBox'].Text trademark = $Script:refs['TrademarkInfoTextBox'].Text version = $Script:refs['VersionTextBox'].Text } configFile = $Script:refs['ConfigFileCheckBox'].Checked noOutput = $Script:refs['DisableOutputStreamCheckBox'].Checked noError = $Script:refs['DisableErrorStreamCheckBox'].Checked noVisualStyles = $Script:refs['IgnoreVisualStylesCheckBox'].Enabled -and $Script:refs['IgnoreVisualStylesCheckBox'].Checked exitOnCancel = $Script:refs['ExitOnCancelCheckBox'].Enabled -and $Script:refs['ExitOnCancelCheckBox'].Checked DPIAware = $Script:refs['DPIAwareCheckBox'].Enabled -and $Script:refs['DPIAwareCheckBox'].Checked winFormsDPIAware = $Script:refs['WinFormsDPIAwareCheckBox'].Enabled -and $Script:refs['WinFormsDPIAwareCheckBox'].Checked requireAdmin = $Script:refs['RequestAdminCheckBox'].Checked supportOS = $Script:refs['MoreOSFeaturesCheckBox'].Checked virtualize = $Script:refs['EnableVirtualizationCheckBox'].Checked longPaths = $Script:refs['LongPathSupportCheckBox'].Checked } } function Set-UIData { param ( [Parameter(Mandatory = $true)] [hashtable]$UIData ) $Script:refs['CompileFileTextBox'].Text = $UIData.inputFile $Script:refs['OutputFileTextBox'].Text = $UIData.outputFile $Script:refs['CompileParamsTextBox'].Text = $UIData.CompilerOptions $Script:refs['TempDirTextBox'].Text = $UIData.TempDir $Script:refs['MinifyScriptTextBox'].Text = $UIData.minifyer $Script:refs['SpecialParamsCheckBox'].Checked = $UIData.SepcArgsHandling $Script:refs['DebugInfoCheckBox'].Checked = $UIData.prepareDebug $Script:refs['x64CheckBox'].Checked = $UIData.architecture -eq 'x64' $Script:refs['x86CheckBox'].Checked = $UIData.architecture -eq 'x86' $Script:refs['AnyCPUCheckBox'].Checked = $UIData.architecture -eq 'anycpu' $Script:refs['RegionIDTextBox'].Text = $UIData.lcid $Script:refs['SingleThreadCheckBox'].Checked = $UIData.threadingModel -eq 'STA' $Script:refs['MultiThreadCheckBox'].Checked = $UIData.threadingModel -eq 'MTA' $Script:refs['ConsoleAppCheckBox'].Checked = -not $UIData.noConsole $Script:refs['UnicodeEncodingCheckBox'].Checked = $UIData.UNICODEEncoding $Script:refs['CredentialGUICheckBox'].Checked = $UIData.credentialGUI $Script:refs['IconFileTextBox'].Text = $UIData.resourceParams.iconFile $Script:refs['TitleTextBox'].Text = $UIData.resourceParams.title $Script:refs['DescriptionTextBox'].Text = $UIData.resourceParams.description $Script:refs['CompanyTextBox'].Text = $UIData.resourceParams.company $Script:refs['ProductNameTextBox'].Text = $UIData.resourceParams.product $Script:refs['CopyrightInfoTextBox'].Text = $UIData.resourceParams.copyright $Script:refs['TrademarkInfoTextBox'].Text = $UIData.resourceParams.trademark $Script:refs['VersionTextBox'].Text = $UIData.resourceParams.version $Script:refs['ConfigFileCheckBox'].Checked = $UIData.configFile $Script:refs['DisableOutputStreamCheckBox'].Checked = $UIData.noOutput $Script:refs['DisableErrorStreamCheckBox'].Checked = $UIData.noError $Script:refs['IgnoreVisualStylesCheckBox'].Checked = $UIData.noVisualStyles $Script:refs['ExitOnCancelCheckBox'].Checked = $UIData.exitOnCancel $Script:refs['DPIAwareCheckBox'].Checked = $UIData.DPIAware $Script:refs['WinFormsDPIAwareCheckBox'].Checked = $UIData.winFormsDPIAware $Script:refs['RequestAdminCheckBox'].Checked = $UIData.requireAdmin $Script:refs['MoreOSFeaturesCheckBox'].Checked = $UIData.supportOS $Script:refs['EnableVirtualizationCheckBox'].Checked = $UIData.virtualize $Script:refs['LongPathSupportCheckBox'].Checked = $UIData.longPaths } function Get-ps12exeArgs { $UIData = Get-UIData $result = $UIData.Clone() $result.minifyer = [System.Management.Automation.Language.Parser]::ParseInput($UIData.minifyer, [ref]$null, [ref]$null).GetScriptBlock() $UIData.GetEnumerator() | Where-Object { $_.Value -eq '' } | ForEach-Object { $result.Remove($_.Key) } $result } $Script:ConfingFile = '' function SetCfgFile { param ( [string]$ConfingFile ) $Script:refs['CfgFileLabel'].Text = $Script:LocalizeData.CfgFileLabelHead + $ConfingFile $script:ConfingFile = $ConfingFile } function LoadCfgFile { param ( [string]$ConfingFile ) if (!$ConfingFile) { $OpenCfgFileDialog.ShowDialog() | Out-Null $ConfingFile = $OpenCfgFileDialog.FileName } if ($ConfingFile) { SetCfgFile $ConfingFile $UIData = Import-Clixml $ConfingFile Set-UIData -UIData $UIData } } function SaveCfgFileAs { param ( [string]$ConfingFile ) if (!$ConfingFile) { $SaveCfgFileDialog.ShowDialog() | Out-Null $ConfingFile = $SaveCfgFileDialog.FileName } if ($ConfingFile) { SetCfgFile $ConfingFile $UIData = Get-UIData $UIData | Export-Clixml $ConfingFile } } function SaveCfgFile { param ( [string]$ConfingFile ) if (!$ConfingFile) { $ConfingFile = $Script:ConfingFile } SaveCfgFileAs $ConfingFile } if ($ConfingFile) { LoadCfgFile $ConfingFile } |