lib/events/LogForm.ps1

#######################################################################################################################################################
# WARNING: DO NOT EDIT THIS FILE AS IT IS GENERATED AND WILL BE OVERWRITTEN ON THE NEXT UPDATE! #
# #
# Generated via psake on: 2025-12-04T03:09:22.387Z #
# Version: 2025.12.4.2 #
# Copyright Fortigi (C) 2024-2025 #
#######################################################################################################################################################
#requires -Version 7.0

$Script:LogForm.Definition.Add_Loaded({
        $_ | Show-EventInfo
        $Script:LogForm.PositionManager.Synchronizing = $true
        $Script:LogForm.Definition.Dispatcher.Invoke({
                "MainForm Position: {0}x{1}, Dimensions: {2}x{3}" -f $Script:MainForm.Definition.Left, $Script:MainForm.Definition.Top, $Script:MainForm.Definition.Width , $Script:MainForm.Definition.Height | Write-LogOutput -LogType DEBUG
                $Script:LogForm.Definition.Top = [Int]::Abs($Script:MainForm.Definition.Top)
                "LogForm Top: {0}" -f $Script:LogForm.Definition.Top | Write-LogOutput -LogType DEBUG
                $Script:LogForm.Definition.Left = [Int]::Abs($Script:MainForm.Definition.Left) + [Int]::Abs($Script:MainForm.Definition.Width)
                "LogForm Left: {0}" -f $Script:LogForm.Definition.Left | Write-LogOutput -LogType DEBUG
                $Script:LogForm.PositionManager.PositionOffSetLeft = [Int]::Abs($Script:LogForm.Definition.Left) - [Int]::Abs($Script:MainForm.Definition.Left)
                "PositionManagerLogForm PositionOffSetLeft: {0}" -f $Script:LogForm.PositionManager.PositionOffSetLeft | Write-LogOutput -LogType DEBUG
                $Script:LogForm.PositionManager.PositionOffSetTop = [Int]::Abs($Script:LogForm.Definition.Top) - [Int]::Abs($Script:MainForm.Definition.Top)
                "PositionManagerLogForm PositionOffSetTop: {0}" -f $Script:LogForm.PositionManager.PositionOffSetTop | Write-LogOutput -LogType DEBUG
                if ($null -ne ($Script:LogForm.Definition | Get-FormSizeConfig)) {
                    $Size = $Script:LogForm.Definition | Get-FormSizeConfig
                    "Log Form size: {0}" -f $Size | Write-LogOutput -LogType DEBUG
                    $Script:LogForm.Definition.Width = [Int]::Abs($Size.Split("x")[0])
                    "LogForm Width: {0}" -f $Script:LogForm.Definition.Width | Write-LogOutput -LogType DEBUG
                    $Script:LogForm.Definition.Height = [Int]::Abs($Size.Split("x")[1])
                    "LogForm Height: {0}" -f $Script:LogForm.Definition.Height | Write-LogOutput -LogType DEBUG
                }
                $Script:LogForm.PositionManager.Synchronizing = $false
            }, [System.Windows.Threading.DispatcherPriority]::Render)
        $Script:MainForm.Elements.ButtonShowLog.IsEnabled = $false
        $Script:TextBoxLog.Text = $Script:RunTimeConfig.Logging.AppLogObject
        $Script:LogForm.PositionManager.PositionOffSetLeft = [Int]::Abs($Script:LogForm.Definition.Left) - [Int]::Abs($Script:MainForm.Definition.Left)
        "PositionManagerLogForm PositionOffSetLeft: {0}" -f $Script:LogForm.PositionManager.PositionOffSetLeft | Write-LogOutput -LogType DEBUG
        $Script:LogForm.PositionManager.PositionOffSetTop = [Int]::Abs($Script:LogForm.Definition.Top) - [Int]::Abs($Script:MainForm.Definition.Top)
        "PositionManagerLogForm PositionOffSetTop: {0}" -f $Script:LogForm.PositionManager.PositionOffSetTop | Write-LogOutput -LogType DEBUG
        "LogForm Position: {0}x{1}, Dimensions: {2}x{3}" -f $Script:LogForm.Definition.Left, $Script:LogForm.Definition.Top, $Script:LogForm.Definition.Width , $Script:LogForm.Definition.Height | Write-LogOutput -LogType DEBUG
        $Script:LogForm.State = "Open"
        Restore-MainFormFocus
    })

$Script:LogForm.Definition.Add_Closing({
        $_ | Show-EventInfo
        $Script:LogForm.State = "Closing"
        Save-FormMeasurements
        if ($Script:MainForm.State -eq "Open") {
            $false | Set-ConfigProperty -Property "LogFormOpen"
        }
    })

$Script:LogForm.Definition.Add_Closed({
        $_ | Show-EventInfo
        $Script:LogForm.State = "Closed"
        $Script:MainForm.Elements.ButtonShowLog.IsEnabled = $true
        Restore-MainFormFocus
    })

