UI/_HomeWindowUIEvents.ps1

function _HomeWindowUIEvents {
    #region General UI
    $HomeWindow.Add_SourceInitialized({
            _OnHomeWindowSourceInitialized
        })
    $HomeWindow_ExitMenuItem.Add_Click({
            $HomeWindow.close()
        })
    $HomeWindow_AboutMenuItem.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            _ShowAbout
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_OptionsMenuItem.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            $HomeWindow_LoadingLabel.Visibility = 'Visible'
            $Options.ShowDialog()
            $HomeWindow_LoadingLabel.Visibility = 'Hidden'
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_EntraSyncMenuItem.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            $ComputerName = $STTSettings.EntraSettings.EntraConnectServer
            $Output = Invoke-Command -ComputerName $ComputerName -ScriptBlock { Start-ADSyncSyncCycle -PolicyType Delta }
            if ($Output.Result -eq 'Success') {
                _ShowMessageBox -MessageText 'Sync Successful!' -MessageTitle 'Delta Sync Status' -ButtonType OK -MessageIcon None
            }
            else {
                $Text = "Sync Failed`n`n$($Output | Out-String)"
                _ShowMessageBox -MessageText $Text -MessageTitle 'Delta Sync Status' -ButtonType OK -MessageIcon Warning
            }
            $HomeWindow.Cursor = $null
        })
    $HomeWindow_ADSyncMenuItem.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            # repadmin /syncall /APeD
            $HomeWindow.Cursor = $null
        })
    #endregion

    #region Objects
    $HomeWindow_ExitButton.Add_Click({
            $HomeWindow.close()
        })

    $HomeWindow_BannerButton.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            _UpdateSCCMDevices -ForceLookup
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_ADLookupsButton.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            $HomeWindow_LoadingLabel.Visibility = 'Visible'
            $ADLookups.ShowDialog()
            $HomeWindow_LoadingLabel.Visibility = 'Hidden'
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_ADLookupsButton.Add_MouseEnter({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Hand
            $HomeWindow_DescriptionRichTextBox.Text = 'Used for querying AD users, computers, groups, and contacts.'
        })

    $HomeWindow_ADLookupsButton.Add_MouseLeave({
            $HomeWindow.Cursor = $null
            $HomeWindow_DescriptionRichTextBox.Text = ''
        })

    $HomeWindow_RSOPButton.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            $HomeWindow_LoadingLabel.Visibility = 'Visible'
            $RSOP.ShowDialog()
            $HomeWindow_LoadingLabel.Visibility = 'Hidden'
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_RSOPButton.Add_MouseEnter({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Hand
            $HomeWindow_DescriptionRichTextBox.Text = 'Generate a gpresult for a specific server or user on a server and open it in the default web browser.'
        })

    $HomeWindow_RSOPButton.Add_MouseLeave({
            $HomeWindow.Cursor = $null
            $HomeWindow_DescriptionRichTextBox.Text = ''
        })

    $HomeWindow_SCCMDeploymentButton.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            $HomeWindow_LoadingLabel.Visibility = 'Visible'
            $SCCMDeployments.ShowDialog()
            $HomeWindow_LoadingLabel.Visibility = 'Hidden'
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_SCCMDeploymentButton.Add_MouseEnter({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Hand
            $HomeWindow_DescriptionRichTextBox.Text = 'Get the results of one or more SCCM deployments and view or export results.'
        })

    $HomeWindow_SCCMDeploymentButton.Add_MouseLeave({
            $HomeWindow.Cursor = $null
            $HomeWindow_DescriptionRichTextBox.Text = ''
        })

    $HomeWindow_SoftwareButton.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            $HomeWindow_LoadingLabel.Visibility = 'Visible'
            $GenericDataGrid.ShowDialog()
            $HomeWindow_LoadingLabel.Visibility = 'Hidden'
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_SoftwareButton.Add_MouseEnter({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Hand
            $HomeWindow_DescriptionRichTextBox.Text = 'Grid view for installed software and updates from WSUS.'
        })

    $HomeWindow_SoftwareButton.Add_MouseLeave({
            $HomeWindow.Cursor = $null
            $HomeWindow_DescriptionRichTextBox.Text = ''
        })

    $HomeWindow_IntuneButton.Add_Click({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Wait
            $HomeWindow_LoadingLabel.Visibility = 'Visible'
            _IntuneDeviceDetails
            $HomeWindow_LoadingLabel.Visibility = 'Hidden'
            $HomeWindow.Cursor = $null
        })

    $HomeWindow_IntuneButton.Add_MouseEnter({
            $HomeWindow.Cursor = [System.Windows.Input.Cursors]::Hand
            $HomeWindow_DescriptionRichTextBox.Text = 'Opens a window that allows querying for all information for an Intune device.'
        })

    $HomeWindow_IntuneButton.Add_MouseLeave({
            $HomeWindow.Cursor = $null
            $HomeWindow_DescriptionRichTextBox.Text = ''
        })
    #endregion
}