Public Class FormularzPrzeglądarki

    Const c_defPotwierdzenieWyjścia As Boolean = False
    Private m_strUżytkownik As String
    Private m_blnPotwierdzenieWyjścia As Boolean
    Private m_objKolorTła As Color

    Private Sub przyciskPowiększ_Click(sender As Object, e As EventArgs) Handles przyciskPowiększ.Click
        Me.Width = Me.Width + 20
        Me.Height = Me.Height + 20

    End Sub

    Private Sub przyciskPomniejsz_Click(sender As Object, e As EventArgs) Handles przyciskPomniejsz.Click
        Me.Width = Me.Width - 20
        Me.Height = Me.Height - 20

    End Sub

    Private Sub obrazPokażObraz_MouseMove(sender As Object, e As MouseEventArgs) Handles obrazPokażObraz.MouseMove
        etykietaX.Text = "X: " & e.X
        etykietaY.Text = "Y: " & e.Y

    End Sub

    Private Sub obrazPokażObraz_MouseLeave(sender As Object, e As EventArgs) Handles obrazPokażObraz.MouseLeave
        etykietaX.Text = ""
        etykietaY.Text = ""

    End Sub

    Public Sub ZaładujUstawienia()
        Const c_strNazwaKlucza As String =
            "HKEY_CURRENT_USER\Software\Świetne Programy\Przeglądarka obrazów"
        m_blnPotwierdzenieWyjścia = CBool(My.Computer.Registry.GetValue(
            c_strNazwaKlucza, "Potwierdzenie wyjścia", "0"))
        m_objKolorTła = System.Drawing.SystemColors.Control
        If CStr(My.Computer.Registry.GetValue(c_strNazwaKlucza, "Kolor tła", "Szary")) =
            "Szary" Then
            m_objKolorTła = System.Drawing.SystemColors.Control
        Else
            m_objKolorTła = System.Drawing.Color.White
        End If
        obrazPokażObraz.BackColor = m_objKolorTła
        menuPotwierdźZakończenie.Checked = m_blnPotwierdzenieWyjścia

    End Sub

    Private Sub FormularzPrzeglądarki_Load(sender As Object, e As EventArgs) Handles Me.Load
        etykietaX.Text = ""
        etykietaY.Text = ""
        ZaładujUstawienia()

    End Sub

    Private Sub menuOtwórzObraz_Click(sender As Object, e As EventArgs) Handles menuOtwórzObraz.Click
        OtwórzObraz()

    End Sub

    Private Sub menuPotwierdźZakończenie_Click(sender As Object, e As EventArgs) Handles menuPotwierdźZakończenie.Click
        menuPotwierdźZakończenie.Checked = Not (menuPotwierdźZakończenie.Checked)
        m_blnPotwierdzenieWyjścia = menuPotwierdźZakończenie.Checked
    End Sub

    Private Sub menuZamknij_Click(sender As Object, e As EventArgs) Handles menuZamknij.Click
        Me.Close()

    End Sub

    Private Sub menuRysujRamkę_Click(sender As Object, e As EventArgs) Handles menuRysujRamkę.Click
        RysujRamkę(obrazPokażObraz)

    End Sub

    Private Sub menuOpcje_Click(sender As Object, e As EventArgs) Handles menuOpcje.Click
        FormularzOpcji.ShowDialog()

    End Sub

    Private Sub przyciskpaskaOtwórzObraz_Click(sender As Object, e As EventArgs) Handles przyciskpaskaOtwórzObraz.Click
        OtwórzObraz()

    End Sub

    Private Sub przyciskpaskaRysujRamkę_Click(sender As Object, e As EventArgs) Handles przyciskpaskaRysujRamkę.Click
        RysujRamkę(obrazPokażObraz)

    End Sub

    Private Sub przyciskpaskaOpcje_Click(sender As Object, e As EventArgs) Handles przyciskpaskaOpcje.Click
        FormularzOpcji.ShowDialog()

    End Sub

    Private Sub FormularzPrzeglądarki_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        If m_blnPotwierdzenieWyjścia Then
            If MessageBox.Show("Zamknąć program Przeglądarka obrazów?",
                               "Przeglądarka obrazów", MessageBoxButtons.YesNo,
                               MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then
                e.Cancel = True
            End If
        End If
    End Sub

    Private Sub PokażAtrybuty()
        Dim strWłaściwości As String
        Dim lngAtrybuty As Long
        If dialogWybierzObraz.FileName = "" Then Exit Sub
        ' Odczytaj daty.
        strWłaściwości = "Utworzony: " &
            System.IO.File.GetCreationTime(dialogWybierzObraz.FileName)
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Ostatnio używany: " &
            System.IO.File.GetLastAccessTime(dialogWybierzObraz.FileName)
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Zmodyfikowany: " &
            System.IO.File.GetLastWriteTime(dialogWybierzObraz.FileName)
        ' Odczytaj atrybuty pliku.
        lngAtrybuty = System.IO.File.GetAttributes(dialogWybierzObraz.FileName)
        ' Zastosuj operację bitową And, aby wyodrębnić poszczególne atrybuty.
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Normalny: " &
            CBool(lngAtrybuty And IO.FileAttributes.Normal)
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Ukryty: " &
            CBool(lngAtrybuty And IO.FileAttributes.Hidden)
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Tylko do odczytu: " &
            CBool(lngAtrybuty And IO.FileAttributes.ReadOnly)
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Systemowy: " &
            CBool(lngAtrybuty And IO.FileAttributes.System)
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Tymczasowy: " &
            CBool(lngAtrybuty And IO.FileAttributes.Temporary)
        strWłaściwości = strWłaściwości & vbCrLf
        strWłaściwości = strWłaściwości & "Archiwalny: " &
            CBool(lngAtrybuty And IO.FileAttributes.Archive)
        MessageBox.Show(strWłaściwości, "Przeglądarka obrazów")

    End Sub
    Private Sub przyciskpaskaAtrybutyPliku_Click(sender As Object, e As EventArgs) Handles przyciskpaskaAtrybutyPliku.Click
        PokażAtrybuty()
    End Sub

    Private Sub przyciskpaskaPokażDziennik_Click(sender As Object, e As EventArgs) Handles przyciskpaskaPokażDziennik.Click
        FormularzDziennika.ShowDialog()
    End Sub

    Private Sub menuDziennik_Click(sender As Object, e As EventArgs) Handles menuDziennik.Click
        FormularzDziennika.ShowDialog()
    End Sub

    Private Sub menuAtrybuty_Click(sender As Object, e As EventArgs) Handles menuAtrybuty.Click
        PokażAtrybuty()
    End Sub
End Class