$Script:LogForm.Definition.Add_LocationChanged({
        $_ | Show-EventInfo -LogType VERBOSE2
        if (!$Script:LogForm.PositionManager.Synchronizing) {
            $Script:LogForm.PositionManager.Synchronizing = $true
            "MainForm Position: {0}x{1}, Dimensions: {2}x{3}" -f $Script:MainForm.Definition.Left, $Script:MainForm.Definition.Top, $Script:MainForm.Definition.Width , $Script:MainForm.Definition.Height | Write-LogOutput -LogType VERBOSE2
            "LogForm Position: {0}x{1}, Dimensions: {2}x{3}" -f $Script:LogForm.Definition.Left, $Script:LogForm.Definition.Top, $Script:LogForm.Definition.Width , $Script:LogForm.Definition.Height | Write-LogOutput -LogType VERBOSE2
            $Script:LogForm.Definition.Dispatcher.Invoke({
                    $_ | Show-EventInfo -LogType VERBOSE2
                    $Script:LogForm.PositionManager.PositionOffSetLeft = [Int]::Abs($Script:LogForm.Definition.Left) - [Int]::Abs($Script:MainForm.Definition.Left)
                    "PositionManagerLogForm PositionOffSetLeft: {0}" -f $Script:LogForm.PositionManager.PositionOffSetLeft | Write-LogOutput -LogType VERBOSE2
                    $Script:LogForm.PositionManager.PositionOffSetTop = [Int]::Abs($Script:LogForm.Definition.Top) - [Int]::Abs($Script:MainForm.Definition.Top)
                    "PositionManagerLogForm PositionOffSetTop: {0}" -f $Script:LogForm.PositionManager.PositionOffSetTop | Write-LogOutput -LogType VERBOSE2
                    $Script:LogForm.PositionManager.Synchronizing = $false
                }, [System.Windows.Threading.DispatcherPriority]::Render)
        }
    })

$Script:LogForm.Definition.Add_SizeChanged({
        $_ | Show-EventInfo -LogType VERBOSE2
        $Script:LogForm.Size = $Script:LogForm.Definition | Get-FormSize
    })
$Script:LogForm.Elements.ButtonClearLog.Add_Click({
        $_ | Show-EventInfo
        "Clear TextBoxLog" | Write-LogOutput -LogType DEBUG
        $Script:TextBoxLog.Clear()
        "Log cleared" | Write-LogOutput
    })
$Script:LogForm.Elements.ButtonExportLogFile.Add_Click({
        $_ | Show-EventInfo
        $SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog
        $SaveFileDialog.Filter = "Log files (*.log) | *.log | All files (*.*) | *.*"
        "Dialog Filter: {0}" -f $SaveFileDialog.Filter | Write-LogOutput -LogType DEBUG
        $SaveFileDialog.Title = "Save Log File"
        "Dialog Title: {0}" -f $SaveFileDialog.Title | Write-LogOutput -LogType DEBUG
        $SaveFileDialog.FileName = "OmadaSqlTroubleShooter.log"
        "Dialog Initial FileName: {0}" -f $SaveFileDialog.FileName | Write-LogOutput -LogType DEBUG
        if ($SaveFileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
            if ($null -eq $SaveFileDialog.FileName) {
                return
            }
            else {
                $Script:RunTimeConfig.Logging.AppLogObject | Set-Content $SaveFileDialog.FileName -Encoding UTF8
                "File saved to: {0}" -f $SaveFileDialog.FileName | Write-LogOutput -LogType DEBUG

            }
        }
        else {
            "File was not saved!" | Write-LogOutput -LogType DEBUG
        }
    })
$Script:LogForm.Elements.CheckboxConsoleLog.Add_Checked({
        $_ | Show-EventInfo
        $Script:RunTimeConfig.Logging.LogToConsole = $true
        "Console logging is enabled" | Write-LogOutput -LogType LOG
        $true | Set-ConfigProperty -Property "CheckboxConsoleLog"
    })

$Script:LogForm.Elements.CheckboxConsoleLog.Add_UnChecked({
        $_ | Show-EventInfo
        $Script:RunTimeConfig.Logging.LogToConsole = $false
        "Console logging is disabled" | Write-LogOutput -LogType LOG
        $false | Set-ConfigProperty -Property "CheckboxConsoleLog"

    })
$Script:LogForm.Elements.CheckboxWordWrap.Add_Checked({
        $_ | Show-EventInfo
        $Script:TextBoxLog.TextWrapping = "WrapWithOverflow"
        "Word wrap is enabled" | Write-LogOutput -LogType LOG
        $true | Set-ConfigProperty -Property "LogFormWordWrap"
    })

$Script:LogForm.Elements.CheckboxWordWrap.Add_UnChecked({
        $_ | Show-EventInfo
        $Script:TextBoxLog.TextWrapping = "NoWrap"
        "Word wrap is disabled" | Write-LogOutput -LogType LOG
        $false | Set-ConfigProperty -Property "LogFormWordWrap"

    })
$Script:LogForm.Elements.ComboBoxSelectLogLevel.Add_SelectionChanged({
        $_ | Show-EventInfo
        $Script:LogForm.Elements.ComboBoxSelectLogLevel.SelectedItem.Content | Set-ConfigProperty -Property "LogLevel"
        $Script:RunTimeConfig.Logging.LogLevelSetting = $Script:LogForm.Elements.ComboBoxSelectLogLevel.SelectedItem.Content
        "Logging set to {0}!" -f $Script:RunTimeConfig.Logging.LogLevelSetting | Write-LogOutput -LogType LOG
    })