events.ps1

$window.Add_Loaded({

    $imgLogo.Source = (Join-Path $script:projectRootFolder "Images\icon_256.png")
    $imgSearch.Source = (Join-Path $script:projectRootFolder "Images\Search.png")
    $imgUpdate.Source = (Join-Path $script:projectRootFolder "Images\Update.png")
    $imgHelp.Source = (Join-Path $script:projectRootFolder "Images\Help.png")

    # This is the icon in the upper left hand corner of the app
    $this.Icon = (Join-Path $script:projectRootFolder "Images\icon_256.png")

    # This is the toolbar icon and description
    $this.TaskbarItemInfo.Overlay = (Join-Path $script:projectRootFolder "Images\icon_256.png")
    $this.TaskbarItemInfo.Description = $window.this

    # initialize dataTable
    $script:dtUpdates = new-Object System.Data.DataTable
    [void]$dtUpdates.Columns.Add("DoUpdate") 
    [void]$dtUpdates.Columns.Add("PackageName") 
    [void]$dtUpdates.Columns.Add("CurrentVersion")
    [void]$dtUpdates.Columns.Add("UpdateVersion")
    $dgUpdates.ItemsSource = $dtUpdates.DefaultView
    $dtUpdates.DefaultView.RowFilter = ""

    [System.Windows.RoutedEventHandler]$ClickHandler = {
        $tbInfo.Text = Get-UpdateInfo -dtUpdates $dtUpdates
    }

    $dgUpdates.AddHandler([System.Windows.Controls.Primitives.ButtonBase]::ClickEvent, $ClickHandler)

    $script:uiHash = [hashtable]::Synchronized(@{})
    $script:uiHash.Options = @{
        Silent = $False
        Hidden = $False
        WhatIf = $False
    }

    $cbSilent.IsChecked = $script:uiHash.Options.Silent
    $cbHidden.IsChecked = $script:uiHash.Options.Hidden
    $cbWhatIf.IsChecked = $script:uiHash.Options.WhatIf

    $window.Title = "psChocoUpdateNotify - v$($script:version)"

    if (Test-ChocolateyInstall) {
        $script:ChocolateyInstalled = $True
    } else {
        $dgUpdates.Visibility = "Collapsed"
        $bControlSearch.IsEnabled = $False
        $bControlUpdate.IsEnabled = $False
        $cbSilent.IsEnabled = $False
        $cbHidden.IsEnabled = $False
        $cbWhatIf.IsEnabled = $False

        $tbInfo.Visibility = "Visible"
        $bChocoPage.Visibility = "Visible"
        $tbInfo.Text = "Chocolatey was not found on your system.`nYou can install it by visiting chocolatey.org and follow the instructions"

        $script:ChocolateyInstalled = $False
    }
})

$window.Add_ContentRendered({
    if ($script:ChocolateyInstalled) {
        Update-PackageList
    }
})

$bControlSearch.Add_Click({
    Update-PackageList
})

$bControlUpdate.Add_Click({
    Install-Updates
})

$gOverlay.Add_IsVisibleChanged({
    # use this for triggering certain functions depending on the current action

    switch ($gOverlay.Visibility) {
        "Visible" { # action is starting

        }

        "Collapsed" { # action has finished
            switch ($script:uiHash.currentAction) {
                "AfterInstall" { # Install the updates has finished. Trigger a second search
                    Update-PackageList
                }
            }
        }
    }
})

$cbSilent.Add_Click({
    $script:uiHash.Options.Silent = $this.IsChecked
})

$cbHidden.Add_Click({
    $script:uiHash.Options.Hidden = $this.IsChecked
})

$cbWhatIf.Add_Click({
    $script:uiHash.Options.WhatIf = $this.IsChecked
})

$bHelp.Add_Click({
    Start-Process 'https://github.com/we-mi/psChocoUpdateNotify'
})

$cbUpdateAll.Add_Checked({
    $dtUpdates | ForEach-Object {
        $_.DoUpdate = $True
    }
})

$cbUpdateAll.Add_Unchecked({
    $dtUpdates | ForEach-Object {
        $_.DoUpdate = $False
    }
})

$bChocoPage.Add_Click({
    Start-Process 'https://chocolatey.org/install'
})